| // Copyright 2013 The Go Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file. | |
| package collate_test | |
| import ( | |
| "fmt" | |
| "testing" | |
| "golang.org/x/text/collate" | |
| "golang.org/x/text/language" | |
| ) | |
| func ExampleCollator_strings() { | |
| c := collate.New(language.Und) | |
| strings := []string{ | |
| "ad", | |
| "ab", | |
| "äb", | |
| "ac", | |
| } | |
| c.SortStrings(strings) | |
| fmt.Println(strings) | |
| // Output: [ab äb ac ad] | |
| } | |
| type sorter []string | |
| func (s sorter) Len() int { | |
| return len(s) | |
| } | |
| func (s sorter) Swap(i, j int) { | |
| s[j], s[i] = s[i], s[j] | |
| } | |
| func (s sorter) Bytes(i int) []byte { | |
| return []byte(s[i]) | |
| } | |
| func TestSort(t *testing.T) { | |
| c := collate.New(language.English) | |
| strings := []string{ | |
| "bcd", | |
| "abc", | |
| "ddd", | |
| } | |
| c.Sort(sorter(strings)) | |
| res := fmt.Sprint(strings) | |
| want := "[abc bcd ddd]" | |
| if res != want { | |
| t.Errorf("found %s; want %s", res, want) | |
| } | |
| } |