From e8a609915867c3f264f100cfbdbbf1a40613b8f7 Mon Sep 17 00:00:00 2001 From: Eryn Wells Date: Thu, 12 Sep 2013 16:16:29 -0700 Subject: [PATCH] Move main() and test code for basics to C++ --- test/test_basics.c | 159 ------------------------------------------- test/test_basics.cc | 20 ++++++ test/test_charles.c | 38 ----------- test/test_charles.cc | 16 +++++ 4 files changed, 36 insertions(+), 197 deletions(-) delete mode 100644 test/test_basics.c create mode 100644 test/test_basics.cc delete mode 100644 test/test_charles.c create mode 100644 test/test_charles.cc diff --git a/test/test_basics.c b/test/test_basics.c deleted file mode 100644 index d745e62..0000000 --- a/test/test_basics.c +++ /dev/null @@ -1,159 +0,0 @@ -/* test_basics.c - * - * Unit tests for the basics module. - * - * Eryn Wells - */ - -#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; -} diff --git a/test/test_basics.cc b/test/test_basics.cc new file mode 100644 index 0000000..1562e21 --- /dev/null +++ b/test/test_basics.cc @@ -0,0 +1,20 @@ +/* test_basics.c + * + * Unit tests for the basics module. + * + * Eryn Wells + */ + +#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); +} diff --git a/test/test_charles.c b/test/test_charles.c deleted file mode 100644 index d5f0ff9..0000000 --- a/test/test_charles.c +++ /dev/null @@ -1,38 +0,0 @@ -/* test_charles.c - * - * Entry point for charles unit tests. - * - * Eryn Wells - */ - -#include -#include -#include -#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; -} diff --git a/test/test_charles.cc b/test/test_charles.cc new file mode 100644 index 0000000..afe2081 --- /dev/null +++ b/test/test_charles.cc @@ -0,0 +1,16 @@ +/* test_charles.cc + * + * Entry point for Charles unit tests. + * + * Eryn Wells + */ + +#include "gtest/gtest.h" + + +int +main(int argc, char *argv[]) +{ + ::testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +}