1// Copyright 2013 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 5package collate_test 6 7import ( 8 "fmt" 9 "testing" 10 11 "golang.org/x/text/collate" 12 "golang.org/x/text/language" 13) 14 15func ExampleCollator_Strings() { 16 c := collate.New(language.Und) 17 strings := []string{ 18 "ad", 19 "ab", 20 "äb", 21 "ac", 22 } 23 c.SortStrings(strings) 24 fmt.Println(strings) 25 // Output: [ab äb ac ad] 26} 27 28type sorter []string 29 30func (s sorter) Len() int { 31 return len(s) 32} 33 34func (s sorter) Swap(i, j int) { 35 s[j], s[i] = s[i], s[j] 36} 37 38func (s sorter) Bytes(i int) []byte { 39 return []byte(s[i]) 40} 41 42func TestSort(t *testing.T) { 43 c := collate.New(language.English) 44 strings := []string{ 45 "bcd", 46 "abc", 47 "ddd", 48 } 49 c.Sort(sorter(strings)) 50 res := fmt.Sprint(strings) 51 want := "[abc bcd ddd]" 52 if res != want { 53 t.Errorf("found %s; want %s", res, want) 54 } 55} 56