Răsfoiți Sursa

Add more unit tests

Daniele Bartolini 10 ani în urmă
părinte
comite
f3c29f06c1
1 a modificat fișierele cu 114 adăugiri și 0 ștergeri
  1. 114 0
      src/core/unit_tests.cpp

+ 114 - 0
src/core/unit_tests.cpp

@@ -97,11 +97,47 @@ static void test_vector2()
 		const f32 c = dot(a, b);
 		const f32 c = dot(a, b);
 		CE_ENSURE(fequal(c,  -4.74f, 0.0001f));
 		CE_ENSURE(fequal(c,  -4.74f, 0.0001f));
 	}
 	}
+	{
+		const Vector2 a = vector2(1.2f,  4.2f);
+		const f32 c = length_squared(a);
+		CE_ENSURE(fequal(c, 19.08f, 0.0001f));
+	}
 	{
 	{
 		const Vector2 a = vector2(1.2f,  4.2f);
 		const Vector2 a = vector2(1.2f,  4.2f);
 		const f32 c = length(a);
 		const f32 c = length(a);
 		CE_ENSURE(fequal(c,  4.36806f, 0.0001f));
 		CE_ENSURE(fequal(c,  4.36806f, 0.0001f));
 	}
 	}
+	{
+		Vector2 a = vector2(1.2f,  4.2f);
+		normalize(a);
+		CE_ENSURE(fequal(length(a), 1.0f, 0.00001f));
+	}
+	{
+		const Vector2 a = vector2(1.2f,  4.2f);
+		const Vector2 b = vector2(2.7f, -1.9f);
+		const float c = distance_squared(a, b);
+		CE_ENSURE(fequal(c, 39.46f, 0.00001f));
+	}
+	{
+		const Vector2 a = vector2(1.2f,  4.2f);
+		const Vector2 b = vector2(2.7f, -1.9f);
+		const float c = distance(a, b);
+		CE_ENSURE(fequal(c, 6.28171f, 0.00001f));
+	}
+	{
+		const Vector2 a = vector2(1.2f,  4.2f);
+		const Vector2 b = vector2(2.7f, -1.9f);
+		const Vector2 c = max(a, b);
+		CE_ENSURE(fequal(c.x,  2.7f, 0.00001f));
+		CE_ENSURE(fequal(c.y,  4.2f, 0.00001f));
+	}
+	{
+		const Vector2 a = vector2(1.2f,  4.2f);
+		const Vector2 b = vector2(2.7f, -1.9f);
+		const Vector2 c = min(a, b);
+		CE_ENSURE(fequal(c.x,  1.2f, 0.00001f));
+		CE_ENSURE(fequal(c.y, -1.9f, 0.00001f));
+	}
 }
 }
 
 
 static void test_vector3()
 static void test_vector3()
@@ -143,11 +179,49 @@ static void test_vector3()
 		CE_ENSURE(fequal(c.y,  -1.29f, 0.0001f));
 		CE_ENSURE(fequal(c.y,  -1.29f, 0.0001f));
 		CE_ENSURE(fequal(c.z, -13.62f, 0.0001f));
 		CE_ENSURE(fequal(c.z, -13.62f, 0.0001f));
 	}
 	}
+	{
+		const Vector3 a = vector3(1.2f,  4.2f, -2.3f);
+		const f32 c = length_squared(a);
+		CE_ENSURE(fequal(c, 24.37f, 0.0001f));
+	}
 	{
 	{
 		const Vector3 a = vector3(1.2f,  4.2f, -2.3f);
 		const Vector3 a = vector3(1.2f,  4.2f, -2.3f);
 		const f32 c = length(a);
 		const f32 c = length(a);
 		CE_ENSURE(fequal(c,  4.93659f, 0.0001f));
 		CE_ENSURE(fequal(c,  4.93659f, 0.0001f));
 	}
 	}
