65 lines
1.7 KiB
Odin
65 lines
1.7 KiB
Odin
package engine
|
|
|
|
import "core:testing"
|
|
import sdl "vendor:sdl3"
|
|
|
|
fake_tex :: proc(id: uintptr) -> ^sdl.GPUTexture {
|
|
return cast(^sdl.GPUTexture)id
|
|
}
|
|
|
|
@(test)
|
|
texture_run_len_empty_or_oob :: proc(t: ^testing.T) {
|
|
testing.expect_value(t, texture_run_len(nil, 0), 0)
|
|
list := []Queued_Sprite{}
|
|
testing.expect_value(t, texture_run_len(list, 0), 0)
|
|
list = make([]Queued_Sprite, 1)
|
|
defer delete(list)
|
|
list[0] = {texture = fake_tex(1)}
|
|
testing.expect_value(t, texture_run_len(list, -1), 0)
|
|
testing.expect_value(t, texture_run_len(list, 1), 0)
|
|
}
|
|
|
|
@(test)
|
|
texture_run_len_single :: proc(t: ^testing.T) {
|
|
list := make([]Queued_Sprite, 1)
|
|
defer delete(list)
|
|
list[0] = {texture = fake_tex(1)}
|
|
testing.expect_value(t, texture_run_len(list, 0), 1)
|
|
}
|
|
|
|
@(test)
|
|
texture_run_len_same_texture :: proc(t: ^testing.T) {
|
|
tex := fake_tex(1)
|
|
list := make([]Queued_Sprite, 3)
|
|
defer delete(list)
|
|
list[0] = {texture = tex}
|
|
list[1] = {texture = tex}
|
|
list[2] = {texture = tex}
|
|
testing.expect_value(t, texture_run_len(list, 0), 3)
|
|
}
|
|
|
|
@(test)
|
|
texture_run_len_breaks_on_change :: proc(t: ^testing.T) {
|
|
a := fake_tex(1)
|
|
b := fake_tex(2)
|
|
list := make([]Queued_Sprite, 3)
|
|
defer delete(list)
|
|
list[0] = {texture = a}
|
|
list[1] = {texture = a}
|
|
list[2] = {texture = b}
|
|
testing.expect_value(t, texture_run_len(list, 0), 2)
|
|
testing.expect_value(t, texture_run_len(list, 2), 1)
|
|
}
|
|
|
|
@(test)
|
|
texture_run_len_all_different :: proc(t: ^testing.T) {
|
|
list := make([]Queued_Sprite, 3)
|
|
defer delete(list)
|
|
list[0] = {texture = fake_tex(1)}
|
|
list[1] = {texture = fake_tex(2)}
|
|
list[2] = {texture = fake_tex(3)}
|
|
testing.expect_value(t, texture_run_len(list, 0), 1)
|
|
testing.expect_value(t, texture_run_len(list, 1), 1)
|
|
testing.expect_value(t, texture_run_len(list, 2), 1)
|
|
}
|