text/collate: add testable examples

Change-Id: Id3915137c4d365ec82ce74d8212e7b6cfb6fb200
Reviewed-on: https://go-review.googlesource.com/c/text/+/360494
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
Trust: Marcel van Lohuizen <mpvl@golang.org>
This commit is contained in:
Amelia Downs 2021-11-01 16:41:32 -04:00 коммит произвёл Ian Lance Taylor
Родитель 8da7c0fd2b
Коммит 85a1c56496
2 изменённых файлов: 135 добавлений и 0 удалений

Просмотреть файл

@ -0,0 +1,56 @@
// Copyright 2021 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"
"golang.org/x/text/collate"
"golang.org/x/text/language"
)
type book struct {
title string
}
type bookcase struct {
books []book
}
func (bc bookcase) Len() int {
return len(bc.books)
}
func (bc bookcase) Swap(i, j int) {
temp := bc.books[i]
bc.books[i] = bc.books[j]
bc.books[j] = temp
}
func (bc bookcase) Bytes(i int) []byte {
// returns the bytes of text at index i
return []byte(bc.books[i].title)
}
func ExampleCollator_Sort() {
bc := bookcase{
books: []book{
{title: "If Cats Disappeared from the World"},
{title: "The Guest Cat"},
{title: "Catwings"},
},
}
cc := collate.New(language.English)
cc.Sort(bc)
for _, b := range bc.books {
fmt.Println(b.title)
}
// Output:
// Catwings
// If Cats Disappeared from the World
// The Guest Cat
}

79
collate/examples_test.go Normal file
Просмотреть файл

@ -0,0 +1,79 @@
// Copyright 2021 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"
"golang.org/x/text/collate"
"golang.org/x/text/language"
)
func ExampleNew() {
letters := []string{"ä", "å", "ö", "o", "a"}
ec := collate.New(language.English)
ec.SortStrings(letters)
fmt.Printf("English Sorting: %v\n", letters)
sc := collate.New(language.Swedish)
sc.SortStrings(letters)
fmt.Printf("Swedish Sorting: %v\n", letters)
numbers := []string{"0", "11", "01", "2", "3", "23"}
ec.SortStrings(numbers)
fmt.Printf("Alphabetic Sorting: %v\n", numbers)
nc := collate.New(language.English, collate.Numeric)
nc.SortStrings(numbers)
fmt.Printf("Numeric Sorting: %v\n", numbers)
// Output:
// English Sorting: [a å ä o ö]
// Swedish Sorting: [a o å ä ö]
// Alphabetic Sorting: [0 01 11 2 23 3]
// Numeric Sorting: [0 01 2 3 11 23]
}
func ExampleCollator_SortStrings() {
c := collate.New(language.English)
words := []string{"meow", "woof", "bark", "moo"}
c.SortStrings(words)
fmt.Println(words)
// Output:
// [bark meow moo woof]
}
func ExampleCollator_CompareString() {
c := collate.New(language.English)
r := c.CompareString("meow", "woof")
fmt.Println(r)
r = c.CompareString("woof", "meow")
fmt.Println(r)
r = c.CompareString("meow", "meow")
fmt.Println(r)
// Output:
// -1
// 1
// 0
}
func ExampleCollator_Compare() {
c := collate.New(language.English)
r := c.Compare([]byte("meow"), []byte("woof"))
fmt.Println(r)
r = c.Compare([]byte("woof"), []byte("meow"))
fmt.Println(r)
r = c.Compare([]byte("meow"), []byte("meow"))
fmt.Println(r)
// Output:
// -1
// 1
// 0
}