summaryrefslogtreecommitdiff
path: root/vendor/golang.org/x/text/internal/triegen/example_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/golang.org/x/text/internal/triegen/example_test.go')
-rw-r--r--vendor/golang.org/x/text/internal/triegen/example_test.go148
1 files changed, 0 insertions, 148 deletions
diff --git a/vendor/golang.org/x/text/internal/triegen/example_test.go b/vendor/golang.org/x/text/internal/triegen/example_test.go
deleted file mode 100644
index 557a152..0000000
--- a/vendor/golang.org/x/text/internal/triegen/example_test.go
+++ /dev/null
@@ -1,148 +0,0 @@
-// Copyright 2014 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 triegen_test
-
-import (
- "fmt"
- "io/ioutil"
- "math/rand"
- "unicode"
-
- "golang.org/x/text/internal/triegen"
-)
-
-const seed = 0x12345
-
-var genWriter = ioutil.Discard
-
-func randomRunes() map[rune]uint8 {
- rnd := rand.New(rand.NewSource(seed))
- m := map[rune]uint8{}
- for len(m) < 100 {
- // Only set our random rune if it is a valid Unicode code point.
- if r := rune(rnd.Int31n(unicode.MaxRune + 1)); []rune(string(r))[0] == r {
- m[r] = 1
- }
- }
- return m
-}
-
-// Example_build shows how to build a simple trie. It assigns the value 1 to
-// 100 random runes generated by randomRunes.
-func Example_build() {
- t := triegen.NewTrie("rand")
-
- for r, _ := range randomRunes() {
- t.Insert(r, 1)
- }
- sz, err := t.Gen(genWriter)
-
- fmt.Printf("Trie size: %d bytes\n", sz)
- fmt.Printf("Error: %v\n", err)
-
- // Output:
- // Trie size: 9280 bytes
- // Error: <nil>
-}
-
-// Example_lookup demonstrates how to use the trie generated by Example_build.
-func Example_lookup() {
- trie := newRandTrie(0)
-
- // The same set of runes used by Example_build.
- runes := randomRunes()
-
- // Verify the right value is returned for all runes.
- for r := rune(0); r <= unicode.MaxRune; r++ {
- // Note that the return type of lookup is uint8.
- if v, _ := trie.lookupString(string(r)); v != runes[r] {
- fmt.Println("FAILURE")
- return
- }
- }
- fmt.Println("SUCCESS")
-
- // Output:
- // SUCCESS
-}
-
-// runeValues generates some random values for a set of interesting runes.
-func runeValues() map[rune]uint64 {
- rnd := rand.New(rand.NewSource(seed))
- m := map[rune]uint64{}
- for p := 4; p <= unicode.MaxRune; p <<= 1 {
- for d := -1; d <= 1; d++ {
- m[rune(p+d)] = uint64(rnd.Int63())
- }
- }
- return m
-}
-
-// ExampleGen_build demonstrates the creation of multiple tries sharing common
-// blocks. ExampleGen_lookup demonstrates how to use the generated tries.
-func ExampleGen_build() {
- var tries []*triegen.Trie
-
- rv := runeValues()
- for _, c := range []struct {
- include func(rune) bool
- name string
- }{
- {func(r rune) bool { return true }, "all"},
- {func(r rune) bool { return r < 0x80 }, "ASCII only"},
- {func(r rune) bool { return r < 0x80 }, "ASCII only 2"},
- {func(r rune) bool { return r <= 0xFFFF }, "BMP only"},
- {func(r rune) bool { return r > 0xFFFF }, "No BMP"},
- } {
- t := triegen.NewTrie(c.name)
- tries = append(tries, t)
-
- for r, v := range rv {
- if c.include(r) {
- t.Insert(r, v)
- }
- }
- }
- sz, err := triegen.Gen(genWriter, "multi", tries)
-
- fmt.Printf("Trie size: %d bytes\n", sz)
- fmt.Printf("Error: %v\n", err)
-
- // Output:
- // Trie size: 18250 bytes
- // Error: <nil>
-}
-
-// ExampleGen_lookup shows how to look up values in the trie generated by
-// ExampleGen_build.
-func ExampleGen_lookup() {
- rv := runeValues()
- for i, include := range []func(rune) bool{
- func(r rune) bool { return true }, // all
- func(r rune) bool { return r < 0x80 }, // ASCII only
- func(r rune) bool { return r < 0x80 }, // ASCII only 2
- func(r rune) bool { return r <= 0xFFFF }, // BMP only
- func(r rune) bool { return r > 0xFFFF }, // No BMP
- } {
- t := newMultiTrie(i)
-
- for r := rune(0); r <= unicode.MaxRune; r++ {
- x := uint64(0)
- if include(r) {
- x = rv[r]
- }
- // As we convert from a valid rune, we know it is safe to use
- // lookupStringUnsafe.
- if v := t.lookupStringUnsafe(string(r)); x != v {
- fmt.Println("FAILURE")
- return
- }
- }
- }
- fmt.Println("SUCCESS")
-
- // Output:
- // SUCCESS
-}