-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathbasecode_test.go
130 lines (120 loc) · 2.7 KB
/
basecode_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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
package basecode
import (
"strconv"
"testing"
"time"
)
func TestEncoding_Encode(t *testing.T) {
type args struct {
src string
}
tests := []struct {
name string
args args
want string
}{
// TODO: Add test cases.
{
name: "hello world Encode",
args: args{src: "hello world"},
want: "GCCAGCGGGCUAGCUAGCUUACAAGUGUGCUUGUACGCUAGCGA",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := StdEncoding.Encode(tt.args.src); got != tt.want {
t.Errorf("Encoding.Encode() = %v, want %v", got, tt.want)
}
})
}
}
func TestEncoding_Decode(t *testing.T) {
type args struct {
src string
}
tests := []struct {
name string
args args
want string
}{
// TODO: Add test cases.
{
name: "hello world Decode",
args: args{src: "GCCAGCGGGCUAGCUAGCUUACAAGUGUGCUUGUACGCUAGCGA"},
want: "hello world",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := StdEncoding.Decode(tt.args.src); got != tt.want {
t.Errorf("Encoding.Decode() = %v, want %v", got, tt.want)
}
})
}
}
func TestOtherCodebookEncoding_Encode(t *testing.T) {
type args struct {
src string
}
tests := []struct {
name string
args args
want string
}{
// TODO: Add test cases.
{
name: "hello world Encode",
args: args{src: "hello world"},
want: "夏秋秋春夏秋夏夏夏秋东春夏秋东春夏秋东东春秋春春夏东夏东夏秋东东夏东春秋夏秋东春夏秋夏春",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
e := NewEncoding([]string{"春", "夏", "秋", "东"})
if got := e.Encode(tt.args.src); got != tt.want {
t.Errorf("Encoding.Encode() = %v, want %v", got, tt.want)
}
})
}
}
func TestOtherCodebookEncoding_Decode(t *testing.T) {
type args struct {
src string
}
tests := []struct {
name string
args args
want string
}{
// TODO: Add test cases.
{
name: "hello world Encode",
args: args{src: "夏秋秋春夏秋夏夏夏秋东春夏秋东春夏秋东东春秋春春夏东夏东夏秋东东夏东春秋夏秋东春夏秋夏春"},
want: "hello world",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
e := NewEncoding([]string{"春", "夏", "秋", "东"})
if got := e.Decode(tt.args.src); got != tt.want {
t.Errorf("Encoding.Encode() = %v, want %v", got, tt.want)
}
})
}
}
func BenchmarkStdEncoding(t *testing.B) {
t.StartTimer()
t.Run("stressTest", func(b *testing.B) {
for i := 0; i < t.N; i++ {
StdEncoding.Encode(strconv.Itoa(i))
}
})
t.StopTimer()
}
func BenchmarkLoopsParallel(b *testing.B) {
b.RunParallel(func(pb *testing.PB) {
for pb.Next() {
StdEncoding.Encode(strconv.Itoa(time.Now().Second()))
}
})
}