forked from TrueCloudLab/restic
2b39f9f4b2
Among others, this updates minio-go, so that the new "eu-west-3" zone for AWS is supported.
51 lines
1.3 KiB
Go
51 lines
1.3 KiB
Go
// Copyright 2016 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package cases
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"golang.org/x/text/internal/testtext"
|
|
)
|
|
|
|
var foldTestCases = []string{
|
|
"βß\u13f8", // "βssᏰ"
|
|
"ab\u13fc\uab7aꭰ", // abᏴᎪᎠ
|
|
"affifflast", // affifflast
|
|
"Iİiı\u0345", // ii̇iıι
|
|
"µµΜΜςσΣΣ", // μμμμσσσσ
|
|
}
|
|
|
|
func TestFold(t *testing.T) {
|
|
for _, tc := range foldTestCases {
|
|
testEntry := func(name string, c Caser, m func(r rune) string) {
|
|
want := ""
|
|
for _, r := range tc {
|
|
want += m(r)
|
|
}
|
|
if got := c.String(tc); got != want {
|
|
t.Errorf("%s(%s) = %+q; want %+q", name, tc, got, want)
|
|
}
|
|
dst := make([]byte, 256) // big enough to hold any result
|
|
src := []byte(tc)
|
|
v := testtext.AllocsPerRun(20, func() {
|
|
c.Transform(dst, src, true)
|
|
})
|
|
if v > 0 {
|
|
t.Errorf("%s(%s): number of allocs was %f; want 0", name, tc, v)
|
|
}
|
|
}
|
|
testEntry("FullFold", Fold(), func(r rune) string {
|
|
return runeFoldData(r).full
|
|
})
|
|
// TODO:
|
|
// testEntry("SimpleFold", Fold(Compact), func(r rune) string {
|
|
// return runeFoldData(r).simple
|
|
// })
|
|
// testEntry("SpecialFold", Fold(Turkic), func(r rune) string {
|
|
// return runeFoldData(r).special
|
|
// })
|
|
}
|
|
}
|