12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- // 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 runenames
- import (
- "strings"
- "testing"
- "unicode"
- "golang.org/x/text/internal/gen"
- "golang.org/x/text/internal/testtext"
- "golang.org/x/text/internal/ucd"
- )
- func TestName(t *testing.T) {
- testtext.SkipIfNotLong(t)
- wants := make([]string, 1+unicode.MaxRune)
- ucd.Parse(gen.OpenUCDFile("UnicodeData.txt"), func(p *ucd.Parser) {
- wants[p.Rune(0)] = getName(p)
- })
- nErrors := 0
- for r, want := range wants {
- got := Name(rune(r))
- if got != want {
- t.Errorf("r=%#08x: got %q, want %q", r, got, want)
- nErrors++
- if nErrors == 100 {
- t.Fatal("too many errors")
- }
- }
- }
- }
- // Copied from gen.go.
- func getName(p *ucd.Parser) string {
- s := p.String(ucd.Name)
- if s == "" {
- return ""
- }
- if s[0] == '<' {
- const first = ", First>"
- if i := strings.Index(s, first); i >= 0 {
- s = s[:i] + ">"
- }
- }
- return s
- }
|