Move main() and test code for basics to C++
This commit is contained in:
parent
6be100e28a
commit
e8a6099158
4 changed files with 36 additions and 197 deletions
|
@ -1,159 +0,0 @@
|
|||
/* test_basics.c
|
||||
*
|
||||
* Unit tests for the basics module.
|
||||
*
|
||||
* Eryn Wells <eryn@erynwells.me>
|
||||
*/
|
||||
|
||||
#include "basics.h"
|
||||
#include "test_suites.h"
|
||||
|
||||
|
||||
START_TEST(test_vector_init)
|
||||
{
|
||||
Vector3 v = vector_init(1, 2, 3);
|
||||
ck_assert(v.x == 1.0);
|
||||
ck_assert(v.y == 2.0);
|
||||
ck_assert(v.z == 3.0);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
|
||||
START_TEST(test_vector_add_vector)
|
||||
{
|
||||
Vector3 v, a, sum;
|
||||
|
||||
v = vector_init(1, 2, 3);
|
||||
|
||||
a = vector_init(4, 5, 6);
|
||||
sum = vector_add_vector(v, a);
|
||||
ck_assert(sum.x == 5);
|
||||
ck_assert(sum.y == 7);
|
||||
ck_assert(sum.z == 9);
|
||||
|
||||
a = vector_init(0, 0, 0);
|
||||
sum = vector_add_vector(v, a);
|
||||
ck_assert(sum.x == v.x);
|
||||
ck_assert(sum.y == v.y);
|
||||
ck_assert(sum.z == v.z);
|
||||
|
||||
a = vector_init(-3, -7, -13);
|
||||
sum = vector_add_vector(v, a);
|
||||
ck_assert(sum.x == -2);
|
||||
ck_assert(sum.y == -5);
|
||||
ck_assert(sum.z == -10);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
|
||||
START_TEST(test_vector_mul_scalar)
|
||||
{
|
||||
Vector3 v, p;
|
||||
|
||||
v = vector_init(1, 2, 3);
|
||||
|
||||
p = vector_mul_scalar(v, 7);
|
||||
ck_assert(p.x == 7);
|
||||
ck_assert(p.y == 14);
|
||||
ck_assert(p.z == 21);
|
||||
|
||||
p = vector_mul_scalar(v, 0);
|
||||
ck_assert(p.x == 0);
|
||||
ck_assert(p.y == 0);
|
||||
ck_assert(p.z == 0);
|
||||
|
||||
p = vector_mul_scalar(v, -13);
|
||||
ck_assert(p.x == -13);
|
||||
ck_assert(p.y == -26);
|
||||
ck_assert(p.z == -39);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
|
||||
START_TEST(test_vector_sub_vector)
|
||||
{
|
||||
Vector3 v, s, diff;
|
||||
|
||||
v = vector_init(1, 2, 3);
|
||||
|
||||
s = vector_init(4, 5, 6);
|
||||
diff = vector_sub_vector(v, s);
|
||||
ck_assert(diff.x == -3);
|
||||
ck_assert(diff.y == -3);
|
||||
ck_assert(diff.z == -3);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
|
||||
START_TEST(test_vector_negate)
|
||||
{
|
||||
Vector3 v, neg;
|
||||
|
||||
v = vector_init(1, 2, 3);
|
||||
neg = vector_negate(v);
|
||||
ck_assert(neg.x == -1);
|
||||
ck_assert(neg.y == -2);
|
||||
ck_assert(neg.z == -3);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
|
||||
START_TEST(test_vector_length2)
|
||||
{
|
||||
Vector3 v = vector_init(2, 2, 1);
|
||||
ck_assert(vector_length2(v) == 9.0);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
|
||||
START_TEST(test_vector_length)
|
||||
{
|
||||
Vector3 v = vector_init(2, 2, 1);
|
||||
ck_assert(vector_length(v) == 3.0);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
|
||||
START_TEST(test_vector_dot)
|
||||
{
|
||||
Vector3 a = vector_init(1, 1, 1);
|
||||
Vector3 b = vector_init(1, 1, 1);
|
||||
ck_assert(vector_dot(a, b) == 3.0);
|
||||
|
||||
a = vector_init(3, 5, 7);
|
||||
b = vector_init(7, 3, 5);
|
||||
ck_assert(vector_dot(a, b) == 71.0);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
|
||||
START_TEST(test_vector_normalize)
|
||||
{
|
||||
Vector3 v = vector_init(1, 0, 0);
|
||||
Vector3 norm_v = vector_normalize(v);
|
||||
ck_assert(v.x == norm_v.x);
|
||||
ck_assert(v.y == norm_v.y);
|
||||
ck_assert(v.z == norm_v.z);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
|
||||
Suite *
|
||||
test_basics_create_suite()
|
||||
{
|
||||
Suite *s = suite_create("basics");
|
||||
|
||||
TCase *tc_vector = tcase_create("vector");
|
||||
tcase_add_test(tc_vector, test_vector_init);
|
||||
tcase_add_test(tc_vector, test_vector_add_vector);
|
||||
tcase_add_test(tc_vector, test_vector_mul_scalar);
|
||||
tcase_add_test(tc_vector, test_vector_sub_vector);
|
||||
tcase_add_test(tc_vector, test_vector_negate);
|
||||
tcase_add_test(tc_vector, test_vector_length2);
|
||||
tcase_add_test(tc_vector, test_vector_length);
|
||||
tcase_add_test(tc_vector, test_vector_dot);
|
||||
tcase_add_test(tc_vector, test_vector_normalize);
|
||||
suite_add_tcase(s, tc_vector);
|
||||
|
||||
return s;
|
||||
}
|
20
test/test_basics.cc
Normal file
20
test/test_basics.cc
Normal file
|
@ -0,0 +1,20 @@
|
|||
/* test_basics.c
|
||||
*
|
||||
* Unit tests for the basics module.
|
||||
*
|
||||
* Eryn Wells <eryn@erynwells.me>
|
||||
*/
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
#include "basics.h"
|
||||
|
||||
|
||||
TEST(Vector3Test, OperatorAdd)
|
||||
{
|
||||
Vector3 v1(3, 2, 1), v2(4, 5, 6);
|
||||
Vector3 sum = v1 + v2;
|
||||
EXPECT_EQ(7, sum.x);
|
||||
EXPECT_EQ(7, sum.y);
|
||||
EXPECT_EQ(7, sum.z);
|
||||
}
|
|
@ -1,38 +0,0 @@
|
|||
/* test_charles.c
|
||||
*
|
||||
* Entry point for charles unit tests.
|
||||
*
|
||||
* Eryn Wells <eryn@erynwells.me>
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <check.h>
|
||||
#include "test_suites.h"
|
||||
|
||||
typedef Suite *(*SuiteCreator)();
|
||||
|
||||
SuiteCreator suite_creators[] = {
|
||||
test_basics_create_suite,
|
||||
test_object_create_suite,
|
||||
};
|
||||
|
||||
|
||||
int
|
||||
main(int argc, const char *argv[])
|
||||
{
|
||||
SRunner *runner = srunner_create(NULL);
|
||||
|
||||
// Creat the suites and add them to the runner.
|
||||
int ncreators = sizeof(suite_creators) / sizeof(SuiteCreator);
|
||||
for (int i = 0; i < ncreators; i++) {
|
||||
srunner_add_suite(runner, suite_creators[i]());
|
||||
}
|
||||
|
||||
// Run ALL the tests!
|
||||
srunner_run_all(runner, CK_VERBOSE);
|
||||
int nfailed = srunner_ntests_failed(runner);
|
||||
|
||||
srunner_free(runner);
|
||||
return (nfailed == 0) ? EXIT_SUCCESS : EXIT_FAILURE;
|
||||
}
|
16
test/test_charles.cc
Normal file
16
test/test_charles.cc
Normal file
|
@ -0,0 +1,16 @@
|
|||
/* test_charles.cc
|
||||
*
|
||||
* Entry point for Charles unit tests.
|
||||
*
|
||||
* Eryn Wells <eryn@erynwells.me>
|
||||
*/
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
::testing::InitGoogleTest(&argc, argv);
|
||||
return RUN_ALL_TESTS();
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue