math: string format and binds for ray2 and ray3

This commit is contained in:
2019-12-03 07:35:10 +07:00
parent 8af8af7a27
commit feac21cad6
9 changed files with 322 additions and 8 deletions

View File

@@ -47,8 +47,8 @@ TEST_CASE("ray2") {
REQUIRE(r2i(1,2).origin == v2i(0,0));
REQUIRE(r2i(1,2).direction == v2i(1,2));
REQUIRE(r2i({1,2}).origin == v2i(0,0));
REQUIRE(r2i({1,2}).direction == v2i(1,2));
REQUIRE(r2i(v2i{1,2}).origin == v2i(0,0));
REQUIRE(r2i(v2i{1,2}).direction == v2i(1,2));
REQUIRE(r2i(1,2,3,4).origin == v2i(1,2));
REQUIRE(r2i(1,2,3,4).direction == v2i(3,4));
@@ -140,7 +140,7 @@ TEST_CASE("ray2") {
{
REQUIRE_FALSE(math::contains_nan(r2i({1,2},{3,4})));
REQUIRE_FALSE(math::contains_nan(r2f({1.f,2.f},{3.f,4.f})));
REQUIRE(math::contains_nan(r2f({1.f,std::numeric_limits<f32>::quiet_NaN()})));
REQUIRE(math::contains_nan(r2f({std::numeric_limits<f32>::infinity(), 1.f})));
REQUIRE(math::contains_nan(r2f(1.f,std::numeric_limits<f32>::quiet_NaN())));
REQUIRE(math::contains_nan(r2f(std::numeric_limits<f32>::infinity(), 1.f)));
}
}

View File

@@ -48,8 +48,8 @@ TEST_CASE("ray3") {
REQUIRE(r3i(1,2,3).origin == v3i(0,0,0));
REQUIRE(r3i(1,2,3).direction == v3i(1,2,3));
REQUIRE(r3i({1,2,3}).origin == v3i(0,0,0));
REQUIRE(r3i({1,2,3}).direction == v3i(1,2,3));
REQUIRE(r3i(v3i{1,2,3}).origin == v3i(0,0,0));
REQUIRE(r3i(v3i{1,2,3}).direction == v3i(1,2,3));
REQUIRE(r3i(1,2,3,3,4,5).origin == v3i(1,2,3));
REQUIRE(r3i(1,2,3,3,4,5).direction == v3i(3,4,5));
@@ -149,7 +149,7 @@ TEST_CASE("ray3") {
{
REQUIRE_FALSE(math::contains_nan(r3i({1,2,3},{3,4,5})));
REQUIRE_FALSE(math::contains_nan(r3f({1.f,2.f,3.f},{3.f,4.f,5.f})));
REQUIRE(math::contains_nan(r3f({1.f,2.f,std::numeric_limits<f32>::quiet_NaN()})));
REQUIRE(math::contains_nan(r3f({std::numeric_limits<f32>::infinity(), 1.f,2.f})));
REQUIRE(math::contains_nan(r3f(1.f,2.f,std::numeric_limits<f32>::quiet_NaN())));
REQUIRE(math::contains_nan(r3f(std::numeric_limits<f32>::infinity(), 1.f,2.f)));
}
}

View File

@@ -156,10 +156,20 @@ TEST_CASE("strfmts") {
" 4.00us");
}
{
REQUIRE(strings::rformat("%0", make_ray2(v2i{1,2},v2i{3,4})) == "(1,2,3,4)");
REQUIRE(strings::rformat("%0", make_ray3(v3i{1,2,3},v3i{4,5,6})) == "(1,2,3,4,5,6)");
REQUIRE(strings::rformat("%0", make_rect(1,2,3,4)) == "(1,2,3,4)");
REQUIRE(strings::rformat("%0", make_quat(1,2,3,4)) == "(1,2,3,4)");
REQUIRE(strings::rformat("%0", make_aabb(1,2,3,4,5,6)) == "(1,2,3,4,5,6)");
REQUIRE(strings::rformat(
"%0",
strings::make_format_arg(make_ray2(v2f{1.f,2.f},v2f{3.f,4.f}), u8(5), u8(2))) == "( 1.00, 2.00, 3.00, 4.00)");
REQUIRE(strings::rformat(
"%0",
strings::make_format_arg(make_ray3(v3f{1.f,2.f,3.f},v3f{4.f,5.f,6.f}), u8(5), u8(2))) == "( 1.00, 2.00, 3.00, 4.00, 5.00, 6.00)");
REQUIRE(strings::rformat(
"%0",
strings::make_format_arg(make_rect(1.f,2.f,3.f,4.f), u8(5), u8(2))) == "( 1.00, 2.00, 3.00, 4.00)");