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  }