added test for all implementations
This commit is contained in:
76
internal/mapfmt/map_test.go
Normal file
76
internal/mapfmt/map_test.go
Normal file
@@ -0,0 +1,76 @@
|
||||
package mapfmt
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestParseVertices(t *testing.T) {
|
||||
data := []byte{
|
||||
0, 0, 0, 0, // (0,0)
|
||||
255, 255, 10, 0, // (-1,10)
|
||||
}
|
||||
verts, err := ParseVertices(data)
|
||||
if err != nil {
|
||||
t.Fatalf("ParseVertices error: %v", err)
|
||||
}
|
||||
if len(verts) != 2 {
|
||||
t.Fatalf("got %d vertices", len(verts))
|
||||
}
|
||||
if verts[1].X != -1 || verts[1].Y != 10 {
|
||||
t.Fatalf("unexpected vertex %+v", verts[1])
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseVerticesBadSize(t *testing.T) {
|
||||
if _, err := ParseVertices([]byte{0}); err == nil {
|
||||
t.Fatalf("expected error on odd sized vertex data")
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseLinedefs(t *testing.T) {
|
||||
data := make([]byte, 14)
|
||||
data[0] = 1 // V1
|
||||
data[2] = 2 // V2
|
||||
lines, err := ParseLinedefs(data)
|
||||
if err != nil {
|
||||
t.Fatalf("ParseLinedefs error: %v", err)
|
||||
}
|
||||
if len(lines) != 1 {
|
||||
t.Fatalf("expected one linedef")
|
||||
}
|
||||
if lines[0].V1 != 1 || lines[0].V2 != 2 {
|
||||
t.Fatalf("unexpected linedef %+v", lines[0])
|
||||
}
|
||||
}
|
||||
|
||||
func TestParseLinedefsBadSize(t *testing.T) {
|
||||
if _, err := ParseLinedefs(make([]byte, 13)); err == nil {
|
||||
t.Fatalf("expected error on odd sized linedef data")
|
||||
}
|
||||
}
|
||||
|
||||
func TestLoadMap(t *testing.T) {
|
||||
raw := map[string][]byte{
|
||||
"VERTEXES": {0, 0, 0, 0},
|
||||
"LINEDEFS": make([]byte, 14),
|
||||
}
|
||||
m, err := LoadMap(raw)
|
||||
if err != nil {
|
||||
t.Fatalf("LoadMap error: %v", err)
|
||||
}
|
||||
if len(m.Vertices) != 1 || len(m.Linedefs) != 1 {
|
||||
t.Fatalf("unexpected map data %+v", m)
|
||||
}
|
||||
}
|
||||
|
||||
func TestLinedefsToSegs(t *testing.T) {
|
||||
verts := []Vertex{{X: 0, Y: 0}, {X: 10, Y: 0}, {X: 10, Y: 0}}
|
||||
lines := []Linedef{{V1: 0, V2: 1}, {V1: 1, V2: 2}} // second is degenerate
|
||||
segs := LinedefsToSegs(verts, lines)
|
||||
if len(segs) != 1 {
|
||||
t.Fatalf("expected one segment, got %d", len(segs))
|
||||
}
|
||||
if segs[0].A.X != 0 || segs[0].B.X != 10 {
|
||||
t.Fatalf("unexpected segment: %+v", segs[0])
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user