Добавленные модульные тесты для модулей двумерных и трёхмерных векторов и кватернионов

This commit is contained in:
Andrey Pokidov 2025-02-15 00:48:17 +07:00
parent 7f242c4b63
commit 5754c5747c
17 changed files with 435 additions and 33 deletions

View file

@ -65,6 +65,10 @@
<Option compilerVar="CC" /> <Option compilerVar="CC" />
</Unit> </Unit>
<Unit filename="tests/quaternion/quaternion_is_zero.h" /> <Unit filename="tests/quaternion/quaternion_is_zero.h" />
<Unit filename="tests/quaternion/quaternion_modulus.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="tests/quaternion/quaternion_modulus.h" />
<Unit filename="tests/quaternion/quaternion_reset.c"> <Unit filename="tests/quaternion/quaternion_reset.c">
<Option compilerVar="CC" /> <Option compilerVar="CC" />
</Unit> </Unit>
@ -117,6 +121,10 @@
<Option compilerVar="CC" /> <Option compilerVar="CC" />
</Unit> </Unit>
<Unit filename="tests/vector2/vector2_is_zero.h" /> <Unit filename="tests/vector2/vector2_is_zero.h" />
<Unit filename="tests/vector2/vector2_modulus.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="tests/vector2/vector2_modulus.h" />
<Unit filename="tests/vector2/vector2_reset.c"> <Unit filename="tests/vector2/vector2_reset.c">
<Option compilerVar="CC" /> <Option compilerVar="CC" />
</Unit> </Unit>
@ -145,6 +153,10 @@
<Option compilerVar="CC" /> <Option compilerVar="CC" />
</Unit> </Unit>
<Unit filename="tests/vector3/vector3_is_zero.h" /> <Unit filename="tests/vector3/vector3_is_zero.h" />
<Unit filename="tests/vector3/vector3_modulus.c">
<Option compilerVar="CC" />
</Unit>
<Unit filename="tests/vector3/vector3_modulus.h" />
<Unit filename="tests/vector3/vector3_reset.c"> <Unit filename="tests/vector3/vector3_reset.c">
<Option compilerVar="CC" /> <Option compilerVar="CC" />
</Unit> </Unit>

View file

