github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/golang/text/internal/number/number_test.go (about)

     1  // Copyright 2016 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 number
     6  
     7  import (
     8  	"testing"
     9  
    10  	"github.com/insionng/yougam/libraries/x/text/language"
    11  )
    12  
    13  func TestInfo(t *testing.T) {
    14  	testCases := []struct {
    15  		lang     string
    16  		sym      SymbolType
    17  		wantSym  string
    18  		wantNine rune
    19  	}{
    20  		{"und", SymDecimal, ".", '9'},
    21  		{"de", SymGroup, ".", '9'},
    22  		{"de-BE", SymGroup, ".", '9'},          // inherits from de (no number data in CLDR)
    23  		{"de-BE-oxendict", SymGroup, ".", '9'}, // inherits from de (no compact index)
    24  
    25  		// U+096F DEVANAGARI DIGIT NINE ('९')
    26  		{"de-BE-u-nu-deva", SymGroup, ".", '\u096f'}, // miss -> latn -> de
    27  		{"de-Cyrl-BE", SymGroup, ",", '9'},           // inherits from root
    28  		{"de-CH", SymGroup, "'", '9'},                // overrides values in de
    29  		{"de-CH-oxendict", SymGroup, "'", '9'},       // inherits from de-CH (no compact index)
    30  		{"de-CH-u-nu-deva", SymGroup, "'", '\u096f'}, // miss -> latn -> de-CH
    31  
    32  		{"pa", SymExponential, "E", '9'},
    33  
    34  		// "×۱۰^" -> U+00d7 U+06f1 U+06f0^"
    35  		// U+06F0 EXTENDED ARABIC-INDIC DIGIT ZERO
    36  		// U+06F1 EXTENDED ARABIC-INDIC DIGIT ONE
    37  		// U+06F9 EXTENDED ARABIC-INDIC DIGIT NINE
    38  		{"pa-u-nu-arabext", SymExponential, "\u00d7\u06f1\u06f0^", '\u06f9'},
    39  
    40  		//  "གྲངས་མེད" - > U+0f42 U+0fb2 U+0f44 U+0f66 U+0f0b U+0f58 U+0f7a U+0f51
    41  		// Examples:
    42  		// U+0F29 TIBETAN DIGIT NINE (༩)
    43  		{"dz", SymInfinity, "\u0f42\u0fb2\u0f44\u0f66\u0f0b\u0f58\u0f7a\u0f51", '\u0f29'}, // defaults to tibt
    44  		{"dz-u-nu-latn", SymInfinity, "∞", '9'},                                           // select alternative
    45  		{"dz-u-nu-tibt", SymInfinity, "\u0f42\u0fb2\u0f44\u0f66\u0f0b\u0f58\u0f7a\u0f51", '\u0f29'},
    46  		{"en-u-nu-tibt", SymInfinity, "∞", '\u0f29'},
    47  
    48  		// algorithmic number systems fall back to ASCII if Digits is used.
    49  		{"en-u-nu-hanidec", SymPlusSign, "+", '9'},
    50  		{"en-u-nu-roman", SymPlusSign, "+", '9'},
    51  	}
    52  	for _, tc := range testCases {
    53  		info := InfoFromTag(language.MustParse(tc.lang))
    54  		if got := info.Symbol(tc.sym); got != tc.wantSym {
    55  			t.Errorf("%s:%v:sym: got %q; want %q", tc.lang, tc.sym, got, tc.wantSym)
    56  		}
    57  		if got := info.Digit('9'); got != tc.wantNine {
    58  			t.Errorf("%s:%v:nine: got %q; want %q", tc.lang, tc.sym, got, tc.wantNine)
    59  		}
    60  	}
    61  }