+	{
+		Vector3 a = vector3(1.2f,  4.2f, -2.3f);
+		normalize(a);
+		CE_ENSURE(fequal(length(a), 1.0f, 0.00001f));
+	}
+	{
+		const Vector3 a = vector3(1.2f,  4.2f, -2.3f);
+		const Vector3 b = vector3(2.7f, -1.9f, -4.1f);
+		const float c = distance_squared(a, b);
+		CE_ENSURE(fequal(c, 42.70f, 0.00001f));
+	}
+	{
+		const Vector3 a = vector3(1.2f,  4.2f, -2.3f);
+		const Vector3 b = vector3(2.7f, -1.9f, -4.1f);
+		const float c = distance(a, b);
+		CE_ENSURE(fequal(c, 6.53452f, 0.00001f));
+	}
+	{
+		const Vector3 a = vector3(1.2f,  4.2f, -2.3f);
+		const Vector3 b = vector3(2.7f, -1.9f, -4.1f);
+		const Vector3 c = max(a, b);
+		CE_ENSURE(fequal(c.x,  2.7f, 0.00001f));
+		CE_ENSURE(fequal(c.y,  4.2f, 0.00001f));
+		CE_ENSURE(fequal(c.z, -2.3f, 0.00001f));
+	}
+	{
+		const Vector3 a = vector3(1.2f,  4.2f, -2.3f);
+		const Vector3 b = vector3(2.7f, -1.9f, -4.1f);
+		const Vector3 c = min(a, b);
+		CE_ENSURE(fequal(c.x,  1.2f, 0.00001f));
+		CE_ENSURE(fequal(c.y, -1.9f, 0.00001f));
+		CE_ENSURE(fequal(c.z, -4.1f, 0.00001f));
+	}
 }
 }
 
 
 static void test_vector4()
 static void test_vector4()
@@ -184,11 +258,51 @@ static void test_vector4()
 		const f32 c = dot(a, b);
 		const f32 c = dot(a, b);
 		CE_ENSURE(fequal(c,  10.19f, 0.0001f));
 		CE_ENSURE(fequal(c,  10.19f, 0.0001f));
 	}
 	}
+	{
+		const Vector4 a = vector4(1.2f,  4.2f, -2.3f, 5.5f);
+		const f32 c = length_squared(a);
+		CE_ENSURE(fequal(c, 54.62f, 0.0001f));
+	}
 	{
 	{
 		const Vector4 a = vector4(1.2f,  4.2f, -2.3f, 5.5f);
 		const Vector4 a = vector4(1.2f,  4.2f, -2.3f, 5.5f);
 		const f32 c = length(a);
 		const f32 c = length(a);
 		CE_ENSURE(fequal(c,  7.39053f, 0.0001f));
 		CE_ENSURE(fequal(c,  7.39053f, 0.0001f));
 	}
 	}
+	{
+		Vector4 a = vector4(1.2f,  4.2f, -2.3f, 5.5f);
+		normalize(a);
+		CE_ENSURE(fequal(length(a), 1.0f, 0.00001f));
+	}
+	{
+		const Vector4 a = vector4(1.2f,  4.2f, -2.3f, 5.5f);
+		const Vector4 b = vector4(2.7f, -1.9f, -4.1f, 1.0f);
+		const float c = distance_squared(a, b);
+		CE_ENSURE(fequal(c, 62.95f, 0.00001f));
+	}
+	{
+		const Vector4 a = vector4(1.2f,  4.2f, -2.3f, 5.5f);
+		const Vector4 b = vector4(2.7f, -1.9f, -4.1f, 1.0f);
+		const float c = distance(a, b);
+		CE_ENSURE(fequal(c, 7.93410f, 0.00001f));
+	}
+	{
+		const Vector4 a = vector4(1.2f,  4.2f, -2.3f, 5.5f);
+		const Vector4 b = vector4(2.7f, -1.9f, -4.1f, 1.0f);
+		const Vector4 c = max(a, b);
+		CE_ENSURE(fequal(c.x,  2.7f, 0.00001f));
+		CE_ENSURE(fequal(c.y,  4.2f, 0.00001f));
+		CE_ENSURE(fequal(c.z, -2.3f, 0.00001f));
+		CE_ENSURE(fequal(c.w,  5.5f, 0.00001f));
+	}
+	{
+		const Vector4 a = vector4(1.2f,  4.2f, -2.3f, 5.5f);
+		const Vector4 b = vector4(2.7f, -1.9f, -4.1f, 1.0f);
+		const Vector4 c = min(a, b);
+		CE_ENSURE(fequal(c.x,  1.2f, 0.00001f));
+		CE_ENSURE(fequal(c.y, -1.9f, 0.00001f));
+		CE_ENSURE(fequal(c.z, -4.1f, 0.00001f));
+		CE_ENSURE(fequal(c.w,  1.0f, 0.00001f));
+	}
 }
 }
 
 
 static void test_murmur()
 static void test_murmur()