func testCollator(c *collate.Collator) { c0 := collate.New(language.Und) // iterator over all characters for all locales and check // whether Key is equal. buf := collate.Buffer{} // Add all common and not too uncommon runes to the test set. for i := rune(0); i < 0x30000; i++ { testInput.add(string(i)) } for i := rune(0xE0000); i < 0xF0000; i++ { testInput.add(string(i)) } for _, str := range testInput.values() { k0 := c0.KeyFromString(&buf, str) k := c.KeyFromString(&buf, str) if !bytes.Equal(k0, k) { failOnError(fmt.Errorf("test:%U: keys differ (%x vs %x)", []rune(str), k0, k)) } buf.Reset() } fmt.Println("PASS") }