golang.org/x/text@v0.14.0/internal/tag/tag_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 tag 6 7 import ( 8 "strings" 9 "testing" 10 ) 11 12 var strdata = []string{ 13 "aa ", 14 "aaa ", 15 "aaaa", 16 "aaab", 17 "aab ", 18 "ab ", 19 "ba ", 20 "xxxx", 21 "\xff\xff\xff\xff", 22 } 23 24 var testCases = map[string]int{ 25 "a": 0, 26 "aa": 0, 27 "aaa": 1, 28 "aa ": 0, 29 "aaaa": 2, 30 "aaab": 3, 31 "b": 6, 32 "ba": 6, 33 " ": -1, 34 "aaax": -1, 35 "bbbb": -1, 36 "zzzz": -1, 37 } 38 39 func TestIndex(t *testing.T) { 40 index := Index(strings.Join(strdata, "")) 41 for k, v := range testCases { 42 if i := index.Index([]byte(k)); i != v { 43 t.Errorf("%s: got %d; want %d", k, i, v) 44 } 45 } 46 } 47 48 func TestFixCase(t *testing.T) { 49 tests := []string{ 50 "aaaa", "AbCD", "abcd", 51 "Zzzz", "AbCD", "Abcd", 52 "Zzzz", "AbC", "", 53 "XXX", "ab ", "", 54 "XXX", "usd", "USD", 55 "cmn", "AB ", "", 56 "gsw", "CMN", "cmn", 57 } 58 for tc := tests; len(tc) > 0; tc = tc[3:] { 59 b := []byte(tc[1]) 60 if !FixCase(tc[0], b) { 61 b = nil 62 } 63 if string(b) != tc[2] { 64 t.Errorf("FixCase(%q, %q) = %q; want %q", tc[0], tc[1], b, tc[2]) 65 } 66 } 67 }