From df5fe0927002868c32ddf7d2f604e31fb6fefe9c Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 22 Mar 2015 23:18:01 +0100 Subject: Add testing --- lexer_test.go | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 lexer_test.go diff --git a/lexer_test.go b/lexer_test.go new file mode 100644 index 0000000..1c64735 --- /dev/null +++ b/lexer_test.go @@ -0,0 +1,36 @@ +package main + +import "testing" + +func testInput(t *testing.T, s []string, ty int) { + for _, input := range s { + l := lex(input + "\n") + typ, s := l.Lex() + if input[0] == '\'' { + input = input[1 : len(input)-1] + } + if typ != ty || s != input { + t.Error("expeced", input, "got", s) + } + } +} + +func TestInteger(t *testing.T) { + testInput(t, []string{"1", "¯1"}, INTEGER) +} + +func TestFloat(t *testing.T) { + testInput(t, []string{"1.1", "¯1.1", "1e1", "¯1.1e1"}, FLOAT) +} + +func TestComplex(t *testing.T) { + testInput(t, []string{"1.1J1", "¯1J1", "1J¯1.1", "¯1.1e1J¯1"}, COMPLEX) +} + +func TestString(t *testing.T) { + testInput(t, []string{"abc"}, STRING) +} + +func TestQuoted(t *testing.T) { + testInput(t, []string{"'abc''xyz'"}, QUOTED) +} -- cgit v1.2.3