зеркало из https://github.com/golang/text.git
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:
Родитель
8da7c0fd2b
Коммит
85a1c56496
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
Загрузка…
Ссылка в новой задаче