1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package s2
16
17 import "testing"
18
19 func TestCoder(t *testing.T) {
20
21 input := []int32{1, 5, 10, 15, 20, 23}
22 order0 := []int32{1, 5, 10, 15, 20, 23}
23 order1 := []int32{1, 4, 5, 5, 5, 3}
24 order2 := []int32{1, 4, 1, 0, 0, -2}
25
26 enc0, dec0 := newNthDerivativeCoder(0), newNthDerivativeCoder(0)
27 enc1, dec1 := newNthDerivativeCoder(1), newNthDerivativeCoder(1)
28 enc2, dec2 := newNthDerivativeCoder(2), newNthDerivativeCoder(2)
29
30 for i, in := range input {
31 if got := enc0.encode(in); got != order0[i] {
32 t.Errorf("enc0 = %d, want %d", got, order0[i])
33 }
34 if got := dec0.decode(order0[i]); got != in {
35 t.Errorf("dec0 = %d, want %d", got, in)
36 }
37 if got := enc1.encode(in); got != order1[i] {
38 t.Errorf("enc1 = %d, want %d", got, order1[i])
39 }
40 if got := dec1.decode(order1[i]); got != in {
41 t.Errorf("dec1 = %d, want %d", got, in)
42 }
43 if got := enc2.encode(in); got != order2[i] {
44 t.Errorf("enc2 = %d, want %d", got, order2[i])
45 }
46 if got := dec2.decode(order2[i]); got != in {
47 t.Errorf("dec2 = %d, want %d", got, in)
48 }
49 }
50 }
51
View as plain text