github.com/graybobo/golang.org-package-offline-cache@v0.0.0-20200626051047-6608995c132f/x/text/unicode/bidi/tables_test.go (about) 1 // Copyright 2015 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 package bidi 6 7 import ( 8 "testing" 9 10 "golang.org/x/text/internal/gen" 11 "golang.org/x/text/internal/testtext" 12 "golang.org/x/text/internal/ucd" 13 ) 14 15 var labels = []string{ 16 _AL: "AL", 17 _AN: "AN", 18 _B: "B", 19 _BN: "BN", 20 _CS: "CS", 21 _EN: "EN", 22 _ES: "ES", 23 _ET: "ET", 24 _L: "L", 25 _NSM: "NSM", 26 _ON: "ON", 27 _R: "R", 28 _S: "S", 29 _WS: "WS", 30 31 _LRO: "LRO", 32 _RLO: "RLO", 33 _LRE: "LRE", 34 _RLE: "RLE", 35 _PDF: "PDF", 36 _LRI: "LRI", 37 _RLI: "RLI", 38 _FSI: "FSI", 39 _PDI: "PDI", 40 } 41 42 func TestTables(t *testing.T) { 43 testtext.SkipIfNotLong(t) 44 45 trie := newBidiTrie(0) 46 47 ucd.Parse(gen.OpenUCDFile("BidiBrackets.txt"), func(p *ucd.Parser) { 48 r1 := p.Rune(0) 49 want := p.Rune(1) 50 51 e, _ := trie.lookupString(string(r1)) 52 if got := entry(e).reverseBracket(r1); got != want { 53 t.Errorf("Reverse(%U) = %U; want %U", r1, got, want) 54 } 55 }) 56 57 done := map[rune]bool{} 58 test := func(name string, r rune, want string) { 59 e, _ := trie.lookupString(string(r)) 60 if got := labels[entry(e).class(r)]; got != want { 61 t.Errorf("%s:%U: got %s; want %s", name, r, got, want) 62 } 63 done[r] = true 64 } 65 66 // Insert the derived BiDi properties. 67 ucd.Parse(gen.OpenUCDFile("extracted/DerivedBidiClass.txt"), func(p *ucd.Parser) { 68 r := p.Rune(0) 69 test("derived", r, p.String(1)) 70 }) 71 visitDefaults(func(r rune, c class) { 72 if !done[r] { 73 test("default", r, labels[c]) 74 } 75 }) 76 77 }