@ -154,6 +154,7 @@
<ClCompile Include="tests\quaternion\quaternion_copy.c" /> <ClCompile Include="tests\quaternion\quaternion_copy.c" />
<ClCompile Include="tests\quaternion\quaternion_is_unit.c" /> <ClCompile Include="tests\quaternion\quaternion_is_unit.c" />
<ClCompile Include="tests\quaternion\quaternion_is_zero.c" /> <ClCompile Include="tests\quaternion\quaternion_is_zero.c" />
<ClCompile Include="tests\quaternion\quaternion_modulus.c" />
<ClCompile Include="tests\quaternion\quaternion_reset.c" /> <ClCompile Include="tests\quaternion\quaternion_reset.c" />
<ClCompile Include="tests\quaternion\quaternion_set_to_identity.c" /> <ClCompile Include="tests\quaternion\quaternion_set_to_identity.c" />
<ClCompile Include="tests\quaternion\quaternion_set_values.c" /> <ClCompile Include="tests\quaternion\quaternion_set_values.c" />
@ -166,6 +167,7 @@
<ClCompile Include="tests\vector2\vector2_is_unit.c" /> <ClCompile Include="tests\vector2\vector2_is_unit.c" />
<ClCompile Include="tests\vector2\vector2_is_zero.c" /> <ClCompile Include="tests\vector2\vector2_is_zero.c" />
<ClCompile Include="tests\vector2\vector2_copy.c" /> <ClCompile Include="tests\vector2\vector2_copy.c" />
<ClCompile Include="tests\vector2\vector2_modulus.c" />
<ClCompile Include="tests\vector2\vector2_reset.c" /> <ClCompile Include="tests\vector2\vector2_reset.c" />
<ClCompile Include="tests\vector2\vector2_set_values.c" /> <ClCompile Include="tests\vector2\vector2_set_values.c" />
<ClCompile Include="tests\vector2\vector2_swap.c" /> <ClCompile Include="tests\vector2\vector2_swap.c" />
@ -173,6 +175,7 @@
<ClCompile Include="tests\vector3\vector3_is_unit.c" /> <ClCompile Include="tests\vector3\vector3_is_unit.c" />
<ClCompile Include="tests\vector3\vector3_is_zero.c" /> <ClCompile Include="tests\vector3\vector3_is_zero.c" />
<ClCompile Include="tests\vector3\vector3_copy.c" /> <ClCompile Include="tests\vector3\vector3_copy.c" />
<ClCompile Include="tests\vector3\vector3_modulus.c" />
<ClCompile Include="tests\vector3\vector3_swap.c" /> <ClCompile Include="tests\vector3\vector3_swap.c" />
<ClCompile Include="tests\vector3\vector3_reset.c" /> <ClCompile Include="tests\vector3\vector3_reset.c" />
<ClCompile Include="tests\vector3\vector3_set_values.c" /> <ClCompile Include="tests\vector3\vector3_set_values.c" />
@ -191,6 +194,7 @@
<ClInclude Include="tests\quaternion\quaternion_copy.h" /> <ClInclude Include="tests\quaternion\quaternion_copy.h" />
<ClInclude Include="tests\quaternion\quaternion_is_unit.h" /> <ClInclude Include="tests\quaternion\quaternion_is_unit.h" />
<ClInclude Include="tests\quaternion\quaternion_is_zero.h" /> <ClInclude Include="tests\quaternion\quaternion_is_zero.h" />
<ClInclude Include="tests\quaternion\quaternion_modulus.h" />
<ClInclude Include="tests\quaternion\quaternion_reset.h" /> <ClInclude Include="tests\quaternion\quaternion_reset.h" />
<ClInclude Include="tests\quaternion\quaternion_set_to_identity.h" /> <ClInclude Include="tests\quaternion\quaternion_set_to_identity.h" />
<ClInclude Include="tests\quaternion\quaternion_set_values.h" /> <ClInclude Include="tests\quaternion\quaternion_set_values.h" />
@ -203,6 +207,7 @@
<ClInclude Include="tests\vector2\vector2_is_unit.h" /> <ClInclude Include="tests\vector2\vector2_is_unit.h" />
<ClInclude Include="tests\vector2\vector2_is_zero.h" /> <ClInclude Include="tests\vector2\vector2_is_zero.h" />
<ClInclude Include="tests\vector2\vector2_copy.h" /> <ClInclude Include="tests\vector2\vector2_copy.h" />
<ClInclude Include="tests\vector2\vector2_modulus.h" />
<ClInclude Include="tests\vector2\vector2_reset.h" /> <ClInclude Include="tests\vector2\vector2_reset.h" />
<ClInclude Include="tests\vector2\vector2_set_values.h" /> <ClInclude Include="tests\vector2\vector2_set_values.h" />
<ClInclude Include="tests\vector2\vector2_swap.h" /> <ClInclude Include="tests\vector2\vector2_swap.h" />
@ -210,6 +215,7 @@
<ClInclude Include="tests\vector3\vector3_is_unit.h" /> <ClInclude Include="tests\vector3\vector3_is_unit.h" />
<ClInclude Include="tests\vector3\vector3_is_zero.h" /> <ClInclude Include="tests\vector3\vector3_is_zero.h" />
<ClInclude Include="tests\vector3\vector3_copy.h" /> <ClInclude Include="tests\vector3\vector3_copy.h" />
<ClInclude Include="tests\vector3\vector3_modulus.h" />
<ClInclude Include="tests\vector3\vector3_swap.h" /> <ClInclude Include="tests\vector3\vector3_swap.h" />
<ClInclude Include="tests\vector3\vector3_reset.h" /> <ClInclude Include="tests\vector3\vector3_reset.h" />
<ClInclude Include="tests\vector3\vector3_set_values.h" /> <ClInclude Include="tests\vector3\vector3_set_values.h" />

View file

@ -105,6 +105,15 @@
<ClCompile Include="tests\versor\versor_is_identity.c"> <ClCompile Include="tests\versor\versor_is_identity.c">
<Filter>tests\versor</Filter> <Filter>tests\versor</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="tests\vector2\vector2_modulus.c">
<Filter>tests\vector2</Filter>
</ClCompile>
<ClCompile Include="tests\vector3\vector3_modulus.c">
<Filter>tests\vector3</Filter>
</ClCompile>
<ClCompile Include="tests\quaternion\quaternion_modulus.c">
<Filter>tests\quaternion</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="helpers.h" /> <ClInclude Include="helpers.h" />
@ -210,6 +219,15 @@
<ClInclude Include="tests\versor\versor_is_identity.h"> <ClInclude Include="tests\versor\versor_is_identity.h">
<Filter>tests\versor</Filter> <Filter>tests\versor</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="tests\vector2\vector2_modulus.h">
<Filter>tests\vector2</Filter>
</ClInclude>
<ClInclude Include="tests\vector3\vector3_modulus.h">
<Filter>tests\vector3</Filter>
</ClInclude>
<ClInclude Include="tests\quaternion\quaternion_modulus.h">
<Filter>tests\quaternion</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Filter Include="tests"> <Filter Include="tests">

