77 lines
1.7 KiB
Go
77 lines
1.7 KiB
Go
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])
|
|
}
|
|
}
|