Updated Catch2 testing library to v3.1.1

https://github.com/catchorg/Catch2

Updated tests with new API changes as well.
This commit is contained in:
Graham Pentheny 2022-10-29 14:13:46 -04:00 committed by Graham Pentheny
parent d576e71b25
commit 7dfa9849ca
7 changed files with 22745 additions and 11775 deletions

View File

@ -19,6 +19,7 @@ workspace "recastnavigation"
rtti "Off" rtti "Off"
symbols "On" symbols "On"
flags { "FatalCompileWarnings" } flags { "FatalCompileWarnings" }
cppdialect "C++98"
-- debug configs -- debug configs
filter "configurations:Debug" filter "configurations:Debug"
@ -193,6 +194,7 @@ project "RecastDemo"
project "Tests" project "Tests"
language "C++" language "C++"
kind "ConsoleApp" kind "ConsoleApp"
cppdialect "C++20" -- Catch requires newer C++ features
-- Catch requires RTTI and exceptions -- Catch requires RTTI and exceptions
exceptionhandling "On" exceptionhandling "On"
@ -207,6 +209,7 @@ project "Tests"
"../Recast/Source", "../Recast/Source",
"../Tests/Recast", "../Tests/Recast",
"../Tests", "../Tests",
"../Tests/Contrib/Catch"
} }
files { files {
"../Tests/*.h", "../Tests/*.h",
@ -216,6 +219,7 @@ project "Tests"
"../Tests/Recast/*.cpp", "../Tests/Recast/*.cpp",
"../Tests/Detour/*.h", "../Tests/Detour/*.h",
"../Tests/Detour/*.cpp", "../Tests/Detour/*.cpp",
"../Tests/Contrib/Catch/*.cpp"
} }
-- project dependencies -- project dependencies

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,4 @@
#include "catch.hpp" #include "catch_amalgamated.hpp"
#include "DetourCommon.h" #include "DetourCommon.h"
@ -16,18 +16,18 @@ TEST_CASE("dtRandomPointInConvexPoly")
float out[3]; float out[3];
dtRandomPointInConvexPoly(pts, npts, areas, 0.0f, 1.0f, out); dtRandomPointInConvexPoly(pts, npts, areas, 0.0f, 1.0f, out);
REQUIRE(out[0] == Approx(0)); REQUIRE(out[0] == Catch::Approx(0));
REQUIRE(out[1] == Approx(0)); REQUIRE(out[1] == Catch::Approx(0));
REQUIRE(out[2] == Approx(1)); REQUIRE(out[2] == Catch::Approx(1));
dtRandomPointInConvexPoly(pts, npts, areas, 0.5f, 1.0f, out); dtRandomPointInConvexPoly(pts, npts, areas, 0.5f, 1.0f, out);
REQUIRE(out[0] == Approx(1.0f / 2)); REQUIRE(out[0] == Catch::Approx(1.0f / 2));
REQUIRE(out[1] == Approx(0)); REQUIRE(out[1] == Catch::Approx(0));
REQUIRE(out[2] == Approx(1.0f / 2)); REQUIRE(out[2] == Catch::Approx(1.0f / 2));
dtRandomPointInConvexPoly(pts, npts, areas, 1.0f, 1.0f, out); dtRandomPointInConvexPoly(pts, npts, areas, 1.0f, 1.0f, out);
REQUIRE(out[0] == Approx(1)); REQUIRE(out[0] == Catch::Approx(1));
REQUIRE(out[1] == Approx(0)); REQUIRE(out[1] == Catch::Approx(0));
REQUIRE(out[2] == Approx(0)); REQUIRE(out[2] == Catch::Approx(0));
} }
} }

View File

