mirror of
https://github.com/BlackMATov/vmath.hpp.git
synced 2025-12-16 22:19:51 +07:00
replace catch2 to embedded doctest
This commit is contained in:
@@ -1,3 +1,2 @@
|
||||
ignore:
|
||||
- "*_tests.cpp"
|
||||
- "*_examples.cpp"
|
||||
|
||||
@@ -11,7 +11,7 @@ lcov -d . -z
|
||||
ctest --verbose
|
||||
|
||||
lcov -d . -c -o "coverage.info"
|
||||
lcov -r "coverage.info" "*/usr/*" "*/catch.hpp" "*/catch_main.cpp" "*_tests.cpp" "*_examples.cpp" -o "coverage.info"
|
||||
lcov -r "coverage.info" "*/usr/*" "*/doctest.h" "*_tests.cpp" -o "coverage.info"
|
||||
lcov -l "coverage.info"
|
||||
|
||||
bash <(curl -s https://codecov.io/bash) || echo "Codecov did not collect coverage reports"
|
||||
|
||||
@@ -1,6 +1,3 @@
|
||||
# 3.11 version is required for `FetchContent`
|
||||
cmake_minimum_required(VERSION 3.11 FATAL_ERROR)
|
||||
|
||||
project(vmath.hpp.untests)
|
||||
|
||||
#
|
||||
@@ -32,20 +29,3 @@ target_compile_options(${PROJECT_NAME}
|
||||
-Wall -Wextra -Wpedantic>)
|
||||
|
||||
add_test(${PROJECT_NAME} ${PROJECT_NAME})
|
||||
|
||||
#
|
||||
# catchorg/catch2
|
||||
#
|
||||
|
||||
include(FetchContent)
|
||||
FetchContent_Declare(
|
||||
catchorg_catch2
|
||||
GIT_REPOSITORY https://github.com/catchorg/catch2
|
||||
GIT_TAG v2.13.2)
|
||||
|
||||
FetchContent_GetProperties(catchorg_catch2)
|
||||
if(NOT catchorg_catch2_POPULATED)
|
||||
FetchContent_Populate(catchorg_catch2)
|
||||
target_include_directories(${PROJECT_NAME}
|
||||
PRIVATE ${catchorg_catch2_SOURCE_DIR}/single_include)
|
||||
endif()
|
||||
|
||||
6260
untests/doctest/doctest.h
Normal file
6260
untests/doctest/doctest.h
Normal file
File diff suppressed because it is too large
Load Diff
@@ -1,18 +0,0 @@
|
||||
/*******************************************************************************
|
||||
* This file is part of the "https://github.com/blackmatov/vmath.hpp"
|
||||
* For conditions of distribution and use, see copyright notice in LICENSE.md
|
||||
* Copyright (C) 2020, by Matvey Cherevko (blackmatov@gmail.com)
|
||||
******************************************************************************/
|
||||
|
||||
#define CATCH_CONFIG_FAST_COMPILE
|
||||
#include <catch2/catch.hpp>
|
||||
|
||||
#include <vmath.hpp/vmath.hpp>
|
||||
|
||||
namespace
|
||||
{
|
||||
}
|
||||
|
||||
TEST_CASE("examples") {
|
||||
REQUIRE(true);
|
||||
}
|
||||
@@ -6,9 +6,7 @@
|
||||
|
||||
#include <vmath.hpp/vmath_ext.hpp>
|
||||
|
||||
#define CATCH_CONFIG_FAST_COMPILE
|
||||
#include <catch2/catch.hpp>
|
||||
|
||||
#include "doctest/doctest.h"
|
||||
#include "vmath_tests.hpp"
|
||||
|
||||
#include <set>
|
||||
@@ -23,7 +21,7 @@ namespace
|
||||
}
|
||||
|
||||
TEST_CASE("vmath/ext") {
|
||||
SECTION("units") {
|
||||
SUBCASE("units") {
|
||||
STATIC_REQUIRE(zero2<int> == int2(0,0));
|
||||
STATIC_REQUIRE(zero3<int> == int3(0,0,0));
|
||||
STATIC_REQUIRE(zero4<int> == int4(0,0,0,0));
|
||||
@@ -56,7 +54,7 @@ TEST_CASE("vmath/ext") {
|
||||
STATIC_REQUIRE(identity4x4<int> == int4x4());
|
||||
}
|
||||
|
||||
SECTION("hash") {
|
||||
SUBCASE("hash") {
|
||||
REQUIRE(std::hash<int2>{}({1,2}) == std::hash<int2>{}({1,2}));
|
||||
REQUIRE_FALSE(std::hash<int2>{}({1,2}) == std::hash<int2>{}({2,1}));
|
||||
|
||||
@@ -96,7 +94,7 @@ TEST_CASE("vmath/ext") {
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("cast_to") {
|
||||
SUBCASE("cast_to") {
|
||||
{
|
||||
constexpr auto i = cast_to<int>(1.5f);
|
||||
STATIC_REQUIRE(i == 1);
|
||||
@@ -114,7 +112,7 @@ TEST_CASE("vmath/ext") {
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("component") {
|
||||
SUBCASE("component") {
|
||||
STATIC_REQUIRE(component(int2{1,2}, 0) == 1);
|
||||
STATIC_REQUIRE(component(int2{1,2}, 1) == 2);
|
||||
|
||||
@@ -122,7 +120,7 @@ TEST_CASE("vmath/ext") {
|
||||
STATIC_REQUIRE(component(int2{0,0}, 1, 2) == int2{0,2});
|
||||
}
|
||||
|
||||
SECTION("row") {
|
||||
SUBCASE("row") {
|
||||
STATIC_REQUIRE(row(int2x2(1,2,3,4), 0) == int2(1,2));
|
||||
STATIC_REQUIRE(row(int2x2(1,2,3,4), 1) == int2(3,4));
|
||||
|
||||
@@ -130,7 +128,7 @@ TEST_CASE("vmath/ext") {
|
||||
STATIC_REQUIRE(row(int2x2(), 1, {3,4}) == int2x2(1,0,3,4));
|
||||
}
|
||||
|
||||
SECTION("column") {
|
||||
SUBCASE("column") {
|
||||
STATIC_REQUIRE(column(int2x2(1,2,3,4), 0) == int2(1,3));
|
||||
STATIC_REQUIRE(column(int2x2(1,2,3,4), 1) == int2(2,4));
|
||||
|
||||
@@ -138,7 +136,7 @@ TEST_CASE("vmath/ext") {
|
||||
STATIC_REQUIRE(column(int2x2(), 1, {3,4}) == int2x2(1,3,0,4));
|
||||
}
|
||||
|
||||
SECTION("matrix translate") {
|
||||
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));
|
||||
|
||||
@@ -146,7 +144,7 @@ TEST_CASE("vmath/ext") {
|
||||
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));
|
||||
}
|
||||
|
||||
SECTION("matrix rotate") {
|
||||
SUBCASE("matrix rotate") {
|
||||
constexpr float pi = radians(180.f);
|
||||
constexpr float pi_2 = radians(90.f);
|
||||
|
||||
@@ -159,7 +157,7 @@ TEST_CASE("vmath/ext") {
|
||||
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));
|
||||
}
|
||||
|
||||
SECTION("matrix scale") {
|
||||
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));
|
||||
@@ -169,7 +167,7 @@ TEST_CASE("vmath/ext") {
|
||||
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));
|
||||
}
|
||||
|
||||
SECTION("matrix shear") {
|
||||
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));
|
||||
@@ -185,7 +183,7 @@ TEST_CASE("vmath/ext") {
|
||||
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));
|
||||
}
|
||||
|
||||
SECTION("matrix look_at") {
|
||||
SUBCASE("matrix look_at") {
|
||||
(void)look_at_lh(float3(-10.f), float3(0.f), float3(0,-1,0));
|
||||
(void)look_at_rh(float3(-10.f), float3(0.f), float3(0,-1,0));
|
||||
|
||||
@@ -200,16 +198,16 @@ TEST_CASE("vmath/ext") {
|
||||
(void)perspective_rh_no(1.f, 1.3f, 0.f, 10.f);
|
||||
}
|
||||
|
||||
SECTION("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)));
|
||||
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)));
|
||||
}
|
||||
|
||||
SECTION("vector rotate") {
|
||||
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));
|
||||
|
||||
|
||||
@@ -6,9 +6,7 @@
|
||||
|
||||
#include <vmath.hpp/vmath_fun.hpp>
|
||||
|
||||
#define CATCH_CONFIG_FAST_COMPILE
|
||||
#include <catch2/catch.hpp>
|
||||
|
||||
#include "doctest/doctest.h"
|
||||
#include "vmath_tests.hpp"
|
||||
|
||||
namespace
|
||||
@@ -18,7 +16,7 @@ namespace
|
||||
}
|
||||
|
||||
TEST_CASE("vmath/fun") {
|
||||
SECTION("Angle and Trigonometry Functions") {
|
||||
SUBCASE("Angle and Trigonometry Functions") {
|
||||
STATIC_REQUIRE(radians(degrees(12.13f)) == approx(12.13f));
|
||||
STATIC_REQUIRE(degrees(radians(12.13f)) == approx(12.13f));
|
||||
|
||||
@@ -40,7 +38,7 @@ TEST_CASE("vmath/fun") {
|
||||
(void)atanh(0.f);
|
||||
}
|
||||
|
||||
SECTION("Exponential Functions") {
|
||||
SUBCASE("Exponential Functions") {
|
||||
(void)pow(2.f, 3.f);
|
||||
(void)exp(2.f);
|
||||
(void)log(2.f);
|
||||
@@ -50,7 +48,7 @@ TEST_CASE("vmath/fun") {
|
||||
(void)rsqrt(2.f);
|
||||
}
|
||||
|
||||
SECTION("Common Functions") {
|
||||
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));
|
||||
@@ -113,7 +111,7 @@ TEST_CASE("vmath/fun") {
|
||||
REQUIRE(ldexp(0.85f, 1) == approx(1.7f));
|
||||
}
|
||||
|
||||
SECTION("Geometric Functions") {
|
||||
SUBCASE("Geometric Functions") {
|
||||
STATIC_REQUIRE(length(10.f) == approx(10.f));
|
||||
STATIC_REQUIRE(length(-10.f) == approx(10.f));
|
||||
|
||||
@@ -134,7 +132,7 @@ TEST_CASE("vmath/fun") {
|
||||
REQUIRE(refract(1.f, 2.f, 1.f) == approx(-7.f));
|
||||
}
|
||||
|
||||
SECTION("Scalar Relational Functions") {
|
||||
SUBCASE("Scalar Relational Functions") {
|
||||
STATIC_REQUIRE(less(0, 1));
|
||||
STATIC_REQUIRE(less_equal(0, 1));
|
||||
STATIC_REQUIRE_FALSE(less(1, 1));
|
||||
|
||||
@@ -6,9 +6,7 @@
|
||||
|
||||
#include <vmath.hpp/vmath_ext.hpp>
|
||||
|
||||
#define CATCH_CONFIG_FAST_COMPILE
|
||||
#include <catch2/catch.hpp>
|
||||
|
||||
#include "doctest/doctest.h"
|
||||
#include "vmath_tests.hpp"
|
||||
|
||||
namespace
|
||||
@@ -35,7 +33,7 @@ namespace
|
||||
}
|
||||
|
||||
TEST_CASE("vmath/mat_fun") {
|
||||
SECTION("detail") {
|
||||
SUBCASE("detail") {
|
||||
STATIC_REQUIRE(map([](const int2& x){
|
||||
return x * 2;
|
||||
}, int2x2{}) == int2x2(2,0,0,2));
|
||||
@@ -61,7 +59,7 @@ TEST_CASE("vmath/mat_fun") {
|
||||
}, int2x2{}) == int2(1,1));
|
||||
}
|
||||
|
||||
SECTION("operators") {
|
||||
SUBCASE("operators") {
|
||||
STATIC_REQUIRE(-int2x2(1,2,3,4) == int2x2(-1,-2,-3,-4));
|
||||
|
||||
STATIC_REQUIRE(int2x2(1,2,3,4) + 2 == int2x2(3,4,5,6));
|
||||
@@ -134,7 +132,7 @@ TEST_CASE("vmath/mat_fun") {
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("transpose") {
|
||||
SUBCASE("transpose") {
|
||||
STATIC_REQUIRE(transpose(int2x2(
|
||||
1, 2,
|
||||
3, 4
|
||||
@@ -166,7 +164,7 @@ TEST_CASE("vmath/mat_fun") {
|
||||
));
|
||||
}
|
||||
|
||||
SECTION("determinant") {
|
||||
SUBCASE("determinant") {
|
||||
constexpr int2x2 m2{1,2,3,4};
|
||||
constexpr int3x3 m3{1,2,3,4,5,6,7,8,9};
|
||||
constexpr int4x4 m4{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
|
||||
@@ -183,7 +181,7 @@ TEST_CASE("vmath/mat_fun") {
|
||||
STATIC_REQUIRE(determinant(transpose(generate_frank_matrix<int, 4>())) == 1);
|
||||
}
|
||||
|
||||
SECTION("inverse") {
|
||||
SUBCASE("inverse") {
|
||||
STATIC_REQUIRE(inverse(float2x2()) == float2x2());
|
||||
STATIC_REQUIRE(inverse(float3x3()) == float3x3());
|
||||
STATIC_REQUIRE(inverse(float4x4()) == float4x4());
|
||||
|
||||
@@ -7,9 +7,7 @@
|
||||
#include <vmath.hpp/vmath_mat.hpp>
|
||||
#include <vmath.hpp/vmath_mat_fun.hpp>
|
||||
|
||||
#define CATCH_CONFIG_FAST_COMPILE
|
||||
#include <catch2/catch.hpp>
|
||||
|
||||
#include "doctest/doctest.h"
|
||||
#include "vmath_tests.hpp"
|
||||
|
||||
namespace
|
||||
@@ -19,7 +17,7 @@ namespace
|
||||
}
|
||||
|
||||
TEST_CASE("vmath/mat") {
|
||||
SECTION("size/sizeof") {
|
||||
SUBCASE("size/sizeof") {
|
||||
STATIC_REQUIRE(int2x2{}.size == 2);
|
||||
STATIC_REQUIRE(int3x3{}.size == 3);
|
||||
STATIC_REQUIRE(int4x4{}.size == 4);
|
||||
@@ -29,7 +27,7 @@ TEST_CASE("vmath/mat") {
|
||||
STATIC_REQUIRE(sizeof(int4x4{}) == sizeof(int) * 4 * 4);
|
||||
}
|
||||
|
||||
SECTION("ctors") {
|
||||
SUBCASE("ctors") {
|
||||
{
|
||||
STATIC_REQUIRE(int2x2()[0] == int2(1,0));
|
||||
STATIC_REQUIRE(int2x2()[1] == int2(0,1));
|
||||
@@ -77,7 +75,7 @@ TEST_CASE("vmath/mat") {
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("operator=") {
|
||||
SUBCASE("operator=") {
|
||||
{
|
||||
int2x2 v(1,2,3,4);
|
||||
int2x2 v2;
|
||||
@@ -92,7 +90,7 @@ TEST_CASE("vmath/mat") {
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("swap") {
|
||||
SUBCASE("swap") {
|
||||
{
|
||||
int2x2 v1(1,2,3,4);
|
||||
int2x2 v2(4,5,6,7);
|
||||
@@ -109,7 +107,7 @@ TEST_CASE("vmath/mat") {
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("operator[]") {
|
||||
SUBCASE("operator[]") {
|
||||
{
|
||||
STATIC_REQUIRE(int2x2()[0] == int2(1,0));
|
||||
STATIC_REQUIRE(int2x2()[1] == int2(0,1));
|
||||
@@ -146,13 +144,13 @@ TEST_CASE("vmath/mat") {
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("at") {
|
||||
SUBCASE("at") {
|
||||
STATIC_REQUIRE(int2x2(1,2,3,4).at(0) == int2(1,2));
|
||||
STATIC_REQUIRE(int2x2(1,2,3,4).at(1) == int2(3,4));
|
||||
REQUIRE_THROWS_AS(int2x2(1,2,3,4).at(2), std::out_of_range);
|
||||
REQUIRE_THROWS_AS((void)int2x2(1,2,3,4).at(2), std::out_of_range);
|
||||
}
|
||||
|
||||
SECTION("operator==/operator!=") {
|
||||
SUBCASE("operator==/operator!=") {
|
||||
STATIC_REQUIRE(int2x2(1,2,3,4) == int2x2(1,2,3,4));
|
||||
STATIC_REQUIRE_FALSE(int2x2(1,2,3,4) == int2x2(2,2,3,4));
|
||||
STATIC_REQUIRE_FALSE(int2x2(1,2,3,4) == int2x2(1,3,3,4));
|
||||
@@ -162,7 +160,7 @@ TEST_CASE("vmath/mat") {
|
||||
STATIC_REQUIRE(int2x2(1,2,3,4) != int2x2(1,3,3,4));
|
||||
}
|
||||
|
||||
SECTION("operator<") {
|
||||
SUBCASE("operator<") {
|
||||
STATIC_REQUIRE_FALSE(int2x2(1,2,3,4) < int2x2(1,2,3,4));
|
||||
|
||||
STATIC_REQUIRE(int2x2(1,1,3,4) < int2x2(1,2,3,4));
|
||||
|
||||
@@ -4,6 +4,5 @@
|
||||
* Copyright (C) 2020, by Matvey Cherevko (blackmatov@gmail.com)
|
||||
******************************************************************************/
|
||||
|
||||
#define CATCH_CONFIG_MAIN
|
||||
#define CATCH_CONFIG_FAST_COMPILE
|
||||
#include <catch2/catch.hpp>
|
||||
#define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
|
||||
#include "doctest/doctest.h"
|
||||
@@ -7,8 +7,19 @@
|
||||
#include <vmath.hpp/vmath_vec.hpp>
|
||||
#include <vmath.hpp/vmath_vec_fun.hpp>
|
||||
|
||||
#include <vmath.hpp/vmath_mat.hpp>
|
||||
#include <vmath.hpp/vmath_mat_fun.hpp>
|
||||
|
||||
#include <limits>
|
||||
|
||||
#define STATIC_REQUIRE(...)\
|
||||
static_assert(__VA_ARGS__, #__VA_ARGS__);\
|
||||
REQUIRE(__VA_ARGS__);
|
||||
|
||||
#define STATIC_REQUIRE_FALSE(...)\
|
||||
static_assert(!(__VA_ARGS__), "!(" #__VA_ARGS__ ")");\
|
||||
REQUIRE(!(__VA_ARGS__));
|
||||
|
||||
namespace vmath_tests
|
||||
{
|
||||
using namespace vmath_hpp;
|
||||
|
||||
@@ -6,9 +6,7 @@
|
||||
|
||||
#include <vmath.hpp/vmath_ext.hpp>
|
||||
|
||||
#define CATCH_CONFIG_FAST_COMPILE
|
||||
#include <catch2/catch.hpp>
|
||||
|
||||
#include "doctest/doctest.h"
|
||||
#include "vmath_tests.hpp"
|
||||
|
||||
namespace
|
||||
@@ -18,7 +16,7 @@ namespace
|
||||
}
|
||||
|
||||
TEST_CASE("vmath/vec_fun") {
|
||||
SECTION("Detail") {
|
||||
SUBCASE("Detail") {
|
||||
STATIC_REQUIRE(map([](const int& x){
|
||||
return x * 2;
|
||||
}, int2{1}) == int2{2});
|
||||
@@ -44,7 +42,7 @@ TEST_CASE("vmath/vec_fun") {
|
||||
}, int2{1}) == 2);
|
||||
}
|
||||
|
||||
SECTION("Operators") {
|
||||
SUBCASE("Operators") {
|
||||
STATIC_REQUIRE(-int2(1,-2) == int2(-1,2));
|
||||
|
||||
STATIC_REQUIRE(int2(1,2) + 3 == int2(4,5));
|
||||
@@ -92,7 +90,7 @@ TEST_CASE("vmath/vec_fun") {
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("Angle and Trigonometry Functions") {
|
||||
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));
|
||||
|
||||
@@ -114,7 +112,7 @@ TEST_CASE("vmath/vec_fun") {
|
||||
(void)atanh(float2(1.f));
|
||||
}
|
||||
|
||||
SECTION("Exponential Functions") {
|
||||
SUBCASE("Exponential Functions") {
|
||||
(void)pow(float2(1.f), float2(2.f));
|
||||
(void)exp(float2(1.f));
|
||||
(void)log(float2(1.f));
|
||||
@@ -124,7 +122,7 @@ TEST_CASE("vmath/vec_fun") {
|
||||
(void)rsqrt(float2(1.f));
|
||||
}
|
||||
|
||||
SECTION("Common Functions") {
|
||||
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));
|
||||
@@ -141,7 +139,7 @@ TEST_CASE("vmath/vec_fun") {
|
||||
{
|
||||
float2 out_i{};
|
||||
REQUIRE(modf(float2(1.7f), &out_i) == approx2(0.7f));
|
||||
REQUIRE(out_i.x == Approx(1.f));
|
||||
REQUIRE(out_i.x == approx(1.f));
|
||||
}
|
||||
|
||||
STATIC_REQUIRE(min(int2(1,2)) == 1);
|
||||
@@ -172,26 +170,26 @@ TEST_CASE("vmath/vec_fun") {
|
||||
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 == approx(12.f));
|
||||
|
||||
{
|
||||
int2 out_exp{};
|
||||
REQUIRE(frexp(float2(1.7f), &out_exp).x == Approx(0.85f));
|
||||
REQUIRE(frexp(float2(1.7f), &out_exp).x == approx(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 == approx(1.7f));
|
||||
}
|
||||
|
||||
SECTION("Geometric Functions") {
|
||||
REQUIRE(length(float2(10.f,0.f)) == Approx(10.f));
|
||||
REQUIRE(length(float2(-10.f,0.f)) == Approx(10.f));
|
||||
SUBCASE("Geometric Functions") {
|
||||
REQUIRE(length(float2(10.f,0.f)) == approx(10.f));
|
||||
REQUIRE(length(float2(-10.f,0.f)) == approx(10.f));
|
||||
|
||||
STATIC_REQUIRE(length2(float2(10.f,0.f)) == approx(100.f));
|
||||
STATIC_REQUIRE(length2(float2(-10.f,0.f)) == approx(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)) == approx(5.f));
|
||||
REQUIRE(distance(float2(-5.f,0.f), float2(-10.f,0.f)) == approx(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));
|
||||
@@ -199,14 +197,14 @@ TEST_CASE("vmath/vec_fun") {
|
||||
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 == approx(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));
|
||||
REQUIRE(refract(float2(1.f), float2(2.f), 1.f).x == approx(-15.f));
|
||||
}
|
||||
|
||||
SECTION("Vector Relational Functions") {
|
||||
SUBCASE("Vector Relational Functions") {
|
||||
STATIC_REQUIRE(less(int3(1,1,1), int3(0,1,2)) == bool3(false, false, true));
|
||||
STATIC_REQUIRE(less_equal(int3(1,1,1), int3(0,1,2)) == bool3(false, true, true));
|
||||
|
||||
|
||||
@@ -7,9 +7,7 @@
|
||||
#include <vmath.hpp/vmath_vec.hpp>
|
||||
#include <vmath.hpp/vmath_vec_fun.hpp>
|
||||
|
||||
#define CATCH_CONFIG_FAST_COMPILE
|
||||
#include <catch2/catch.hpp>
|
||||
|
||||
#include "doctest/doctest.h"
|
||||
#include "vmath_tests.hpp"
|
||||
|
||||
namespace
|
||||
@@ -19,7 +17,7 @@ namespace
|
||||
}
|
||||
|
||||
TEST_CASE("vmath/vec") {
|
||||
SECTION("size/sizeof") {
|
||||
SUBCASE("size/sizeof") {
|
||||
STATIC_REQUIRE(int2{}.size == 2);
|
||||
STATIC_REQUIRE(int3{}.size == 3);
|
||||
STATIC_REQUIRE(int4{}.size == 4);
|
||||
@@ -29,7 +27,7 @@ TEST_CASE("vmath/vec") {
|
||||
STATIC_REQUIRE(sizeof(int4{}) == sizeof(int) * 4);
|
||||
}
|
||||
|
||||
SECTION("ctors") {
|
||||
SUBCASE("ctors") {
|
||||
{
|
||||
STATIC_REQUIRE(int2().x == 0);
|
||||
STATIC_REQUIRE(int2().y == 0);
|
||||
@@ -75,7 +73,7 @@ TEST_CASE("vmath/vec") {
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("operator=") {
|
||||
SUBCASE("operator=") {
|
||||
{
|
||||
int2 v(1,2);
|
||||
int2 v2;
|
||||
@@ -90,7 +88,7 @@ TEST_CASE("vmath/vec") {
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("swap") {
|
||||
SUBCASE("swap") {
|
||||
{
|
||||
int2 v1(1,2);
|
||||
int2 v2(4,5);
|
||||
@@ -107,7 +105,7 @@ TEST_CASE("vmath/vec") {
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("operator[]") {
|
||||
SUBCASE("operator[]") {
|
||||
{
|
||||
STATIC_REQUIRE(int2(1,2).x == 1);
|
||||
STATIC_REQUIRE(int2(1,2).y == 2);
|
||||
@@ -148,13 +146,13 @@ TEST_CASE("vmath/vec") {
|
||||
}
|
||||
}
|
||||
|
||||
SECTION("at") {
|
||||
SUBCASE("at") {
|
||||
STATIC_REQUIRE(int2(1,2).at(0) == 1);
|
||||
STATIC_REQUIRE(int2(1,2).at(1) == 2);
|
||||
REQUIRE_THROWS_AS(int2(1,2).at(2), std::out_of_range);
|
||||
REQUIRE_THROWS_AS((void)int2(1,2).at(2), std::out_of_range);
|
||||
}
|
||||
|
||||
SECTION("operator==/operator!=") {
|
||||
SUBCASE("operator==/operator!=") {
|
||||
STATIC_REQUIRE(int2(1,2) == int2(1,2));
|
||||
STATIC_REQUIRE_FALSE(int2(1,2) == int2(2,2));
|
||||
STATIC_REQUIRE_FALSE(int2(1,2) == int2(1,3));
|
||||
@@ -164,7 +162,7 @@ TEST_CASE("vmath/vec") {
|
||||
STATIC_REQUIRE(int2(1,2) != int2(1,3));
|
||||
}
|
||||
|
||||
SECTION("operator<") {
|
||||
SUBCASE("operator<") {
|
||||
STATIC_REQUIRE_FALSE(int2(1,2) < int2(1,2));
|
||||
|
||||
STATIC_REQUIRE(int2(1,1) < int2(1,2));
|
||||
|
||||
Reference in New Issue
Block a user