123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- package dmmo
- import (
- "testing"
- )
- func TestNewVec2(t *testing.T) {
- v := NewVec2()
- if v == nil {
- t.Errorf("Expected non-nil, got %#v", v)
- }
- if v.X != 0 || v.Y != 0 {
- t.Errorf("Expected *Vec2{X: 0, Y: 0}, got %#v", v)
- }
- v = NewVec2(1)
- if v.X != 1 || v.Y != 1 {
- t.Errorf("Expected *Vec2{X: 1, Y: 1}, got %#v", v)
- }
- v = NewVec2(1, 2)
- if v.X != 1 || v.Y != 2 {
- t.Errorf("Expected *Vec2{X: 1, Y: 2}, got %#v", v)
- }
- }
- func TestVecClone(t *testing.T) {
- v := NewVec2(1, 2)
- v2 := v.Clone()
- if v == nil || v.X != 1 || v.Y != 2 {
- t.Errorf("v should be (1, 2), got %#v", v)
- }
- if v2 == nil || v2.X != 1 || v2.Y != 2 {
- t.Errorf("v2 should be (1, 2), got %#v", v2)
- }
- var v3 *Vec2 = nil
- if v3.Clone() != nil {
- t.Errorf("v3 should be nil, got %#v", v3)
- }
- }
- func TestVecAbs(t *testing.T) {
- v := NewVec2(-1, -2)
- v2 := v.Clone().Abs()
- if v == nil || v.X != -1 || v.Y != -2 {
- t.Errorf("v should be (-1, -2), got %#v", v)
- }
- if v2 == nil || v2.X != 1 || v2.Y != 2 {
- t.Errorf("v2 should be (1, 2), got %#v", v2)
- }
- var v3 *Vec2 = nil
- if v3.Abs() != nil {
- t.Errorf("v3 should be nil, got %#v", v3)
- }
- }
- func TestVecNegate(t *testing.T) {
- v := NewVec2(-1, 1)
- v2 := v.Clone().Negate()
- if v == nil || v.X != -1 || v.Y != 1 {
- t.Errorf("v should be (-1, 1), got %#v", v)
- }
- if v2 == nil || v2.X != 1 || v2.Y != -1 {
- t.Errorf("v2 should be (1, -1), got %#v", v)
- }
- var v3 *Vec2 = nil
- if v3.Negate() != nil {
- t.Errorf("v3 should be nil, got %#v", v3)
- }
- }
- func TestVecSet(t *testing.T) {
- v := NewVec2(1)
- if v == nil || v.X != 1 || v.Y != 1 {
- t.Errorf("v should be (1, 1), got %#v", v)
- }
- v.Set()
- if v == nil || v.X != 0 || v.Y != 0 {
- t.Errorf("v should be (0, 0), got %#v", v)
- }
- v.Set(2)
- if v == nil || v.X != 2 || v.Y != 2 {
- t.Errorf("v should be (2, 2), got %#v", v)
- }
- v.Set(3, 4)
- if v == nil || v.X != 3 || v.Y != 4 {
- t.Errorf("v should be (3, 4), got %#v", v)
- }
- v2 := NewVec2(5, 6)
- v.SetBy(v2)
- if v == nil || v.X != 5 || v.Y != 6 {
- t.Errorf("v should be (5, 6), got %#v", v)
- }
- v.SetBy(nil)
- if v == nil || v.X != 0 || v.Y != 0 {
- t.Errorf("v should be (0, 0), got %#v", v)
- }
- v = nil
- if v.Set(1, 2) != nil {
- t.Errorf("v should be nil, got %#v", v)
- }
- if v.SetBy(v2) != nil {
- t.Errorf("v should be nil, got %#v", v)
- }
- }
- func TestVecAdd(t *testing.T) {
- v := NewVec2(1, 2)
- v2 := NewVec2(1)
- var v3 *Vec2 = nil
- a := v.Clone().Add()
- if a == nil || a.X != 1 || a.Y != 2 {
- t.Errorf("a should be (1, 2), got %#v", a)
- }
- a.Add(1)
- if a == nil || a.X != 2 || a.Y != 3 {
- t.Errorf("a should be (2, 3), got %#v", a)
- }
- a.Add(-1, -2)
- if a == nil || a.X != 1 || a.Y != 1 {
- t.Errorf("a should be (1, 1), got %#v", a)
- }
- a = v3.Clone()
- if a.Add(1) != nil {
- t.Errorf("a should be nil, got %#v", a)
- }
- a = v.Clone().AddBy(nil)
- if a == nil || a.X != 1 || a.Y != 2 {
- t.Errorf("a should be (1, 2), got %#v", a)
- }
- a.AddBy(v2)
- if a == nil || a.X != 2 || a.Y != 3 {
- t.Errorf("a should be (2, 3), got %#v", a)
- }
- a.AddBy(v3)
- if a == nil || a.X != 2 || a.Y != 3 {
- t.Errorf("a should be (2, 3), got %#v", a)
- }
- if v3.AddBy(v) != nil {
- t.Errorf("v3 should be nil, got %#v", v3)
- }
- }
- func TestVecEq(t *testing.T) {
- v := NewVec2(1, 2)
- var v2 *Vec2 = nil
- v3 := NewVec2(3)
- if v.Eq() {
- t.Errorf("v isn't equal to (0, 0), it's %#v", v)
- }
- if v.Eq(1) {
- t.Errorf("v isn't equal to (1, 1), it's %#v", v)
- }
- if !v.Eq(1, 2) {
- t.Errorf("v is equal to (1, 2), it's %#v", v)
- }
- if !v2.Eq(3) {
- t.Errorf("v2 is nil but we have an argument so true (v2=%#v)", v2)
- }
- if v.EqTo(v3) {
- t.Errorf("v isn't equal to %#v, it's %#v", v3, v)
- }
- if v.EqTo(nil) {
- t.Errorf("v isn't equal to (0, 0), it's %#v", v)
- }
- if v2.EqTo(v) {
- t.Errorf("v is not nil so v2 should return true (v=%#v, v2=%#v)", v, v2)
- }
- }
|