View file

@ -11,4 +11,5 @@ void test_quaternion()
test_quaternion_swap(); test_quaternion_swap();
test_quaternion_is_zero(); test_quaternion_is_zero();
test_quaternion_is_unit(); test_quaternion_is_unit();
test_quaternion_modulus();
} }

View file

@ -9,6 +9,7 @@
#include "./quaternion/quaternion_swap.h" #include "./quaternion/quaternion_swap.h"
#include "./quaternion/quaternion_is_zero.h" #include "./quaternion/quaternion_is_zero.h"
#include "./quaternion/quaternion_is_unit.h" #include "./quaternion/quaternion_is_unit.h"
#include "./quaternion/quaternion_modulus.h"
void test_quaternion(); void test_quaternion();

View file

Internal server error - Personal Git Server: Beyond coding. We Forge.

500

Internal server error

Forgejo version: 11.0.1+gitea-1.22.0

@ -0,0 +1,117 @@
#include "./quaternion_modulus.h"
#include "./../../helpers.h"
// ==================== FP32 ==================== //
static const int _TEST_FP32_QUATERNION_AMOUNT = 4;
static const BgcQuaternionFP32 _TEST_FP32_QUATERNION_LIST[] = {
{ 0.0f, 4.0f, 3.0f, 0.0f },
{ -1.0f, 1.0f, -1.0f, 1.0f },
{ 100.0f, -100.0f, 0.0f, 100.0f },
{ -0.86602540378f, 0.5f, -1.0f, 1.0f }
};
static const float _TEST_FP32_SQUARE_MODULUS_LIST[] = {
25.0f,
4.0f,
30000.0f,
3.0f
};
static const float _TEST_FP32_MODULUS_LIST[] = {
5.0f,
2.0f,
173.20508076f,
1.7320508076f
};
void test_quaternion_square_modulus_fp32()
{
print_testing_name("bgc_quaternion_get_square_modulus_fp32");
for (int i = 0; i < _TEST_FP32_QUATERNION_AMOUNT; i++) {
if (!bgc_are_close_fp32(bgc_quaternion_get_square_modulus_fp32(&_TEST_FP32_QUATERNION_LIST[i]), _TEST_FP32_SQUARE_MODULUS_LIST[i])) {
print_testing_failed();
return;
}
}
print_testing_success();
}
void test_quaternion_modulus_fp32()
{
print_testing_name("bgc_quaternion_get_modulus_fp32");
for (int i = 0; i < _TEST_FP32_QUATERNION_AMOUNT; i++) {
if (!bgc_are_close_fp32(bgc_quaternion_get_modulus_fp32(&_TEST_FP32_QUATERNION_LIST[i]), _TEST_FP32_MODULUS_LIST[i])) {
print_testing_failed();
return;
}
}
print_testing_success();
}
// ==================== FP64 ==================== //
static const int _TEST_FP64_QUATERNION_AMOUNT = 4;
static const BgcQuaternionFP64 _TEST_FP64_QUATERNION_LIST[] = {
{ 0.0, 4.0, 3.0, 0.0 },
{ -1.0, 1.0, -1.0, 1.0 },
{ 100.0, -100.0, 0.0, 100.0 },
{ -0.866025403784438647, 0.5, -1.0, 1.0 }
};
static const double _TEST_FP64_SQUARE_MODULUS_LIST[] = {
25.0,
4.0,
30000.0,
3.0
};
static const double _TEST_FP64_MODULUS_LIST[] = {
5.0,
2.0,
173.20508075688772935,
1.7320508075688772935
};
void test_quaternion_square_modulus_fp64()
{
print_testing_name("bgc_quaternion_get_square_modulus_fp64");
for (int i = 0; i < _TEST_FP64_QUATERNION_AMOUNT; i++) {
if (!bgc_are_close_fp64(bgc_quaternion_get_square_modulus_fp64(&_TEST_FP64_QUATERNION_LIST[i]), _TEST_FP64_SQUARE_MODULUS_LIST[i])) {