Parcourir la source

Add unit tests for unruly functions on release builds of web (#278)

* add unit tests for unruly inputs to sqrt

* add unit tests for unruly inputs to sin/cos on release web
nathanstouffer il y a 3 ans
Parent
commit
1f5b2117e5
1 fichiers modifiés avec 21 ajouts et 0 suppressions
  1. 21 0
      tests/math_test.cpp

+ 21 - 0
tests/math_test.cpp

@@ -107,6 +107,13 @@ TEST_CASE("libm", "")
 		REQUIRE(bx::isEqual(bx::rsqrt(xx), 1.0f/::sqrtf(xx), 0.00001f) );
 		REQUIRE(bx::isEqual(bx::rsqrt(xx), 1.0f/::sqrtf(xx), 0.00001f) );
 	}
 	}
 
 
+	for (float xx = 0.0f; xx < 1000000.0f; xx += 1000.f)
+	{
+		bx::write(writer, &err, "sqrt(%f) == %f (expected: %f)\n", xx, bx::sqrt(xx), ::sqrtf(xx) );
+		REQUIRE(err.isOk() );
+		REQUIRE(bx::isEqual(bx::sqrt(xx), ::sqrtf(xx), 0.00001f) );
+	}
+
 	for (float xx = 0.0f; xx < 100.0f; xx += 0.1f)
 	for (float xx = 0.0f; xx < 100.0f; xx += 0.1f)
 	{
 	{
 		bx::write(writer, &err, "sqrt(%f) == %f (expected: %f)\n", xx, bx::sqrt(xx), ::sqrtf(xx) );
 		bx::write(writer, &err, "sqrt(%f) == %f (expected: %f)\n", xx, bx::sqrt(xx), ::sqrtf(xx) );
@@ -135,6 +142,13 @@ TEST_CASE("libm", "")
 		REQUIRE(bx::isEqual(bx::sin(xx), ::sinf(xx), 0.00001f) );
 		REQUIRE(bx::isEqual(bx::sin(xx), ::sinf(xx), 0.00001f) );
 	}
 	}
 
 
+	for (float xx = -bx::kPi2; xx < bx::kPi2; xx += 0.0001f)
+	{
+		bx::write(writer, &err, "sin(%f) == %f (expected: %f)\n", xx, bx::sin(xx), ::sinf(xx) );
+		REQUIRE(err.isOk() );
+		REQUIRE(bx::isEqual(bx::sin(xx), ::sinf(xx), 0.00001f) );
+	}
+
 	for (float xx = -1.0f; xx < 1.0f; xx += 0.1f)
 	for (float xx = -1.0f; xx < 1.0f; xx += 0.1f)
 	{
 	{
 		bx::write(writer, &err, "sinh(%f) == %f (expected: %f)\n", xx, bx::sinh(xx), ::sinhf(xx) );
 		bx::write(writer, &err, "sinh(%f) == %f (expected: %f)\n", xx, bx::sinh(xx), ::sinhf(xx) );
@@ -156,6 +170,13 @@ TEST_CASE("libm", "")
 		REQUIRE(bx::isEqual(bx::cos(xx), ::cosf(xx), 0.00001f) );
 		REQUIRE(bx::isEqual(bx::cos(xx), ::cosf(xx), 0.00001f) );
 	}
 	}
 
 
+	for (float xx = -bx::kPi2; xx < bx::kPi2; xx += 0.0001f)
+	{
+		bx::write(writer, &err, "cos(%f) == %f (expected: %f)\n", xx, bx::cos(xx), ::cosf(xx) );
+		REQUIRE(err.isOk() );
+		REQUIRE(bx::isEqual(bx::cos(xx), ::cosf(xx), 0.00001f) );
+	}
+
 	for (float xx = -100.0f; xx < 100.0f; xx += 0.1f)
 	for (float xx = -100.0f; xx < 100.0f; xx += 0.1f)
 	{
 	{
 		bx::write(writer, &err, "tan(%f) == %f (expected: %f)\n", xx, bx::tan(xx), ::tanf(xx) );
 		bx::write(writer, &err, "tan(%f) == %f (expected: %f)\n", xx, bx::tan(xx), ::tanf(xx) );