token_test.go: rewritten using a more structured form
This commit is contained in:
parent
c75e6485e0
commit
ad6b4b872f
@ -5,14 +5,34 @@
|
|||||||
package expr
|
package expr
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestDevString(t *testing.T) {
|
func TestDevString(t *testing.T) {
|
||||||
tk1 := NewValueToken(0, 0, SymInteger, "100", 100)
|
type inputType struct {
|
||||||
tk2 := NewToken(0, 0, SymPlus, "+")
|
source string
|
||||||
|
sym Symbol
|
||||||
|
value any
|
||||||
|
wantResult string
|
||||||
|
}
|
||||||
|
|
||||||
fmt.Println("Token '100':", tk1.DevString())
|
inputs := []inputType{
|
||||||
fmt.Println("Token '+':", tk2.DevString())
|
/* 1 */ {"100", SymInteger, 100, `[55]"100"{100}`},
|
||||||
|
/* 2 */ {"+", SymPlus, nil, `[6]"+"{}`},
|
||||||
|
}
|
||||||
|
|
||||||
|
for i, input := range inputs {
|
||||||
|
var tk *Token
|
||||||
|
if input.value == nil {
|
||||||
|
tk = NewToken(0, 0, input.sym, input.source)
|
||||||
|
} else {
|
||||||
|
tk = NewValueToken(0, 0, input.sym, input.source, input.value)
|
||||||
|
}
|
||||||
|
|
||||||
|
t.Logf("Test nr %2d: %q --> %q", i+1, input.source, input.wantResult)
|
||||||
|
|
||||||
|
if s := tk.DevString(); s != input.wantResult {
|
||||||
|
t.Errorf("wrong token from symbol '+': expected %q, got %q", input.wantResult, s)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user