-
Notifications
You must be signed in to change notification settings - Fork 2
/
utility_test.go
108 lines (97 loc) · 2.37 KB
/
utility_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
// Copyright 2016 David Lavieri. All rights reserved.
// Use of this source code is governed by a MIT License
// License that can be found in the LICENSE file.
package goradix
import (
"fmt"
"math/rand"
)
func random(min, max int) int {
return rand.Intn(max-min) + min
}
func sampleData() []string {
return []string{
"test",
"toaster",
"toasting",
"slow",
"slowly",
}
}
func sampleData2() []string {
return []string{
"romane",
"romanus",
"romulus",
"rubens",
"ruber",
"rubicon",
"rubicundus",
"rinicundus",
"repicundus",
"lepicundus",
"lepocundus",
"lomulus",
"lupus",
"huber",
"pepicundus",
"pepicundas",
"pepocundus",
"pomulus",
"pupus",
"yuber",
"yubel",
"yubo",
}
}
// same as sampleData2 but in bytes to avoid conversion
func sampleData2Bytes() [][]byte {
return [][]byte{
[]byte{114, 111, 109, 97, 110, 101},
[]byte{114, 111, 109, 97, 110, 117, 115},
[]byte{114, 111, 109, 117, 108, 117, 115},
[]byte{114, 117, 98, 101, 110, 115},
[]byte{114, 117, 98, 101, 114},
[]byte{114, 117, 98, 105, 99, 111, 110},
[]byte{114, 117, 98, 105, 99, 117, 110, 100, 117, 115},
[]byte{114, 105, 110, 105, 99, 117, 110, 100, 117, 115},
[]byte{114, 101, 112, 105, 99, 117, 110, 100, 117, 115},
[]byte{108, 101, 112, 105, 99, 117, 110, 100, 117, 115},
[]byte{108, 101, 112, 111, 99, 117, 110, 100, 117, 115},
[]byte{108, 111, 109, 117, 108, 117, 115},
[]byte{108, 117, 112, 117, 115},
[]byte{104, 117, 98, 101, 114},
[]byte{112, 101, 112, 105, 99, 117, 110, 100, 117, 115},
[]byte{112, 101, 112, 105, 99, 117, 110, 100, 97, 115},
[]byte{112, 101, 112, 111, 99, 117, 110, 100, 117, 115},
[]byte{112, 111, 109, 117, 108, 117, 115},
[]byte{112, 117, 112, 117, 115},
[]byte{121, 117, 98, 101, 114},
[]byte{121, 117, 98, 101, 108},
[]byte{121, 117, 98, 111},
}
}
func insertData(radix *Radix, sd func() []string) {
for i, s := range sd() {
radix.Insert(s, i)
}
}
func insertDataBytes(radix *Radix, sd func() [][]byte) {
for i, s := range sd() {
radix.InsertBytes(s, i)
}
}
func printRecursive(n *Radix, level int) {
fmt.Println(string(n.Path), " - ", level)
if len(n.nodes) > 0 {
for _, c := range n.nodes {
printRecursive(c, level+1)
}
}
}
func randomBytes(bytes [][]byte) []byte {
return bytes[random(0, len(bytes))]
}
func randomString(strings []string) string {
return strings[random(0, len(strings))]
}