Jakob Botsch Nielsen b39e967e4f Fix test that fails on Clang due to float compares
These results were failing because of trying to do exact floating point
equality on computed values.
2018-06-16 17:04:54 +02:00

34 lines
773 B
C++

#include "catch.hpp"
#include "DetourCommon.h"
TEST_CASE("dtRandomPointInConvexPoly")
{
SECTION("Properly works when the argument 's' is 1.0f")
{
const float pts[] = {
0, 0, 0,
0, 0, 1,
1, 0, 0,
};
const int npts = 3;
float areas[6];
float out[3];
dtRandomPointInConvexPoly(pts, npts, areas, 0.0f, 1.0f, out);
REQUIRE(out[0] == Approx(0));
REQUIRE(out[1] == Approx(0));
REQUIRE(out[2] == Approx(1));
dtRandomPointInConvexPoly(pts, npts, areas, 0.5f, 1.0f, out);
REQUIRE(out[0] == Approx(1.0f / 2));
REQUIRE(out[1] == Approx(0));
REQUIRE(out[2] == Approx(1.0f / 2));
dtRandomPointInConvexPoly(pts, npts, areas, 1.0f, 1.0f, out);
REQUIRE(out[0] == Approx(1));
REQUIRE(out[1] == Approx(0));
REQUIRE(out[2] == Approx(0));
}
}