-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathinterpreter_test.go
94 lines (85 loc) · 1.72 KB
/
interpreter_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
package main
import (
"strconv"
"testing"
)
func TestNodesCantBeNormalString(t *testing.T) {
sentence := "normal"
i := interpreter{}
err := i.of(sentence)
if err == nil {
t.Error("Si doveva spaccare")
}
}
func TestFoo(t *testing.T) {
sentence := "do something"
i := interpreter{}
i.of(sentence)
if i.numberOfWords() != 2 {
t.Error("Guarda che ti stai sbagliando")
}
}
func TestPlusOperatorDetector(t *testing.T) {
sentence := "2 + 3"
i := interpreter{}
i.of(sentence)
if i.contains("+") != true {
t.Error("dovrebbe conoscere l'operatore +")
}
}
func TestShouldNotContainUnknownOperator(t *testing.T) {
sentence := "2 + 3"
i := interpreter{}
i.of(sentence)
if i.contains("unknown") != false {
t.Error("it should not known unknown operator")
}
}
func TestSplitSentencesInSplice(t *testing.T) {
sentence := "2 + 3"
i := interpreter{}
i.of(sentence)
expected := []string{"2", "+", "3"}
for ind, _ := range expected {
tok := i.tokens()
if expected[ind] != tok[ind] {
t.Error("invalid tokens")
}
}
}
func TestCountNumberOfOperators(t *testing.T) {
sentence := "2 + 3"
i := interpreter{}
i.of(sentence)
expected := []string{"2", "+", "3"}
for ind, _ := range expected {
tok := i.tokens()
if expected[ind] != tok[ind] {
t.Error("non ci siamo")
}
}
}
func TestSumOperator(t *testing.T) {
sentence := "5 + 3"
i := interpreter{}
i.of(sentence)
if i.exec() != 8 {
t.Error([]string{
"La somma di 5 con 3",
"non dovrebbe essere",
strconv.Itoa(i.exec()),
})
}
}
func TestMulOperator(t *testing.T) {
sentence := "5 * 3"
i := interpreter{}
i.of(sentence)
if i.exec() != 15 {
t.Error([]string{
"Multiplication between 5 and 3",
"shouldnt be",
strconv.Itoa(i.exec()),
})
}
}