Reader -> Reader+Parser refactoring: added tests
for new reader
This commit is contained in:
parent
435ea54343
commit
be688e6920
106
io/reader/text_test.go
Normal file
106
io/reader/text_test.go
Normal file
@ -0,0 +1,106 @@
|
||||
package reader
|
||||
|
||||
import (
|
||||
"maze-solver/maze"
|
||||
"maze-solver/utils"
|
||||
"reflect"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestTextReadTrivial(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
filename string
|
||||
pathChar byte
|
||||
wallChar byte
|
||||
expected *maze.RawMaze
|
||||
}{
|
||||
{
|
||||
"Trivial",
|
||||
"../../assets/trivial.txt",
|
||||
' ',
|
||||
'#',
|
||||
&maze.RawMaze{
|
||||
PathChar: ' ',
|
||||
WallChar: '#',
|
||||
Data: []string{
|
||||
"## ##",
|
||||
"# #",
|
||||
"### #",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"Trivial Bigger",
|
||||
"../../assets/trivial-bigger.txt",
|
||||
' ',
|
||||
'#',
|
||||
&maze.RawMaze{
|
||||
PathChar: ' ',
|
||||
WallChar: '#',
|
||||
Data: []string{
|
||||
"### ###",
|
||||
"### ###",
|
||||
"# #",
|
||||
"##### #",
|
||||
"##### #",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"Bigger Staggered",
|
||||
"../../assets/trivial-bigger-staggered.txt",
|
||||
' ',
|
||||
'#',
|
||||
&maze.RawMaze{
|
||||
PathChar: ' ',
|
||||
WallChar: '#',
|
||||
Data: []string{
|
||||
"### ###",
|
||||
"### ###",
|
||||
"# #",
|
||||
"#### ##",
|
||||
"#### ##",
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"Normal",
|
||||
"../../assets/normal.txt",
|
||||
' ',
|
||||
'#',
|
||||
&maze.RawMaze{
|
||||
PathChar: ' ',
|
||||
WallChar: '#',
|
||||
Data: []string{
|
||||
"##### #####",
|
||||
"# # #",
|
||||
"##### ### #",
|
||||
"# # #",
|
||||
"# # ##### #",
|
||||
"# # #",
|
||||
"### ### # #",
|
||||
"# # # #",
|
||||
"# ####### #",
|
||||
"# # #",
|
||||
"##### #####",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
reader := TextReader{
|
||||
Filename: test.filename,
|
||||
PathChar: test.pathChar,
|
||||
WallChar: test.wallChar,
|
||||
}
|
||||
|
||||
got, err := reader.Read()
|
||||
utils.Check(err, "Couldn't read file %q", reader.Filename)
|
||||
|
||||
if !reflect.DeepEqual(got, test.expected) {
|
||||
t.Fatalf("%s: lexed mazes do not match\nGot: %v\nWant: %v", test.name, got, test.expected)
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user