package main import "testing" // TestNewEnemyShip_roomCount verifies that NewEnemyShip returns exactly 5 rooms. func TestNewEnemyShip_roomCount(t *testing.T) { enemy := NewEnemyShip() if len(enemy.Rooms) != 5 { t.Fatalf("expected 5 rooms, got %d", len(enemy.Rooms)) } } // TestNewEnemyShip_shifted verifies that each enemy room has GridX shifted by +24 // relative to the corresponding player room, while GridY/GridW/GridH/Role/Name // are unchanged. func TestNewEnemyShip_shifted(t *testing.T) { player := NewPlayerShip() enemy := NewEnemyShip() if len(enemy.Rooms) != len(player.Rooms) { t.Fatalf("room count mismatch: enemy %d, player %d", len(enemy.Rooms), len(player.Rooms)) } for i := range player.Rooms { p := player.Rooms[i] e := enemy.Rooms[i] wantGridX := p.GridX + 24 if e.GridX != wantGridX { t.Errorf("rooms[%d] GridX = %d, want %d (player %d + 24)", i, e.GridX, wantGridX, p.GridX) } if e.GridY != p.GridY { t.Errorf("rooms[%d] GridY = %d, want %d", i, e.GridY, p.GridY) } if e.GridW != p.GridW { t.Errorf("rooms[%d] GridW = %d, want %d", i, e.GridW, p.GridW) } if e.GridH != p.GridH { t.Errorf("rooms[%d] GridH = %d, want %d", i, e.GridH, p.GridH) } if e.Role != p.Role { t.Errorf("rooms[%d] Role = %v, want %v", i, e.Role, p.Role) } if e.Name != p.Name { t.Errorf("rooms[%d] Name = %q, want %q", i, e.Name, p.Name) } } }