-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdoublearray_test.go
More file actions
56 lines (48 loc) · 1.11 KB
/
doublearray_test.go
File metadata and controls
56 lines (48 loc) · 1.11 KB
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
package doublearray
import (
"bufio"
"os"
"testing"
)
func TestDoubleArray(t *testing.T) {
fp, err := os.Open("words.txt")
if err != nil {
t.Fatal(err)
}
defer fp.Close()
keys := make([]string, 0)
values := make([]int, 0)
scanner := bufio.NewScanner(fp)
for v := 0; scanner.Scan(); v++ {
keys = append(keys, scanner.Text())
values = append(values, v)
}
if err := scanner.Err(); err != nil {
t.Fatal(err)
}
da, err := Build(keys, values)
if err != nil {
t.Fatal(err)
}
for i := 0; i < len(keys); i++ {
v, found := da.Lookup(keys[i])
if !found {
t.Fatalf("keys[i] = %s is not found", keys[i])
}
if v != values[i] {
t.Fatalf("v = %d, but values[i] = %d", v, values[i])
}
}
decKeys, decValues := da.PredictiveLookup("")
if len(decKeys) != len(keys) {
t.Fatalf("len(decKeys) = %d, but len(keys) = %d", len(decKeys), len(keys))
}
for i := 0; i < len(keys); i++ {
if decKeys[i] != keys[i] {
t.Fatalf("decKeys[i] = %s, but keys[i] = %s", decKeys[i], keys[i])
}
if decValues[i] != values[i] {
t.Fatalf("decValues[i] = %d, but values[i] = %d", decValues[i], values[i])
}
}
}