12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- // Copyright 2015 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 bidi
- import (
- "testing"
- "golang.org/x/text/internal/gen"
- "golang.org/x/text/internal/testtext"
- "golang.org/x/text/internal/ucd"
- )
- var labels = []string{
- AL: "AL",
- AN: "AN",
- B: "B",
- BN: "BN",
- CS: "CS",
- EN: "EN",
- ES: "ES",
- ET: "ET",
- L: "L",
- NSM: "NSM",
- ON: "ON",
- R: "R",
- S: "S",
- WS: "WS",
- LRO: "LRO",
- RLO: "RLO",
- LRE: "LRE",
- RLE: "RLE",
- PDF: "PDF",
- LRI: "LRI",
- RLI: "RLI",
- FSI: "FSI",
- PDI: "PDI",
- }
- func TestTables(t *testing.T) {
- testtext.SkipIfNotLong(t)
- ucd.Parse(gen.OpenUCDFile("BidiBrackets.txt"), func(p *ucd.Parser) {
- r1 := p.Rune(0)
- want := p.Rune(1)
- e, _ := LookupRune(r1)
- if got := e.reverseBracket(r1); got != want {
- t.Errorf("Reverse(%U) = %U; want %U", r1, got, want)
- }
- })
- done := map[rune]bool{}
- test := func(name string, r rune, want string) {
- str := string(r)
- e, _ := LookupString(str)
- if got := labels[e.Class()]; got != want {
- t.Errorf("%s:%U: got %s; want %s", name, r, got, want)
- }
- if e2, sz := LookupRune(r); e != e2 || sz != len(str) {
- t.Errorf("LookupRune(%U) = %v, %d; want %v, %d", r, e2, e, sz, len(str))
- }
- if e2, sz := Lookup([]byte(str)); e != e2 || sz != len(str) {
- t.Errorf("Lookup(%U) = %v, %d; want %v, %d", r, e2, e, sz, len(str))
- }
- done[r] = true
- }
- // Insert the derived BiDi properties.
- ucd.Parse(gen.OpenUCDFile("extracted/DerivedBidiClass.txt"), func(p *ucd.Parser) {
- r := p.Rune(0)
- test("derived", r, p.String(1))
- })
- visitDefaults(func(r rune, c Class) {
- if !done[r] {
- test("default", r, labels[c])
- }
- })
- }
|