mirror of
https://github.com/genuinetools/reg.git
synced 2024-08-18 13:00:24 -04:00
56 lines
924 B
Go
56 lines
924 B
Go
![]() |
// 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)
|
||
|
}
|
||
|
}
|