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