62 lines
1.4 KiB
Odin
62 lines
1.4 KiB
Odin
package game
|
|
|
|
import "core:testing"
|
|
|
|
@(test)
|
|
test_start_wave_enters_combat :: proc(t: ^testing.T) {
|
|
world := World {
|
|
phase = .Combat,
|
|
}
|
|
world.wave = 0
|
|
|
|
start_wave(&world)
|
|
|
|
testing.expect(t, world.phase == .Combat)
|
|
testing.expect(t, world.wave == 0)
|
|
}
|
|
|
|
@(test)
|
|
test_start_wave_from_build :: proc(t: ^testing.T) {
|
|
world := World {
|
|
phase = .Build,
|
|
}
|
|
world.wave = 0
|
|
|
|
start_wave(&world)
|
|
defer delete(world.spawner.recipe)
|
|
|
|
testing.expect(t, world.phase == .Combat)
|
|
testing.expect(t, world.wave == 1)
|
|
testing.expect(t, world.spawner.spawn_timer == 0)
|
|
testing.expect(t, world.spawner.spawn_interval == 0.55)
|
|
testing.expect(t, world.spawner.recipe_index == 0)
|
|
}
|
|
|
|
@(test)
|
|
test_clear_wave_not_cleared :: proc(t: ^testing.T) {
|
|
world := World{}
|
|
world.spawner.recipe = make([dynamic]Wave_Entry, context.allocator)
|
|
append(&world.spawner.recipe, Wave_Entry{})
|
|
defer delete(world.spawner.recipe)
|
|
world.spawner.recipe_index = 0
|
|
world.spawner.entry_remaining = 0
|
|
|
|
result := clear_wave(&world)
|
|
|
|
testing.expect(t, result == false)
|
|
}
|
|
|
|
@(test)
|
|
test_clear_wave_cleared :: proc(t: ^testing.T) {
|
|
world := World{}
|
|
world.spawner.recipe = make([dynamic]Wave_Entry, context.allocator)
|
|
append(&world.spawner.recipe, Wave_Entry{})
|
|
defer delete(world.spawner.recipe)
|
|
world.spawner.recipe_index = 1
|
|
world.spawner.entry_remaining = 0
|
|
|
|
result := clear_wave(&world)
|
|
|
|
testing.expect(t, result == true)
|
|
}
|