This commit is contained in:
@@ -0,0 +1,143 @@
|
||||
package langext
|
||||
|
||||
import (
|
||||
"git.blackforestbytes.com/BlackForestBytes/goext/tst"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestPtr(t *testing.T) {
|
||||
p := Ptr(42)
|
||||
if p == nil {
|
||||
t.Fatalf("expected non-nil")
|
||||
}
|
||||
tst.AssertEqual(t, *p, 42)
|
||||
}
|
||||
|
||||
func TestPtrString(t *testing.T) {
|
||||
p := Ptr("hi")
|
||||
tst.AssertEqual(t, *p, "hi")
|
||||
}
|
||||
|
||||
func TestPTrue(t *testing.T) {
|
||||
if PTrue == nil || *PTrue != true {
|
||||
t.Errorf("PTrue should point to true")
|
||||
}
|
||||
}
|
||||
|
||||
func TestPFalse(t *testing.T) {
|
||||
if PFalse == nil || *PFalse != false {
|
||||
t.Errorf("PFalse should point to false")
|
||||
}
|
||||
}
|
||||
|
||||
func TestDblPtr(t *testing.T) {
|
||||
pp := DblPtr(7)
|
||||
if pp == nil || *pp == nil {
|
||||
t.Fatalf("expected non-nil double pointer")
|
||||
}
|
||||
tst.AssertEqual(t, **pp, 7)
|
||||
}
|
||||
|
||||
func TestDblPtrIfNotNilWithValue(t *testing.T) {
|
||||
v := 5
|
||||
pp := DblPtrIfNotNil(&v)
|
||||
if pp == nil {
|
||||
t.Fatalf("expected non-nil double pointer")
|
||||
}
|
||||
tst.AssertEqual(t, **pp, 5)
|
||||
}
|
||||
|
||||
func TestDblPtrIfNotNilNil(t *testing.T) {
|
||||
pp := DblPtrIfNotNil[int](nil)
|
||||
if pp != nil {
|
||||
t.Errorf("expected nil for nil input")
|
||||
}
|
||||
}
|
||||
|
||||
func TestDblPtrNil(t *testing.T) {
|
||||
pp := DblPtrNil[int]()
|
||||
if pp == nil {
|
||||
t.Fatalf("expected non-nil outer pointer")
|
||||
}
|
||||
if *pp != nil {
|
||||
t.Errorf("expected inner pointer to be nil")
|
||||
}
|
||||
}
|
||||
|
||||
func TestArrPtr(t *testing.T) {
|
||||
p := ArrPtr(1, 2, 3)
|
||||
if p == nil {
|
||||
t.Fatalf("expected non-nil pointer")
|
||||
}
|
||||
tst.AssertArrayEqual(t, *p, []int{1, 2, 3})
|
||||
}
|
||||
|
||||
func TestPtrInt32(t *testing.T) {
|
||||
p := PtrInt32(7)
|
||||
tst.AssertEqual(t, *p, int32(7))
|
||||
}
|
||||
|
||||
func TestPtrInt64(t *testing.T) {
|
||||
p := PtrInt64(7)
|
||||
tst.AssertEqual(t, *p, int64(7))
|
||||
}
|
||||
|
||||
func TestPtrFloat32(t *testing.T) {
|
||||
p := PtrFloat32(1.5)
|
||||
tst.AssertEqual(t, *p, float32(1.5))
|
||||
}
|
||||
|
||||
func TestPtrFloat64(t *testing.T) {
|
||||
p := PtrFloat64(2.5)
|
||||
tst.AssertEqual(t, *p, 2.5)
|
||||
}
|
||||
|
||||
func TestIsNilTrue(t *testing.T) {
|
||||
tst.AssertEqual(t, IsNil(nil), true)
|
||||
|
||||
var p *int
|
||||
tst.AssertEqual(t, IsNil(p), true)
|
||||
|
||||
var m map[string]int
|
||||
tst.AssertEqual(t, IsNil(m), true)
|
||||
|
||||
var s []int
|
||||
tst.AssertEqual(t, IsNil(s), true)
|
||||
|
||||
var c chan int
|
||||
tst.AssertEqual(t, IsNil(c), true)
|
||||
|
||||
var f func()
|
||||
tst.AssertEqual(t, IsNil(f), true)
|
||||
}
|
||||
|
||||
func TestIsNilFalse(t *testing.T) {
|
||||
v := 5
|
||||
tst.AssertEqual(t, IsNil(&v), false)
|
||||
tst.AssertEqual(t, IsNil(5), false)
|
||||
tst.AssertEqual(t, IsNil("hi"), false)
|
||||
tst.AssertEqual(t, IsNil(map[string]int{}), false)
|
||||
tst.AssertEqual(t, IsNil([]int{}), false)
|
||||
}
|
||||
|
||||
func TestPtrEqualsBothNil(t *testing.T) {
|
||||
tst.AssertEqual(t, PtrEquals[int](nil, nil), true)
|
||||
}
|
||||
|
||||
func TestPtrEqualsBothEqual(t *testing.T) {
|
||||
a := 5
|
||||
b := 5
|
||||
tst.AssertEqual(t, PtrEquals(&a, &b), true)
|
||||
}
|
||||
|
||||
func TestPtrEqualsBothDifferent(t *testing.T) {
|
||||
a := 5
|
||||
b := 6
|
||||
tst.AssertEqual(t, PtrEquals(&a, &b), false)
|
||||
}
|
||||
|
||||
func TestPtrEqualsOneNil(t *testing.T) {
|
||||
a := 5
|
||||
tst.AssertEqual(t, PtrEquals(&a, nil), false)
|
||||
tst.AssertEqual(t, PtrEquals[int](nil, &a), false)
|
||||
}
|
||||
Reference in New Issue
Block a user