From 4543e5c86d19e308fffbd7d994b6304cd54aa1c1 Mon Sep 17 00:00:00 2001 From: BlackMATov Date: Mon, 7 Dec 2020 17:27:56 +0700 Subject: [PATCH] rename unit test approx classes --- untests/vmath_ext_tests.cpp | 90 +++++++++++++-------------- untests/vmath_fun_tests.cpp | 104 ++++++++++++++++---------------- untests/vmath_mat_fun_tests.cpp | 10 +-- untests/vmath_tests.hpp | 54 ++++++++--------- untests/vmath_vec_fun_tests.cpp | 70 ++++++++++----------- 5 files changed, 164 insertions(+), 164 deletions(-) diff --git a/untests/vmath_ext_tests.cpp b/untests/vmath_ext_tests.cpp index c47d810..2fb0071 100644 --- a/untests/vmath_ext_tests.cpp +++ b/untests/vmath_ext_tests.cpp @@ -120,11 +120,11 @@ TEST_CASE("vmath/ext") { } SUBCASE("matrix translate") { - STATIC_REQUIRE(float3(2.f,3.f,1.f) * translate(float2{1.f,2.f}) == approx3(3.f,5.f,1.f)); - STATIC_REQUIRE(float3(2.f,3.f,1.f) * translate(translate(float2{1.f,2.f}), float2{1.f,2.f}) == approx3(4.f,7.f,1.f)); + STATIC_REQUIRE(float3(2.f,3.f,1.f) * translate(float2{1.f,2.f}) == uapprox3(3.f,5.f,1.f)); + STATIC_REQUIRE(float3(2.f,3.f,1.f) * translate(translate(float2{1.f,2.f}), float2{1.f,2.f}) == uapprox3(4.f,7.f,1.f)); - STATIC_REQUIRE(float4(2.f,3.f,4.f,1.f) * translate(float3{1.f,2.f,3.f}) == approx4(3.f,5.f,7.f,1.f)); - STATIC_REQUIRE(float4(2.f,3.f,4.f,1.f) * translate(translate(float3{1.f,2.f,3.f}), float3{1.f,2.f,3.f}) == approx4(4.f,7.f,10.f,1.f)); + STATIC_REQUIRE(float4(2.f,3.f,4.f,1.f) * translate(float3{1.f,2.f,3.f}) == uapprox4(3.f,5.f,7.f,1.f)); + STATIC_REQUIRE(float4(2.f,3.f,4.f,1.f) * translate(translate(float3{1.f,2.f,3.f}), float3{1.f,2.f,3.f}) == uapprox4(4.f,7.f,10.f,1.f)); } SUBCASE("matrix rotate") { @@ -132,47 +132,47 @@ TEST_CASE("vmath/ext") { constexpr float pi_2 = radians(90.f); constexpr float pi_4 = radians(45.f); - REQUIRE(float4(0.f,1.f,0.f,1.f) * rotate_x(pi_2) == approx4(0.f,0.f,1.f,1.f)); - REQUIRE(float4(0.f,0.f,1.f,1.f) * rotate_y(pi_2) == approx4(1.f,0.f,0.f,1.f)); - REQUIRE(float4(1.f,0.f,0.f,1.f) * rotate_z(pi_2) == approx4(0.f,1.f,0.f,1.f)); + REQUIRE(float4(0.f,1.f,0.f,1.f) * rotate_x(pi_2) == uapprox4(0.f,0.f,1.f,1.f)); + REQUIRE(float4(0.f,0.f,1.f,1.f) * rotate_y(pi_2) == uapprox4(1.f,0.f,0.f,1.f)); + REQUIRE(float4(1.f,0.f,0.f,1.f) * rotate_z(pi_2) == uapprox4(0.f,1.f,0.f,1.f)); - REQUIRE(float4(0.f,1.f,0.f,1.f) * rotate_x(rotate_x(pi_4),pi_4) == approx4(0.f,0.f,1.f,1.f)); - REQUIRE(float4(0.f,0.f,1.f,1.f) * rotate_y(rotate_y(pi_4),pi_4) == approx4(1.f,0.f,0.f,1.f)); - REQUIRE(float4(1.f,0.f,0.f,1.f) * rotate_z(rotate_z(pi_4),pi_4) == approx4(0.f,1.f,0.f,1.f)); + REQUIRE(float4(0.f,1.f,0.f,1.f) * rotate_x(rotate_x(pi_4),pi_4) == uapprox4(0.f,0.f,1.f,1.f)); + REQUIRE(float4(0.f,0.f,1.f,1.f) * rotate_y(rotate_y(pi_4),pi_4) == uapprox4(1.f,0.f,0.f,1.f)); + REQUIRE(float4(1.f,0.f,0.f,1.f) * rotate_z(rotate_z(pi_4),pi_4) == uapprox4(0.f,1.f,0.f,1.f)); - REQUIRE(float3(2.f,3.f,1.f) * rotate(pi) == approx3(-2.f,-3.f,1.f)); - REQUIRE(float4(2.f,3.f,4.f,1.f) * rotate(pi,{0.f,0.f,1.f}) == approx4(-2.f,-3.f,4.f,1.f)); - REQUIRE(float4(2.f,3.f,4.f,1.f) * rotate(pi,float3{0.f,0.f,1.f}) == approx4(-2.f,-3.f,4.f,1.f)); + REQUIRE(float3(2.f,3.f,1.f) * rotate(pi) == uapprox3(-2.f,-3.f,1.f)); + REQUIRE(float4(2.f,3.f,4.f,1.f) * rotate(pi,{0.f,0.f,1.f}) == uapprox4(-2.f,-3.f,4.f,1.f)); + REQUIRE(float4(2.f,3.f,4.f,1.f) * rotate(pi,float3{0.f,0.f,1.f}) == uapprox4(-2.f,-3.f,4.f,1.f)); - REQUIRE(float3(2.f,3.f,1.f) * rotate(rotate(pi_2),pi_2) == approx3(-2.f,-3.f,1.f)); - REQUIRE(float4(2.f,3.f,4.f,1.f) * rotate(rotate(pi_2,{0.f,0.f,1.f}),pi_2,{0.f,0.f,1.f}) == approx4(-2.f,-3.f,4.f,1.f)); - REQUIRE(float4(2.f,3.f,4.f,1.f) * rotate(rotate(pi_2,float3{0.f,0.f,1.f}),pi_2,float3{0.f,0.f,1.f}) == approx4(-2.f,-3.f,4.f,1.f)); + REQUIRE(float3(2.f,3.f,1.f) * rotate(rotate(pi_2),pi_2) == uapprox3(-2.f,-3.f,1.f)); + REQUIRE(float4(2.f,3.f,4.f,1.f) * rotate(rotate(pi_2,{0.f,0.f,1.f}),pi_2,{0.f,0.f,1.f}) == uapprox4(-2.f,-3.f,4.f,1.f)); + REQUIRE(float4(2.f,3.f,4.f,1.f) * rotate(rotate(pi_2,float3{0.f,0.f,1.f}),pi_2,float3{0.f,0.f,1.f}) == uapprox4(-2.f,-3.f,4.f,1.f)); } SUBCASE("matrix scale") { - STATIC_REQUIRE(float3(2.f,3.f,1.f) * scale(float2{2.f,3.f}) == approx3(4.f,9.f,1.f)); - STATIC_REQUIRE(float4(2.f,3.f,4.f,1.f) * scale(float3{2.f,3.f,4.f}) == approx4(4.f,9.f,16.f,1.f)); - STATIC_REQUIRE(float4(2.f,3.f,4.f,1.f) * scale(float3{2.f,3.f,4.f}) == approx4(4.f,9.f,16.f,1.f)); + STATIC_REQUIRE(float3(2.f,3.f,1.f) * scale(float2{2.f,3.f}) == uapprox3(4.f,9.f,1.f)); + STATIC_REQUIRE(float4(2.f,3.f,4.f,1.f) * scale(float3{2.f,3.f,4.f}) == uapprox4(4.f,9.f,16.f,1.f)); + STATIC_REQUIRE(float4(2.f,3.f,4.f,1.f) * scale(float3{2.f,3.f,4.f}) == uapprox4(4.f,9.f,16.f,1.f)); - STATIC_REQUIRE(float3(2.f,3.f,1.f) * scale(scale(float2{2.f,2.f}), {2.f,3.f}) == approx3(8.f,18.f,1.f)); - STATIC_REQUIRE(float4(2.f,3.f,4.f,1.f) * scale(scale(float3{2.f,2.f,2.f}), {2.f,3.f,4.f}) == approx4(8.f,18.f,32.f,1.f)); - STATIC_REQUIRE(float4(2.f,3.f,4.f,1.f) * scale(scale(float3{2.f,2.f,2.f}), float3{2.f,3.f,4.f}) == approx4(8.f,18.f,32.f,1.f)); + STATIC_REQUIRE(float3(2.f,3.f,1.f) * scale(scale(float2{2.f,2.f}), {2.f,3.f}) == uapprox3(8.f,18.f,1.f)); + STATIC_REQUIRE(float4(2.f,3.f,4.f,1.f) * scale(scale(float3{2.f,2.f,2.f}), {2.f,3.f,4.f}) == uapprox4(8.f,18.f,32.f,1.f)); + STATIC_REQUIRE(float4(2.f,3.f,4.f,1.f) * scale(scale(float3{2.f,2.f,2.f}), float3{2.f,3.f,4.f}) == uapprox4(8.f,18.f,32.f,1.f)); } SUBCASE("matrix shear") { - STATIC_REQUIRE(float3(2.f,3.f,1.f) * shear_x(0.f) == approx3(2.f,3.f,1.f)); - STATIC_REQUIRE(float3(2.f,3.f,1.f) * shear_x(1.f) == approx3(5.f,3.f,1.f)); - STATIC_REQUIRE(float3(2.f,3.f,1.f) * shear_x(shear_x(1.f),1.f) == approx3(8.f,3.f,1.f)); + STATIC_REQUIRE(float3(2.f,3.f,1.f) * shear_x(0.f) == uapprox3(2.f,3.f,1.f)); + STATIC_REQUIRE(float3(2.f,3.f,1.f) * shear_x(1.f) == uapprox3(5.f,3.f,1.f)); + STATIC_REQUIRE(float3(2.f,3.f,1.f) * shear_x(shear_x(1.f),1.f) == uapprox3(8.f,3.f,1.f)); - STATIC_REQUIRE(float3(2.f,3.f,1.f) * shear_y(0.f) == approx3(2.f,3.f,1.f)); - STATIC_REQUIRE(float3(2.f,3.f,1.f) * shear_y(1.f) == approx3(2.f,5.f,1.f)); - STATIC_REQUIRE(float3(2.f,3.f,1.f) * shear_y(shear_y(1.f),1.f) == approx3(2.f,7.f,1.f)); + STATIC_REQUIRE(float3(2.f,3.f,1.f) * shear_y(0.f) == uapprox3(2.f,3.f,1.f)); + STATIC_REQUIRE(float3(2.f,3.f,1.f) * shear_y(1.f) == uapprox3(2.f,5.f,1.f)); + STATIC_REQUIRE(float3(2.f,3.f,1.f) * shear_y(shear_y(1.f),1.f) == uapprox3(2.f,7.f,1.f)); - STATIC_REQUIRE(float3(2.f,3.f,1.f) * shear(float2(0.f,0.f)) == approx3(2.f,3.f,1.f)); - STATIC_REQUIRE(float3(2.f,3.f,1.f) * shear(float2(1.f,0.f)) == approx3(5.f,3.f,1.f)); - STATIC_REQUIRE(float3(2.f,3.f,1.f) * shear(float2(0.f,1.f)) == approx3(2.f,5.f,1.f)); - STATIC_REQUIRE(float3(2.f,3.f,1.f) * shear(shear(float2(1.f,0.f)),float2(1.f,0.f)) == approx3(8.f,3.f,1.f)); - STATIC_REQUIRE(float3(2.f,3.f,1.f) * shear(shear(float2(0.f,1.f)),float2(0.f,1.f)) == approx3(2.f,7.f,1.f)); + STATIC_REQUIRE(float3(2.f,3.f,1.f) * shear(float2(0.f,0.f)) == uapprox3(2.f,3.f,1.f)); + STATIC_REQUIRE(float3(2.f,3.f,1.f) * shear(float2(1.f,0.f)) == uapprox3(5.f,3.f,1.f)); + STATIC_REQUIRE(float3(2.f,3.f,1.f) * shear(float2(0.f,1.f)) == uapprox3(2.f,5.f,1.f)); + STATIC_REQUIRE(float3(2.f,3.f,1.f) * shear(shear(float2(1.f,0.f)),float2(1.f,0.f)) == uapprox3(8.f,3.f,1.f)); + STATIC_REQUIRE(float3(2.f,3.f,1.f) * shear(shear(float2(0.f,1.f)),float2(0.f,1.f)) == uapprox3(2.f,7.f,1.f)); } SUBCASE("matrix look_at") { @@ -191,24 +191,24 @@ TEST_CASE("vmath/ext") { } SUBCASE("vector angle") { - REQUIRE(angle(float2(2.f,0.f), float2(0.f,1.f)) == approx(radians(90.f))); - REQUIRE(angle(float2(0.f,3.f), float2(1.f,0.f)) == approx(radians(90.f))); - REQUIRE(angle(float2(0.5f,0.f), float2(-1.f,0.f)) == approx(radians(180.f))); - REQUIRE(angle(float2(-0.2f,0.f), float2(1.f,0.f)) == approx(radians(180.f))); - REQUIRE(angle(float3(0.f,2.f,0.f), float3(0.f,0.f,1.f)) == approx(radians(90.f))); - REQUIRE(angle(float3(0.f,0.f,3.f), float3(0.f,1.f,0.f)) == approx(radians(90.f))); + REQUIRE(angle(float2(2.f,0.f), float2(0.f,1.f)) == uapprox(radians(90.f))); + REQUIRE(angle(float2(0.f,3.f), float2(1.f,0.f)) == uapprox(radians(90.f))); + REQUIRE(angle(float2(0.5f,0.f), float2(-1.f,0.f)) == uapprox(radians(180.f))); + REQUIRE(angle(float2(-0.2f,0.f), float2(1.f,0.f)) == uapprox(radians(180.f))); + REQUIRE(angle(float3(0.f,2.f,0.f), float3(0.f,0.f,1.f)) == uapprox(radians(90.f))); + REQUIRE(angle(float3(0.f,0.f,3.f), float3(0.f,1.f,0.f)) == uapprox(radians(90.f))); } SUBCASE("vector rotate") { - REQUIRE(rotate(float2(2.f,0.f), radians(90.f)) == approx2(0.f,2.f)); - REQUIRE(rotate(float2(1.5f,0.f), radians(-90.f)) == approx2(0.f,-1.5f)); + REQUIRE(rotate(float2(2.f,0.f), radians(90.f)) == uapprox2(0.f,2.f)); + REQUIRE(rotate(float2(1.5f,0.f), radians(-90.f)) == uapprox2(0.f,-1.5f)); - REQUIRE(rotate(float3(1.5f,0.f,0.f), radians(90.f), float3(0,0,1)) == approx3(0.f,1.5f,0.f)); - REQUIRE(rotate(float4(1.5f,0.f,0.f,1.f), radians(90.f), float3(0,0,1)) == approx4(0.f,1.5f,0.f,1.f)); + REQUIRE(rotate(float3(1.5f,0.f,0.f), radians(90.f), float3(0,0,1)) == uapprox3(0.f,1.5f,0.f)); + REQUIRE(rotate(float4(1.5f,0.f,0.f,1.f), radians(90.f), float3(0,0,1)) == uapprox4(0.f,1.5f,0.f,1.f)); } SUBCASE("vector project") { - REQUIRE(project(float2(2.f, 2.f), float2(0.f, 1.f)) == approx2(0.f, 2.f)); - REQUIRE(project(float3(2.f, 2.f, 2.f), float3(0.f, 0.f, 1.f)) == approx3(0.f, 0.f, 2.f)); + REQUIRE(project(float2(2.f, 2.f), float2(0.f, 1.f)) == uapprox2(0.f, 2.f)); + REQUIRE(project(float3(2.f, 2.f, 2.f), float3(0.f, 0.f, 1.f)) == uapprox3(0.f, 0.f, 2.f)); } } diff --git a/untests/vmath_fun_tests.cpp b/untests/vmath_fun_tests.cpp index 995be87..b52ffd3 100644 --- a/untests/vmath_fun_tests.cpp +++ b/untests/vmath_fun_tests.cpp @@ -15,8 +15,8 @@ namespace TEST_CASE("vmath/fun") { SUBCASE("Angle and Trigonometry Functions") { - STATIC_REQUIRE(radians(degrees(12.13f)) == approx(12.13f)); - STATIC_REQUIRE(degrees(radians(12.13f)) == approx(12.13f)); + STATIC_REQUIRE(radians(degrees(12.13f)) == uapprox(12.13f)); + STATIC_REQUIRE(degrees(radians(12.13f)) == uapprox(12.13f)); (void)sin(0.f); (void)cos(0.f); @@ -38,8 +38,8 @@ TEST_CASE("vmath/fun") { { float out_s{}, out_c{}; sincos(15.f, &out_s, &out_c); - REQUIRE(out_s == approx(sin(15.f))); - REQUIRE(out_c == approx(cos(15.f))); + REQUIRE(out_s == uapprox(sin(15.f))); + REQUIRE(out_c == uapprox(cos(15.f))); } } @@ -56,90 +56,90 @@ TEST_CASE("vmath/fun") { SUBCASE("Common Functions") { STATIC_REQUIRE(vmath_hpp::abs(1) == 1); STATIC_REQUIRE(vmath_hpp::abs(-1) == 1); - STATIC_REQUIRE(vmath_hpp::abs(1.f) == approx(1.f)); - STATIC_REQUIRE(vmath_hpp::abs(-1.f) == approx(1.f)); + STATIC_REQUIRE(vmath_hpp::abs(1.f) == uapprox(1.f)); + STATIC_REQUIRE(vmath_hpp::abs(-1.f) == uapprox(1.f)); STATIC_REQUIRE(sign(2) == 1); STATIC_REQUIRE(sign(-2) == -1); STATIC_REQUIRE(sign(0) == 0); - STATIC_REQUIRE(sign(2.f) == approx(1.f)); - STATIC_REQUIRE(sign(-2.f) == approx(-1.f)); - STATIC_REQUIRE(sign(0.f) == approx(0.f)); + STATIC_REQUIRE(sign(2.f) == uapprox(1.f)); + STATIC_REQUIRE(sign(-2.f) == uapprox(-1.f)); + STATIC_REQUIRE(sign(0.f) == uapprox(0.f)); - STATIC_REQUIRE(reciprocal(2.f) == approx(0.5f)); - STATIC_REQUIRE(reciprocal(4.f) == approx(0.25f)); + STATIC_REQUIRE(reciprocal(2.f) == uapprox(0.5f)); + STATIC_REQUIRE(reciprocal(4.f) == uapprox(0.25f)); - REQUIRE(floor(1.7f) == approx(1.f)); - REQUIRE(trunc(1.7f) == approx(1.f)); - REQUIRE(round(1.7f) == approx(2.f)); - REQUIRE(ceil(1.7f) == approx(2.f)); + REQUIRE(floor(1.7f) == uapprox(1.f)); + REQUIRE(trunc(1.7f) == uapprox(1.f)); + REQUIRE(round(1.7f) == uapprox(2.f)); + REQUIRE(ceil(1.7f) == uapprox(2.f)); - REQUIRE(fract(1.7f) == approx(0.7f)); - REQUIRE(fract(-2.3f) == approx(0.7f)); + REQUIRE(fract(1.7f) == uapprox(0.7f)); + REQUIRE(fract(-2.3f) == uapprox(0.7f)); - REQUIRE(fmod(1.7f, 1.2f) == approx(0.5f)); + REQUIRE(fmod(1.7f, 1.2f) == uapprox(0.5f)); { float out_i{}; - REQUIRE(modf(1.7f, &out_i) == approx(0.7f)); - REQUIRE(out_i == approx(1.f)); + REQUIRE(modf(1.7f, &out_i) == uapprox(0.7f)); + REQUIRE(out_i == uapprox(1.f)); } - STATIC_REQUIRE(min(0.f, 1.f) == approx(0.f)); - STATIC_REQUIRE(min(3.f, 2.f, 1.f) == approx(1.f)); - STATIC_REQUIRE(min(4.f, 3.f, 2.f, 1.f) == approx(1.f)); + STATIC_REQUIRE(min(0.f, 1.f) == uapprox(0.f)); + STATIC_REQUIRE(min(3.f, 2.f, 1.f) == uapprox(1.f)); + STATIC_REQUIRE(min(4.f, 3.f, 2.f, 1.f) == uapprox(1.f)); - STATIC_REQUIRE(max(0.f, 1.f) == approx(1.f)); - STATIC_REQUIRE(max(3.f, 2.f, 1.f) == approx(3.f)); - STATIC_REQUIRE(max(4.f, 3.f, 2.f, 1.f) == approx(4.f)); + STATIC_REQUIRE(max(0.f, 1.f) == uapprox(1.f)); + STATIC_REQUIRE(max(3.f, 2.f, 1.f) == uapprox(3.f)); + STATIC_REQUIRE(max(4.f, 3.f, 2.f, 1.f) == uapprox(4.f)); - STATIC_REQUIRE(clamp(1.0f, 2.f, 3.f) == approx(2.0f)); - STATIC_REQUIRE(clamp(2.5f, 2.f, 3.f) == approx(2.5f)); - STATIC_REQUIRE(clamp(3.5f, 2.f, 3.f) == approx(3.0f)); + STATIC_REQUIRE(clamp(1.0f, 2.f, 3.f) == uapprox(2.0f)); + STATIC_REQUIRE(clamp(2.5f, 2.f, 3.f) == uapprox(2.5f)); + STATIC_REQUIRE(clamp(3.5f, 2.f, 3.f) == uapprox(3.0f)); - STATIC_REQUIRE(saturate(-0.5f) == approx(0.f)); - STATIC_REQUIRE(saturate(0.5f) == approx(0.5f)); - STATIC_REQUIRE(saturate(1.5f) == approx(1.f)); + STATIC_REQUIRE(saturate(-0.5f) == uapprox(0.f)); + STATIC_REQUIRE(saturate(0.5f) == uapprox(0.5f)); + STATIC_REQUIRE(saturate(1.5f) == uapprox(1.f)); - STATIC_REQUIRE(lerp(0.f, 10.f, 0.5f) == approx(5.f)); - STATIC_REQUIRE(step(0.5f, 0.4f) == approx(0.f)); - STATIC_REQUIRE(step(0.5f, 0.6f) == approx(1.f)); - STATIC_REQUIRE(smoothstep(0.f, 1.f, 0.1f) == approx(0.028f)); + STATIC_REQUIRE(lerp(0.f, 10.f, 0.5f) == uapprox(5.f)); + STATIC_REQUIRE(step(0.5f, 0.4f) == uapprox(0.f)); + STATIC_REQUIRE(step(0.5f, 0.6f) == uapprox(1.f)); + STATIC_REQUIRE(smoothstep(0.f, 1.f, 0.1f) == uapprox(0.028f)); REQUIRE_FALSE(vmath_hpp::isnan(1.f)); REQUIRE_FALSE(vmath_hpp::isinf(1.f)); REQUIRE(vmath_hpp::isfinite(1.f)); - REQUIRE(fma(2.f, 3.f, 4.f) == approx(10.f)); + REQUIRE(fma(2.f, 3.f, 4.f) == uapprox(10.f)); { int out_exp{}; - REQUIRE(frexp(1.7f, &out_exp) == approx(0.85f)); + REQUIRE(frexp(1.7f, &out_exp) == uapprox(0.85f)); REQUIRE(out_exp == 1); } - REQUIRE(ldexp(0.85f, 1) == approx(1.7f)); + REQUIRE(ldexp(0.85f, 1) == uapprox(1.7f)); } SUBCASE("Geometric Functions") { - STATIC_REQUIRE(length(10.f) == approx(10.f)); - STATIC_REQUIRE(length(-10.f) == approx(10.f)); + STATIC_REQUIRE(length(10.f) == uapprox(10.f)); + STATIC_REQUIRE(length(-10.f) == uapprox(10.f)); - STATIC_REQUIRE(length2(10.f) == approx(100.f)); - STATIC_REQUIRE(length2(-10.f) == approx(100.f)); + STATIC_REQUIRE(length2(10.f) == uapprox(100.f)); + STATIC_REQUIRE(length2(-10.f) == uapprox(100.f)); - STATIC_REQUIRE(distance(5.f, 10.f) == approx(5.f)); - STATIC_REQUIRE(distance(-5.f, -10.f) == approx(5.f)); + STATIC_REQUIRE(distance(5.f, 10.f) == uapprox(5.f)); + STATIC_REQUIRE(distance(-5.f, -10.f) == uapprox(5.f)); - STATIC_REQUIRE(distance2(5.f, 10.f) == approx(25.f)); - STATIC_REQUIRE(distance2(-5.f, -10.f) == approx(25.f)); + STATIC_REQUIRE(distance2(5.f, 10.f) == uapprox(25.f)); + STATIC_REQUIRE(distance2(-5.f, -10.f) == uapprox(25.f)); - STATIC_REQUIRE(dot(2.f, 5.f) == approx(10.f)); - REQUIRE(normalize(0.5f) == approx(1.f)); + STATIC_REQUIRE(dot(2.f, 5.f) == uapprox(10.f)); + REQUIRE(normalize(0.5f) == uapprox(1.f)); - STATIC_REQUIRE(faceforward(1.f, 2.f, 3.f) == approx(-1.f)); - STATIC_REQUIRE(reflect(1.f, 2.f) == approx(-7.f)); - REQUIRE(refract(1.f, 2.f, 1.f) == approx(-7.f)); + STATIC_REQUIRE(faceforward(1.f, 2.f, 3.f) == uapprox(-1.f)); + STATIC_REQUIRE(reflect(1.f, 2.f) == uapprox(-7.f)); + REQUIRE(refract(1.f, 2.f, 1.f) == uapprox(-7.f)); } SUBCASE("Relational Functions") { diff --git a/untests/vmath_mat_fun_tests.cpp b/untests/vmath_mat_fun_tests.cpp index 2f2322a..0f9c61b 100644 --- a/untests/vmath_mat_fun_tests.cpp +++ b/untests/vmath_mat_fun_tests.cpp @@ -120,7 +120,7 @@ TEST_CASE("vmath/mat_fun") { { int4 v{0, 0, 0, 1}; REQUIRE(&v == &(v *= translate(int3{1,2,3}))); - REQUIRE(v == approx4(1,2,3,1)); + REQUIRE(v == uapprox4(1,2,3,1)); } { int3 v{1, 2, 3}; @@ -283,7 +283,7 @@ TEST_CASE("vmath/mat_fun") { STATIC_REQUIRE(all(approximately( unit4_z * m1 * rm1, unit4_z, - approx_epsilon_v))); + uapprox_epsilon_v))); } { @@ -293,7 +293,7 @@ TEST_CASE("vmath/mat_fun") { REQUIRE(all(approximately( unit4_z * m2 * rm2, unit4_z, - approx_epsilon_v))); + uapprox_epsilon_v))); } { @@ -303,7 +303,7 @@ TEST_CASE("vmath/mat_fun") { REQUIRE(all(approximately( unit3_z * m3 * rm3, unit3_z, - approx_epsilon_v))); + uapprox_epsilon_v))); } { @@ -313,7 +313,7 @@ TEST_CASE("vmath/mat_fun") { REQUIRE(all(approximately( unit2_y * m4 * rm4, unit2_y, - approx_epsilon_v))); + uapprox_epsilon_v))); } } } diff --git a/untests/vmath_tests.hpp b/untests/vmath_tests.hpp index 4b1353a..385c530 100644 --- a/untests/vmath_tests.hpp +++ b/untests/vmath_tests.hpp @@ -13,58 +13,58 @@ namespace vmath_tests using namespace vmath_hpp; template < typename T > - struct approx_epsilon; + struct uapprox_epsilon; template <> - struct approx_epsilon { + struct uapprox_epsilon { static constexpr int value = 0; }; template <> - struct approx_epsilon { + struct uapprox_epsilon { static constexpr float value = FLT_EPSILON * 100; }; template <> - struct approx_epsilon { + struct uapprox_epsilon { static constexpr float value = DBL_EPSILON * 100; }; template < typename T > - inline constexpr T approx_epsilon_v = approx_epsilon::value; + inline constexpr T uapprox_epsilon_v = uapprox_epsilon::value; // // // template < typename T > - struct approx { + struct uapprox { T value; - explicit constexpr approx(T v) : value(v) {} + explicit constexpr uapprox(T v) : value(v) {} }; template < typename T > - struct approx2 { + struct uapprox2 { vec value; - constexpr explicit approx2(T v) : value(v) {} - constexpr explicit approx2(T x, T y) : value(x, y) {} - constexpr explicit approx2(const vec& v) : value(v) {} + constexpr explicit uapprox2(T v) : value(v) {} + constexpr explicit uapprox2(T x, T y) : value(x, y) {} + constexpr explicit uapprox2(const vec& v) : value(v) {} }; template < typename T > - struct approx3 { + struct uapprox3 { vec value; - constexpr explicit approx3(T v) : value(v) {} - constexpr explicit approx3(T x, T y, T z) : value(x, y, z) {} - constexpr explicit approx3(const vec& v) : value(v) {} + constexpr explicit uapprox3(T v) : value(v) {} + constexpr explicit uapprox3(T x, T y, T z) : value(x, y, z) {} + constexpr explicit uapprox3(const vec& v) : value(v) {} }; template < typename T > - struct approx4 { + struct uapprox4 { vec value; - constexpr explicit approx4(T v) : value(v) {} - constexpr explicit approx4(T x, T y, T z, T w) : value(x, y, z, w) {} - constexpr explicit approx4(const vec& v) : value(v) {} + constexpr explicit uapprox4(T v) : value(v) {} + constexpr explicit uapprox4(T x, T y, T z, T w) : value(x, y, z, w) {} + constexpr explicit uapprox4(const vec& v) : value(v) {} }; // @@ -72,22 +72,22 @@ namespace vmath_tests // template < typename T > - constexpr bool operator==(const T& l, const approx& r) { - return approximately(l, r.value, approx_epsilon_v); + constexpr bool operator==(const T& l, const uapprox& r) { + return approximately(l, r.value, uapprox_epsilon_v); } template < typename T > - constexpr bool operator==(const vec& l, const approx2& r) { - return all(approximately(l, r.value, approx_epsilon_v)); + constexpr bool operator==(const vec& l, const uapprox2& r) { + return all(approximately(l, r.value, uapprox_epsilon_v)); } template < typename T > - constexpr bool operator==(const vec& l, const approx3& r) { - return all(approximately(l, r.value, approx_epsilon_v)); + constexpr bool operator==(const vec& l, const uapprox3& r) { + return all(approximately(l, r.value, uapprox_epsilon_v)); } template < typename T > - constexpr bool operator==(const vec& l, const approx4& r) { - return all(approximately(l, r.value, approx_epsilon_v)); + constexpr bool operator==(const vec& l, const uapprox4& r) { + return all(approximately(l, r.value, uapprox_epsilon_v)); } } diff --git a/untests/vmath_vec_fun_tests.cpp b/untests/vmath_vec_fun_tests.cpp index e8adc35..38bd335 100644 --- a/untests/vmath_vec_fun_tests.cpp +++ b/untests/vmath_vec_fun_tests.cpp @@ -148,8 +148,8 @@ TEST_CASE("vmath/vec_fun") { } SUBCASE("Angle and Trigonometry Functions") { - STATIC_REQUIRE(radians(degrees(float2(12.13f))) == approx2(12.13f)); - STATIC_REQUIRE(degrees(radians(float2(12.13f))) == approx2(12.13f)); + STATIC_REQUIRE(radians(degrees(float2(12.13f))) == uapprox2(12.13f)); + STATIC_REQUIRE(degrees(radians(float2(12.13f))) == uapprox2(12.13f)); (void)sin(float2(1.f)); (void)cos(float2(1.f)); @@ -171,8 +171,8 @@ TEST_CASE("vmath/vec_fun") { { float2 out_ss{}, out_cs{}; sincos(float2(10.f,15.f), &out_ss, &out_cs); - REQUIRE(out_ss == approx2(sin(10.f), sin(15.f))); - REQUIRE(out_cs == approx2(cos(10.f), cos(15.f))); + REQUIRE(out_ss == uapprox2(sin(10.f), sin(15.f))); + REQUIRE(out_cs == uapprox2(cos(10.f), cos(15.f))); } } @@ -187,9 +187,9 @@ TEST_CASE("vmath/vec_fun") { } SUBCASE("Common Functions") { - STATIC_REQUIRE(abs(float2(1.f, -1.f)) == approx2(1.f,1.f)); - STATIC_REQUIRE(sign(float3(1.f, -1.f, 0.f)) == approx3(1.f,-1.f,0.f)); - STATIC_REQUIRE(reciprocal(float2(2.f, 4.f)) == approx2(0.5f,0.25f)); + STATIC_REQUIRE(abs(float2(1.f, -1.f)) == uapprox2(1.f,1.f)); + STATIC_REQUIRE(sign(float3(1.f, -1.f, 0.f)) == uapprox3(1.f,-1.f,0.f)); + STATIC_REQUIRE(reciprocal(float2(2.f, 4.f)) == uapprox2(0.5f,0.25f)); (void)floor(float2(1.f, -1.f)); (void)trunc(float2(1.f, -1.f)); @@ -197,13 +197,13 @@ TEST_CASE("vmath/vec_fun") { (void)ceil(float2(1.f, -1.f)); (void)fract(float2(1.f, -1.f)); - REQUIRE(fmod(float2(1.7f), 1.2f) == approx2(0.5f)); - REQUIRE(fmod(float2(1.7f), float2(1.2f)) == approx2(0.5f)); + REQUIRE(fmod(float2(1.7f), 1.2f) == uapprox2(0.5f)); + REQUIRE(fmod(float2(1.7f), float2(1.2f)) == uapprox2(0.5f)); { float2 out_i{}; - REQUIRE(modf(float2(1.7f), &out_i) == approx2(0.7f)); - REQUIRE(out_i.x == approx(1.f)); + REQUIRE(modf(float2(1.7f), &out_i) == uapprox2(0.7f)); + REQUIRE(out_i.x == uapprox(1.f)); } STATIC_REQUIRE(min(int2(1,2)) == 1); @@ -217,55 +217,55 @@ TEST_CASE("vmath/vec_fun") { STATIC_REQUIRE(clamp(int2(1,2), 0, 1) == int2(1,1)); STATIC_REQUIRE(clamp(int2(1,2), int2(0), int2(1)) == int2(1,1)); - STATIC_REQUIRE(saturate(float3(-1.f,0.5,1.5f)) == approx3(0.f,0.5f,1.f)); + STATIC_REQUIRE(saturate(float3(-1.f,0.5,1.5f)) == uapprox3(0.f,0.5f,1.f)); - STATIC_REQUIRE(lerp(float2(0.f), float2(10.f), 0.5f) == approx2(5.f)); - STATIC_REQUIRE(lerp(float2(0.f), float2(10.f), float2(0.5f)) == approx2(5.f)); + STATIC_REQUIRE(lerp(float2(0.f), float2(10.f), 0.5f) == uapprox2(5.f)); + STATIC_REQUIRE(lerp(float2(0.f), float2(10.f), float2(0.5f)) == uapprox2(5.f)); - STATIC_REQUIRE(step(0.5f, float2(0.4f)) == approx2(0.f)); - STATIC_REQUIRE(step(0.5f, float2(0.6f)) == approx2(1.f)); - STATIC_REQUIRE(step(float2(0.5f), float2(0.4f)) == approx2(0.f)); - STATIC_REQUIRE(step(float2(0.5f), float2(0.6f)) == approx2(1.f)); + STATIC_REQUIRE(step(0.5f, float2(0.4f)) == uapprox2(0.f)); + STATIC_REQUIRE(step(0.5f, float2(0.6f)) == uapprox2(1.f)); + STATIC_REQUIRE(step(float2(0.5f), float2(0.4f)) == uapprox2(0.f)); + STATIC_REQUIRE(step(float2(0.5f), float2(0.6f)) == uapprox2(1.f)); - STATIC_REQUIRE(smoothstep(0.f, 1.f, float2(0.1f)) == approx2(0.028f)); - STATIC_REQUIRE(smoothstep(float2(0.f), float2(1.f), float2(0.1f)) == approx2(0.028f)); + STATIC_REQUIRE(smoothstep(0.f, 1.f, float2(0.1f)) == uapprox2(0.028f)); + STATIC_REQUIRE(smoothstep(float2(0.f), float2(1.f), float2(0.1f)) == uapprox2(0.028f)); REQUIRE_FALSE(isnan(float2(1.f)).x); REQUIRE_FALSE(isinf(float2(1.f)).x); REQUIRE(isfinite(float2(1.f)).x); - REQUIRE_FALSE(fma(float2(2.f), float2(3.f), float2(4.f)).x == approx(12.f)); + REQUIRE_FALSE(fma(float2(2.f), float2(3.f), float2(4.f)).x == uapprox(12.f)); { int2 out_exp{}; - REQUIRE(frexp(float2(1.7f), &out_exp).x == approx(0.85f)); + REQUIRE(frexp(float2(1.7f), &out_exp).x == uapprox(0.85f)); REQUIRE(out_exp == int2(1)); } - REQUIRE(ldexp(float2(0.85f), int2(1)).x == approx(1.7f)); + REQUIRE(ldexp(float2(0.85f), int2(1)).x == uapprox(1.7f)); } SUBCASE("Geometric Functions") { - REQUIRE(length(float2(10.f,0.f)) == approx(10.f)); - REQUIRE(length(float2(-10.f,0.f)) == approx(10.f)); + REQUIRE(length(float2(10.f,0.f)) == uapprox(10.f)); + REQUIRE(length(float2(-10.f,0.f)) == uapprox(10.f)); - STATIC_REQUIRE(length2(float2(10.f,0.f)) == approx(100.f)); - STATIC_REQUIRE(length2(float2(-10.f,0.f)) == approx(100.f)); + STATIC_REQUIRE(length2(float2(10.f,0.f)) == uapprox(100.f)); + STATIC_REQUIRE(length2(float2(-10.f,0.f)) == uapprox(100.f)); - REQUIRE(distance(float2(5.f,0.f), float2(10.f,0.f)) == approx(5.f)); - REQUIRE(distance(float2(-5.f,0.f), float2(-10.f,0.f)) == approx(5.f)); + REQUIRE(distance(float2(5.f,0.f), float2(10.f,0.f)) == uapprox(5.f)); + REQUIRE(distance(float2(-5.f,0.f), float2(-10.f,0.f)) == uapprox(5.f)); - STATIC_REQUIRE(distance2(float2(5.f,0.f), float2(10.f,0.f)) == approx(25.f)); - STATIC_REQUIRE(distance2(float2(-5.f,0.f), float2(-10.f,0.f)) == approx(25.f)); + STATIC_REQUIRE(distance2(float2(5.f,0.f), float2(10.f,0.f)) == uapprox(25.f)); + STATIC_REQUIRE(distance2(float2(-5.f,0.f), float2(-10.f,0.f)) == uapprox(25.f)); STATIC_REQUIRE(dot(int2(1,2),int2(3,4)) == 11); STATIC_REQUIRE(cross(int2(1,0),int2(0,1)) == 1); STATIC_REQUIRE(cross(int3(1,0,0),int3(0,1,0)) == int3(0,0,1)); - REQUIRE(normalize(float2(0.5f,0.f)).x == approx(1.f)); + REQUIRE(normalize(float2(0.5f,0.f)).x == uapprox(1.f)); - STATIC_REQUIRE(faceforward(float2(1.f), float2(2.f), float2(3.f)).x == approx(-1.f)); - STATIC_REQUIRE(reflect(float2(1.f), float2(2.f)).x == approx(-15.f)); - REQUIRE(refract(float2(1.f), float2(2.f), 1.f).x == approx(-15.f)); + STATIC_REQUIRE(faceforward(float2(1.f), float2(2.f), float2(3.f)).x == uapprox(-1.f)); + STATIC_REQUIRE(reflect(float2(1.f), float2(2.f)).x == uapprox(-15.f)); + REQUIRE(refract(float2(1.f), float2(2.f), 1.f).x == uapprox(-15.f)); } SUBCASE("Relational Functions") {