@ -1,7 +1,7 @@
#include <stdio.h> #include <stdio.h>
#include <string.h> #include <string.h>
#include "catch.hpp" #include "catch_amalgamated.hpp"
#include "Recast.h" #include "Recast.h"
#include "RecastAlloc.h" #include "RecastAlloc.h"
@ -92,8 +92,8 @@ TEST_CASE("rcSqrt")
{ {
SECTION("Sqrt gets the sqrt of a number") SECTION("Sqrt gets the sqrt of a number")
{ {
REQUIRE(rcSqrt(4) == Approx(2)); REQUIRE(rcSqrt(4) == Catch::Approx(2));
REQUIRE(rcSqrt(81) == Approx(9)); REQUIRE(rcSqrt(81) == Catch::Approx(9));
} }
} }
@ -105,9 +105,9 @@ TEST_CASE("rcVcross")
float v2[3] = {4, 9, 2}; float v2[3] = {4, 9, 2};
float result[3]; float result[3];
rcVcross(result, v1, v2); rcVcross(result, v1, v2);
REQUIRE(result[0] == Approx(-15)); REQUIRE(result[0] == Catch::Approx(-15));
REQUIRE(result[1] == Approx(-2)); REQUIRE(result[1] == Catch::Approx(-2));
REQUIRE(result[2] == Approx(39)); REQUIRE(result[2] == Catch::Approx(39));
} }
SECTION("Cross product with itself is zero") SECTION("Cross product with itself is zero")
@ -115,9 +115,9 @@ TEST_CASE("rcVcross")
float v1[3] = {3, -3, 1}; float v1[3] = {3, -3, 1};
float result[3]; float result[3];
rcVcross(result, v1, v1); rcVcross(result, v1, v1);
REQUIRE(result[0] == Approx(0)); REQUIRE(result[0] == Catch::Approx(0));
REQUIRE(result[1] == Approx(0)); REQUIRE(result[1] == Catch::Approx(0));
REQUIRE(result[2] == Approx(0)); REQUIRE(result[2] == Catch::Approx(0));
} }
} }
@ -127,7 +127,7 @@ TEST_CASE("rcVdot")
{ {
float v1[] = { 1, 0, 0 }; float v1[] = { 1, 0, 0 };
float result = rcVdot(v1, v1); float result = rcVdot(v1, v1);
REQUIRE(result == Approx(1)); REQUIRE(result == Catch::Approx(1));
} }
SECTION("Dot zero vector with anything is zero") SECTION("Dot zero vector with anything is zero")
@ -136,7 +136,7 @@ TEST_CASE("rcVdot")
float v2[] = { 0, 0, 0 }; float v2[] = { 0, 0, 0 };
float result = rcVdot(v1, v2); float result = rcVdot(v1, v2);
REQUIRE(result == Approx(0)); REQUIRE(result == Catch::Approx(0));
} }
} }
@ -148,9 +148,9 @@ TEST_CASE("rcVmad")
float v2[3] = {0, 2, 4}; float v2[3] = {0, 2, 4};
float result[3]; float result[3];
rcVmad(result, v1, v2, 2); rcVmad(result, v1, v2, 2);
REQUIRE(result[0] == Approx(1)); REQUIRE(result[0] == Catch::Approx(1));
REQUIRE(result[1] == Approx(6)); REQUIRE(result[1] == Catch::Approx(6));
REQUIRE(result[2] == Approx(11)); REQUIRE(result[2] == Catch::Approx(11));
} }
SECTION("second vector is scaled, first is not") SECTION("second vector is scaled, first is not")
@ -159,9 +159,9 @@ TEST_CASE("rcVmad")
float v2[3] = {5, 6, 7}; float v2[3] = {5, 6, 7};
float result[3]; float result[3];
rcVmad(result, v1, v2, 0); rcVmad(result, v1, v2, 0);
REQUIRE(result[0] == Approx(1)); REQUIRE(result[0] == Catch::Approx(1));
REQUIRE(result[1] == Approx(2)); REQUIRE(result[1] == Catch::Approx(2));
REQUIRE(result[2] == Approx(3)); REQUIRE(result[2] == Catch::Approx(3));
} }
} }
@ -173,9 +173,9 @@ TEST_CASE("rcVadd")
float v2[3] = {5, 6, 7}; float v2[3] = {5, 6, 7};
float result[3]; float result[3];
rcVadd(result, v1, v2); rcVadd(result, v1, v2);
REQUIRE(result[0] == Approx(6)); REQUIRE(result[0] == Catch::Approx(6));
REQUIRE(result[1] == Approx(8)); REQUIRE(result[1] == Catch::Approx(8));
REQUIRE(result[2] == Approx(10)); REQUIRE(result[2] == Catch::Approx(10));
} }
} }
@ -187,9 +187,9 @@ TEST_CASE("rcVsub")
float v2[3] = {1, 2, 3}; float v2[3] = {1, 2, 3};
float result[3]; float result[3];
rcVsub(result, v1, v2); rcVsub(result, v1, v2);
REQUIRE(result[0] == Approx(4)); REQUIRE(result[0] == Catch::Approx(4));
REQUIRE(result[1] == Approx(2)); REQUIRE(result[1] == Catch::Approx(2));
REQUIRE(result[2] == Approx(0)); REQUIRE(result[2] == Catch::Approx(0));
} }
} }
@ -200,9 +200,9 @@ TEST_CASE("rcVmin")
float v1[3] = {5, 4, 0}; float v1[3] = {5, 4, 0};
float v2[3] = {1, 2, 9}; float v2[3] = {1, 2, 9};
rcVmin(v1, v2); rcVmin(v1, v2);
REQUIRE(v1[0] == Approx(1)); REQUIRE(v1[0] == Catch::Approx(1));
REQUIRE(v1[1] == Approx(2)); REQUIRE(v1[1] == Catch::Approx(2));
REQUIRE(v1[2] == Approx(0)); REQUIRE(v1[2] == Catch::Approx(0));
} }
SECTION("v1 is min") SECTION("v1 is min")
@ -210,9 +210,9 @@ TEST_CASE("rcVmin")
float v1[3] = {1, 2, 3}; float v1[3] = {1, 2, 3};
float v2[3] = {4, 5, 6}; float v2[3] = {4, 5, 6};
rcVmin(v1, v2); rcVmin(v1, v2);
REQUIRE(v1[0] == Approx(1)); REQUIRE(v1[0] == Catch::Approx(1));
REQUIRE(v1[1] == Approx(2)); REQUIRE(v1[1] == Catch::Approx(2));
REQUIRE(v1[2] == Approx(3)); REQUIRE(v1[2] == Catch::Approx(3));
} }
SECTION("v2 is min") SECTION("v2 is min")
@ -220,9 +220,9 @@ TEST_CASE("rcVmin")
float v1[3] = {4, 5, 6}; float v1[3] = {4, 5, 6};
float v2[3] = {1, 2, 3}; float v2[3] = {1, 2, 3};
rcVmin(v1, v2); rcVmin(v1, v2);
REQUIRE(v1[0] == Approx(1)); REQUIRE(v1[0] == Catch::Approx(1));
REQUIRE(v1[1] == Approx(2)); REQUIRE(v1[1] == Catch::Approx(2));
REQUIRE(v1[2] == Approx(3)); REQUIRE(v1[2] == Catch::Approx(3));
} }
} }
@ -233,9 +233,9 @@ TEST_CASE("rcVmax")
float v1[3] = {5, 4, 0}; float v1[3] = {5, 4, 0};
float v2[3] = {1, 2, 9}; float v2[3] = {1, 2, 9};
rcVmax(v1, v2); rcVmax(v1, v2);
REQUIRE(v1[0] == Approx(5)); REQUIRE(v1[0] == Catch::Approx(5));
REQUIRE(v1[1] == Approx(4)); REQUIRE(v1[1] == Catch::Approx(4));
REQUIRE(v1[2] == Approx(9)); REQUIRE(v1[2] == Catch::Approx(9));
} }
SECTION("v2 is max") SECTION("v2 is max")
@ -243,9 +243,9 @@ TEST_CASE("rcVmax")
float v1[3] = {1, 2, 3}; float v1[3] = {1, 2, 3};
float v2[3] = {4, 5, 6}; float v2[3] = {4, 5, 6};
rcVmax(v1, v2); rcVmax(v1, v2);
REQUIRE(v1[0] == Approx(4)); REQUIRE(v1[0] == Catch::Approx(4));
REQUIRE(v1[1] == Approx(5)); REQUIRE(v1[1] == Catch::Approx(5));
REQUIRE(v1[2] == Approx(6)); REQUIRE(v1[2] == Catch::Approx(6));
} }
SECTION("v1 is max") SECTION("v1 is max")
@ -253,9 +253,9 @@ TEST_CASE("rcVmax")
float v1[3] = {4, 5, 6}; float v1[3] = {4, 5, 6};
float v2[3] = {1, 2, 3}; float v2[3] = {1, 2, 3};
rcVmax(v1, v2); rcVmax(v1, v2);
REQUIRE(v1[0] == Approx(4)); REQUIRE(v1[0] == Catch::Approx(4));
REQUIRE(v1[1] == Approx(5)); REQUIRE(v1[1] == Catch::Approx(5));
REQUIRE(v1[2] == Approx(6)); REQUIRE(v1[2] == Catch::Approx(6));
} }
} }
@ -266,12 +266,12 @@ TEST_CASE("rcVcopy")
float v1[3] = {5, 4, 0}; float v1[3] = {5, 4, 0};
float result[3] = {1, 2, 9}; float result[3] = {1, 2, 9};
rcVcopy(result, v1); rcVcopy(result, v1);
REQUIRE(result[0] == Approx(5)); REQUIRE(result[0] == Catch::Approx(5));
REQUIRE(result[1] == Approx(4)); REQUIRE(result[1] == Catch::Approx(4));
REQUIRE(result[2] == Approx(0)); REQUIRE(result[2] == Catch::Approx(0));
REQUIRE(v1[0] == Approx(5)); REQUIRE(v1[0] == Catch::Approx(5));
REQUIRE(v1[1] == Approx(4)); REQUIRE(v1[1] == Catch::Approx(4));
REQUIRE(v1[2] == Approx(0)); REQUIRE(v1[2] == Catch::Approx(0));
} }
} }
@ -283,7 +283,7 @@ TEST_CASE("rcVdist")
float v2[3] = {1, 3, 1}; float v2[3] = {1, 3, 1};
float result = rcVdist(v1, v2); float result = rcVdist(v1, v2);
REQUIRE(result == Approx(3.4641f)); REQUIRE(result == Catch::Approx(3.4641f));
} }
SECTION("Distance from zero is magnitude") SECTION("Distance from zero is magnitude")
@ -292,7 +292,7 @@ TEST_CASE("rcVdist")
float v2[3] = {0, 0, 0}; float v2[3] = {0, 0, 0};
float distance = rcVdist(v1, v2); float distance = rcVdist(v1, v2);
float magnitude = rcSqrt(rcSqr(v1[0]) + rcSqr(v1[1]) + rcSqr(v1[2])); float magnitude = rcSqrt(rcSqr(v1[0]) + rcSqr(v1[1]) + rcSqr(v1[2]));
REQUIRE(distance == Approx(magnitude)); REQUIRE(distance == Catch::Approx(magnitude));
} }
} }
@ -304,7 +304,7 @@ TEST_CASE("rcVdistSqr")
float v2[3] = {1, 3, 1}; float v2[3] = {1, 3, 1};
float result = rcVdistSqr(v1, v2); float result = rcVdistSqr(v1, v2);
REQUIRE(result == Approx(12)); REQUIRE(result == Catch::Approx(12));
} }
SECTION("squared distance from zero is squared magnitude") SECTION("squared distance from zero is squared magnitude")
@ -313,7 +313,7 @@ TEST_CASE("rcVdistSqr")
float v2[3] = {0, 0, 0}; float v2[3] = {0, 0, 0};
float distance = rcVdistSqr(v1, v2); float distance = rcVdistSqr(v1, v2);
float magnitude = rcSqr(v1[0]) + rcSqr(v1[1]) + rcSqr(v1[2]); float magnitude = rcSqr(v1[0]) + rcSqr(v1[1]) + rcSqr(v1[2]);
REQUIRE(distance == Approx(magnitude)); REQUIRE(distance == Catch::Approx(magnitude));
} }
} }
@ -323,11 +323,11 @@ TEST_CASE("rcVnormalize")
{ {
float v[3] = {3, 3, 3}; float v[3] = {3, 3, 3};
rcVnormalize(v); rcVnormalize(v);
REQUIRE(v[0] == Approx(rcSqrt(1.0f / 3.0f))); REQUIRE(v[0] == Catch::Approx(rcSqrt(1.0f / 3.0f)));
REQUIRE(v[1] == Approx(rcSqrt(1.0f / 3.0f))); REQUIRE(v[1] == Catch::Approx(rcSqrt(1.0f / 3.0f)));
REQUIRE(v[2] == Approx(rcSqrt(1.0f / 3.0f))); REQUIRE(v[2] == Catch::Approx(rcSqrt(1.0f / 3.0f)));
float magnitude = rcSqrt(rcSqr(v[0]) + rcSqr(v[1]) + rcSqr(v[2])); float magnitude = rcSqrt(rcSqr(v[0]) + rcSqr(v[1]) + rcSqr(v[2]));
REQUIRE(magnitude == Approx(1)); REQUIRE(magnitude == Catch::Approx(1));
} }
} }
@ -340,13 +340,13 @@ TEST_CASE("rcCalcBounds")
float bmax[3]; float bmax[3];
rcCalcBounds(verts, 1, bmin, bmax); rcCalcBounds(verts, 1, bmin, bmax);
REQUIRE(bmin[0] == Approx(verts[0])); REQUIRE(bmin[0] == Catch::Approx(verts[0]));
REQUIRE(bmin[1] == Approx(verts[1])); REQUIRE(bmin[1] == Catch::Approx(verts[1]));
REQUIRE(bmin[2] == Approx(verts[2])); REQUIRE(bmin[2] == Catch::Approx(verts[2]));
REQUIRE(bmax[0] == Approx(verts[0])); REQUIRE(bmax[0] == Catch::Approx(verts[0]));
REQUIRE(bmax[1] == Approx(verts[1])); REQUIRE(bmax[1] == Catch::Approx(verts[1]));
REQUIRE(bmax[2] == Approx(verts[2])); REQUIRE(bmax[2] == Catch::Approx(verts[2]));
} }
SECTION("bounds of more than one vector") SECTION("bounds of more than one vector")
@ -359,13 +359,13 @@ TEST_CASE("rcCalcBounds")
float bmax[3]; float bmax[3];
rcCalcBounds(verts, 2, bmin, bmax); rcCalcBounds(verts, 2, bmin, bmax);
REQUIRE(bmin[0] == Approx(0)); REQUIRE(bmin[0] == Catch::Approx(0));
REQUIRE(bmin[1] == Approx(2)); REQUIRE(bmin[1] == Catch::Approx(2));
REQUIRE(bmin[2] == Approx(3)); REQUIRE(bmin[2] == Catch::Approx(3));
REQUIRE(bmax[0] == Approx(1)); REQUIRE(bmax[0] == Catch::Approx(1));
REQUIRE(bmax[1] == Approx(2)); REQUIRE(bmax[1] == Catch::Approx(2));
REQUIRE(bmax[2] == Approx(5)); REQUIRE(bmax[2] == Catch::Approx(5));
} }
} }
@ -422,16 +422,16 @@ TEST_CASE("rcCreateHeightfield")
REQUIRE(heightfield.width == width); REQUIRE(heightfield.width == width);
REQUIRE(heightfield.height == height); REQUIRE(heightfield.height == height);
REQUIRE(heightfield.bmin[0] == Approx(bmin[0])); REQUIRE(heightfield.bmin[0] == Catch::Approx(bmin[0]));
REQUIRE(heightfield.bmin[1] == Approx(bmin[1])); REQUIRE(heightfield.bmin[1] == Catch::Approx(bmin[1]));
REQUIRE(heightfield.bmin[2] == Approx(bmin[2])); REQUIRE(heightfield.bmin[2] == Catch::Approx(bmin[2]));
REQUIRE(heightfield.bmax[0] == Approx(bmax[0])); REQUIRE(heightfield.bmax[0] == Catch::Approx(bmax[0]));
REQUIRE(heightfield.bmax[1] == Approx(bmax[1])); REQUIRE(heightfield.bmax[1] == Catch::Approx(bmax[1]));
REQUIRE(heightfield.bmax[2] == Approx(bmax[2])); REQUIRE(heightfield.bmax[2] == Catch::Approx(bmax[2]));
REQUIRE(heightfield.cs == Approx(cellSize)); REQUIRE(heightfield.cs == Catch::Approx(cellSize));
REQUIRE(heightfield.ch == Approx(cellHeight)); REQUIRE(heightfield.ch == Catch::Approx(cellHeight));
REQUIRE(heightfield.spans != 0); REQUIRE(heightfield.spans != 0);
REQUIRE(heightfield.pools == 0); REQUIRE(heightfield.pools == 0);

File diff suppressed because it is too large Load Diff

View File

@ -1,2 +1,2 @@
#define CATCH_CONFIG_MAIN #define CATCH_CONFIG_MAIN
#include "catch.hpp" #include "catch_amalgamated.hpp"