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

     1  package colltab
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/insionng/yougam/libraries/x/text/language"
     7  )
     8  
     9  func TestMatchLang(t *testing.T) {
    10  	tags := []language.Tag{
    11  		0:  language.Und,
    12  		1:  language.MustParse("bs"),
    13  		2:  language.German,
    14  		3:  language.English,
    15  		4:  language.AmericanEnglish,
    16  		5:  language.MustParse("en-US-u-va-posix"),
    17  		6:  language.Portuguese,
    18  		7:  language.Serbian,
    19  		8:  language.MustParse("sr-Latn"),
    20  		9:  language.Chinese,
    21  		10: language.SimplifiedChinese, // Cannot match.
    22  		11: language.TraditionalChinese,
    23  	}
    24  	for i, tc := range []struct {
    25  		x int
    26  		t language.Tag
    27  	}{
    28  		{0, language.Und},
    29  		{0, language.Persian}, // Default to first element when no match.
    30  		{3, language.English},
    31  		{4, language.AmericanEnglish},
    32  		{5, language.MustParse("en-US-u-va-posix")},   // Ext. variant match.
    33  		{4, language.MustParse("en-US-u-va-noposix")}, // Ext. variant mismatch.
    34  		{3, language.MustParse("en-UK-u-va-noposix")}, // Ext. variant mismatch.
    35  		{7, language.Serbian},
    36  		{0, language.Croatian},             // Don't match to close language!
    37  		{0, language.MustParse("gsw")},     // Don't match to close language!
    38  		{1, language.MustParse("bs-Cyrl")}, // Odd, but correct.
    39  		{1, language.MustParse("bs-Latn")}, // Estimated script drops.
    40  		{8, language.MustParse("sr-Latn")},
    41  		{9, language.Chinese},
    42  		{10, language.SimplifiedChinese}, // Default script drops.
    43  		{11, language.TraditionalChinese},
    44  		{11, language.MustParse("und-TW")},     // Infer script and language.
    45  		{11, language.MustParse("und-HK")},     // Infer script and language.
    46  		{6, language.MustParse("und-BR")},      // Infer script and language.
    47  		{6, language.MustParse("und-PT")},      // Infer script and language.
    48  		{2, language.MustParse("und-Latn-DE")}, // Infer language.
    49  		{0, language.MustParse("und-Jpan-BR")}, // Infers "ja", so no match.
    50  		{0, language.MustParse("zu")},          // No match past index.
    51  	} {
    52  		if x := MatchLang(tc.t, tags); x != tc.x {
    53  			t.Errorf("%d: MatchLang(%q, tags) = %d; want %d", i, tc.t, x, tc.x)
    54  		}
    55  	}
    56  }