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