code.gitea.io/gitea@v1.19.3/modules/charset/ambiguous_gen_test.go (about) 1 // Copyright 2022 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package charset 5 6 import ( 7 "sort" 8 "testing" 9 "unicode" 10 11 "github.com/stretchr/testify/assert" 12 ) 13 14 func TestAmbiguousCharacters(t *testing.T) { 15 for locale, ambiguous := range AmbiguousCharacters { 16 assert.Equal(t, locale, ambiguous.Locale) 17 assert.Equal(t, len(ambiguous.Confusable), len(ambiguous.With)) 18 assert.True(t, sort.SliceIsSorted(ambiguous.Confusable, func(i, j int) bool { 19 return ambiguous.Confusable[i] < ambiguous.Confusable[j] 20 })) 21 22 for _, confusable := range ambiguous.Confusable { 23 assert.True(t, unicode.Is(ambiguous.RangeTable, confusable)) 24 i := sort.Search(len(ambiguous.Confusable), func(j int) bool { 25 return ambiguous.Confusable[j] >= confusable 26 }) 27 found := i < len(ambiguous.Confusable) && ambiguous.Confusable[i] == confusable 28 assert.True(t, found, "%c is not in %d", confusable, i) 29 } 30 } 31 }