xx/utils_test.go
2025-11-18 17:50:19 -07:00

62 lines
785 B
Go

package xx_test
import (
"testing"
"unsafe"
"git.brut.systems/judah/xx"
)
func TestNew(t *testing.T) {
a := xx.New(uint32(1024))
if *a != 1024 {
t.Fail()
}
if unsafe.Sizeof(*a) != xx.SizeOf[uint32]() {
t.Fail()
}
b := xx.New(struct{ x, y, z float32 }{10, 20, 30})
if b.x != 10 {
t.Fail()
}
if b.y != 20 {
t.Fail()
}
if b.z != 30 {
t.Fail()
}
c := xx.New(b)
if c == &b {
t.Fail()
}
if (*c).x != 10 {
t.Fail()
}
if (*c).y != 20 {
t.Fail()
}
if (*c).z != 30 {
t.Fail()
}
}
func TestBitcast(t *testing.T) {
a := uint32(0xFFFF_FFFF)
b := xx.Bitcast[float32](a)
c := xx.Bitcast[uint32](b)
if a != c {
t.Fail()
}
d := xx.Bitcast[int8](uint8(0xFF))
if d != -1 {
t.Fail()
}
e := xx.Bitcast[uint8](d)
if e != 255 {
t.Fail()
}
}