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  }