From 237943431d2f7370fcaefed50f80e61d6aace643 Mon Sep 17 00:00:00 2001 From: Joel Wetzell Date: Fri, 28 Aug 2026 10:01:32 -0500 Subject: [PATCH] add some basic tracker tests --- tracker_test.go | 205 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 tracker_test.go diff --git a/tracker_test.go b/tracker_test.go new file mode 100644 index 0000000..4ef0104 --- /dev/null +++ b/tracker_test.go @@ -0,0 +1,205 @@ +package psn_test + +import ( + "testing" + + "github.com/jwetzell/psn-go" +) + +func TestTrackerSetPosNilPos(t *testing.T) { + tracker := &psn.Tracker{} + tracker.SetPos(1.0, 2.0, 3.0) + + if tracker.Pos == nil { + t.Errorf("Expected Pos to be initialized, but it is nil") + } else { + if tracker.Pos.X != 1.0 || tracker.Pos.Y != 2.0 || tracker.Pos.Z != 3.0 { + t.Errorf("Expected Pos to be (1.0, 2.0, 3.0), but got (%f, %f, %f)", tracker.Pos.X, tracker.Pos.Y, tracker.Pos.Z) + } + } +} + +func TestTrackerSetPosNonNilPos(t *testing.T) { + tracker := &psn.Tracker{ + Pos: &psn.XYZData{X: 0.0, Y: 0.0, Z: 0.0}, + } + tracker.SetPos(4.0, 5.0, 6.0) + + if tracker.Pos == nil { + t.Errorf("Expected Pos to be initialized, but it is nil") + } else { + if tracker.Pos.X != 4.0 || tracker.Pos.Y != 5.0 || tracker.Pos.Z != 6.0 { + t.Errorf("Expected Pos to be (4.0, 5.0, 6.0), but got (%f, %f, %f)", tracker.Pos.X, tracker.Pos.Y, tracker.Pos.Z) + } + } +} + +func TestTrackerSetSpeedNilSpeed(t *testing.T) { + tracker := &psn.Tracker{} + tracker.SetSpeed(1.0, 2.0, 3.0) + + if tracker.Speed == nil { + t.Errorf("Expected Speed to be initialized, but it is nil") + } else { + if tracker.Speed.X != 1.0 || tracker.Speed.Y != 2.0 || tracker.Speed.Z != 3.0 { + t.Errorf("Expected Speed to be (1.0, 2.0, 3.0), but got (%f, %f, %f)", tracker.Speed.X, tracker.Speed.Y, tracker.Speed.Z) + } + } +} + +func TestTrackerSetSpeedNonNilSpeed(t *testing.T) { + tracker := &psn.Tracker{ + Speed: &psn.XYZData{X: 0.0, Y: 0.0, Z: 0.0}, + } + tracker.SetSpeed(4.0, 5.0, 6.0) + + if tracker.Speed == nil { + t.Errorf("Expected Speed to be initialized, but it is nil") + } else { + if tracker.Speed.X != 4.0 || tracker.Speed.Y != 5.0 || tracker.Speed.Z != 6.0 { + t.Errorf("Expected Speed to be (4.0, 5.0, 6.0), but got (%f, %f, %f)", tracker.Speed.X, tracker.Speed.Y, tracker.Speed.Z) + } + } +} + +func TestTrackerSetOriNilOri(t *testing.T) { + tracker := &psn.Tracker{} + tracker.SetOri(1.0, 2.0, 3.0) + + if tracker.Ori == nil { + t.Errorf("Expected Ori to be initialized, but it is nil") + } else { + if tracker.Ori.X != 1.0 || tracker.Ori.Y != 2.0 || tracker.Ori.Z != 3.0 { + t.Errorf("Expected Ori to be (1.0, 2.0, 3.0), but got (%f, %f, %f)", tracker.Ori.X, tracker.Ori.Y, tracker.Ori.Z) + } + } +} + +func TestTrackerSetOriNonNilOri(t *testing.T) { + tracker := &psn.Tracker{ + Ori: &psn.XYZData{X: 0.0, Y: 0.0, Z: 0.0}, + } + tracker.SetOri(4.0, 5.0, 6.0) + + if tracker.Ori == nil { + t.Errorf("Expected Ori to be initialized, but it is nil") + } else { + if tracker.Ori.X != 4.0 || tracker.Ori.Y != 5.0 || tracker.Ori.Z != 6.0 { + t.Errorf("Expected Ori to be (4.0, 5.0, 6.0), but got (%f, %f, %f)", tracker.Ori.X, tracker.Ori.Y, tracker.Ori.Z) + } + } +} + +func TestTrackerSetStatusNilStatus(t *testing.T) { + tracker := &psn.Tracker{} + tracker.SetStatus(0.75) + + if tracker.Validity == nil { + t.Errorf("Expected Validity to be initialized, but it is nil") + } else { + if *tracker.Validity != 0.75 { + t.Errorf("Expected Validity to be 0.75, but got %f", *tracker.Validity) + } + } +} + +func TestTrackerSetStatusNonNilStatus(t *testing.T) { + tracker := &psn.Tracker{ + Validity: new(float32), + } + *tracker.Validity = 0.5 + tracker.SetStatus(0.85) + + if tracker.Validity == nil { + t.Errorf("Expected Validity to be initialized, but it is nil") + } else { + if *tracker.Validity != 0.85 { + t.Errorf("Expected Validity to be 0.85, but got %f", *tracker.Validity) + } + } +} + +func TestTrackerSetAccelNilAccel(t *testing.T) { + tracker := &psn.Tracker{} + tracker.SetAccel(1.0, 2.0, 3.0) + + if tracker.Accel == nil { + t.Errorf("Expected Accel to be initialized, but it is nil") + } else { + if tracker.Accel.X != 1.0 || tracker.Accel.Y != 2.0 || tracker.Accel.Z != 3.0 { + t.Errorf("Expected Accel to be (1.0, 2.0, 3.0), but got (%f, %f, %f)", tracker.Accel.X, tracker.Accel.Y, tracker.Accel.Z) + } + } +} + +func TestTrackerSetAccelNonNilAccel(t *testing.T) { + tracker := &psn.Tracker{ + Accel: &psn.XYZData{X: 0.0, Y: 0.0, Z: 0.0}, + } + tracker.SetAccel(4.0, 5.0, 6.0) + + if tracker.Accel == nil { + t.Errorf("Expected Accel to be initialized, but it is nil") + } else { + if tracker.Accel.X != 4.0 || tracker.Accel.Y != 5.0 || tracker.Accel.Z != 6.0 { + t.Errorf("Expected Accel to be (4.0, 5.0, 6.0), but got (%f, %f, %f)", tracker.Accel.X, tracker.Accel.Y, tracker.Accel.Z) + } + } +} + +func TestTrackerSetTrgtPosNilTrgtPos(t *testing.T) { + tracker := &psn.Tracker{} + tracker.SetTrgtPos(1.0, 2.0, 3.0) + + if tracker.TrgtPos == nil { + t.Errorf("Expected TrgtPos to be initialized, but it is nil") + } else { + if tracker.TrgtPos.X != 1.0 || tracker.TrgtPos.Y != 2.0 || tracker.TrgtPos.Z != 3.0 { + t.Errorf("Expected TrgtPos to be (1.0, 2.0, 3.0), but got (%f, %f, %f)", tracker.TrgtPos.X, tracker.TrgtPos.Y, tracker.TrgtPos.Z) + } + } +} + +func TestTrackerSetTrgtPosNonNilTrgtPos(t *testing.T) { + tracker := &psn.Tracker{ + TrgtPos: &psn.XYZData{X: 0.0, Y: 0.0, Z: 0.0}, + } + tracker.SetTrgtPos(4.0, 5.0, 6.0) + + if tracker.TrgtPos == nil { + t.Errorf("Expected TrgtPos to be initialized, but it is nil") + } else { + if tracker.TrgtPos.X != 4.0 || tracker.TrgtPos.Y != 5.0 || tracker.TrgtPos.Z != 6.0 { + t.Errorf("Expected TrgtPos to be (4.0, 5.0, 6.0), but got (%f, %f, %f)", tracker.TrgtPos.X, tracker.TrgtPos.Y, tracker.TrgtPos.Z) + } + } +} + +func TestTrackerSetTimestampNilTimestamp(t *testing.T) { + tracker := &psn.Tracker{} + tracker.SetTimestamp(1) + + if tracker.Timestamp == nil { + t.Errorf("Expected Timestamp to be initialized, but it is nil") + } else { + if *tracker.Timestamp != 1 { + t.Errorf("Expected Timestamp to be 1, but got %d", *tracker.Timestamp) + } + } +} + +func TestTrackerSetTimestampNonNilTimestamp(t *testing.T) { + tracker := &psn.Tracker{ + Timestamp: new(uint64), + } + *tracker.Timestamp = 5 + tracker.SetTimestamp(8) + + if tracker.Timestamp == nil { + t.Errorf("Expected Timestamp to be initialized, but it is nil") + } else { + if *tracker.Timestamp != 8 { + t.Errorf("Expected Timestamp to be 8, but got %d", *tracker.Timestamp) + } + } +}