diff options
-rw-r--r-- | CMakeLists.txt | 6 | ||||
-rw-r--r-- | test/particlebodytest.cpp | 29 | ||||
-rw-r--r-- | test/rigidbodytest.cpp | 29 | ||||
-rw-r--r-- | test/testbench.cpp | 77 | ||||
-rw-r--r-- | test/testbench.hpp | 40 |
5 files changed, 34 insertions, 147 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index d9a69a05..b948be9e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,4 +78,8 @@ enable_testing() add_executable(matrixtest ${YAGE_TEST_DIR}/matrixtest.cpp) target_link_libraries(matrixtest gtest_main ${YAGE_LIB_DEP_L}) -add_test(NAME matrixtest COMMAND matrixtest --gtest_repeat=1000 --gtest_break_on_failure) +add_test(NAME MatrixTest COMMAND matrixtest --gtest_repeat=1000 --gtest_break_on_failure) + +add_executable(particlebodytest ${YAGE_TEST_DIR}/particlebodytest.cpp) +target_link_libraries(particlebodytest gtest_main ${YAGE_LIB_DEP_L}) +add_test(NAME ParticleBodyTest COMMAND particlebodytest --gtest_repeat=1000 --gtest_break_on_failure) diff --git a/test/particlebodytest.cpp b/test/particlebodytest.cpp new file mode 100644 index 00000000..54424b37 --- /dev/null +++ b/test/particlebodytest.cpp @@ -0,0 +1,29 @@ +/* ---------------------------------------------------------------------------- + * rigidbodytest.cpp + * + * Copyright (c) 2017 Yann Herklotz Grave <ymherklotz@gmail.com> -- MIT License + * See file LICENSE for more details + * ---------------------------------------------------------------------------- + */ + +#include "Physics/particlebody.hpp" + +#include <iostream> + +int main(int, char**) { + yage::ParticleBody body; + for (int i = 0; i < 60 * 3; ++i) { + body.update(); + std::cout << "position: " << body.xPosition() << ", " + << body.yPosition() << "\n"; + } + + double ideal_position = 0.5 * -9.81 * 3 * 3; + + std::cout << "Ideal Position: " << ideal_position << "\n"; + + if (body.yPosition() < ideal_position * 0.95 && + body.yPosition() > ideal_position * 1.05) + return 0; + return 1; +} diff --git a/test/rigidbodytest.cpp b/test/rigidbodytest.cpp deleted file mode 100644 index f3ad61f3..00000000 --- a/test/rigidbodytest.cpp +++ /dev/null @@ -1,29 +0,0 @@ -/* ---------------------------------------------------------------------------- - * rigidbodytest.cpp - * - * Copyright (c) 2017 Yann Herklotz Grave <ymherklotz@gmail.com> -- MIT License - * See file LICENSE for more details - * ---------------------------------------------------------------------------- - */ - -#include "Physics/particlebody.hpp" - -#include <iostream> - -int main(int, char**) -{ - yage::ParticleBody body; - for(int i=0; i<60*3; ++i) - { - body.update(); - std::cout<<"position: "<<body.xPosition()<<", "<<body.yPosition()<<"\n"; - } - - double ideal_position=0.5*-9.81*3*3; - - std::cout<<"Ideal Position: "<<ideal_position<<"\n"; - - if(body.yPosition()<ideal_position*0.95 && body.yPosition()>ideal_position*1.05) - return 0; - return 1; -} diff --git a/test/testbench.cpp b/test/testbench.cpp deleted file mode 100644 index eb09a82d..00000000 --- a/test/testbench.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/* ---------------------------------------------------------------------------- - * testbench.cpp - * - * Copyright (c) 2017 Yann Herklotz Grave <ymherklotz@gmail.com> -- MIT License - * See file LICENSE for more details - * ---------------------------------------------------------------------------- - */ - -#include "testbench.hpp" - -#include <algorithm> -#include <stdexcept> - -void TestBench::startTest(const std::string &test_name) -{ - incrementer++; - - Test test(test_name, false); - - tests_.push_back(test); -} - -void TestBench::endTest(bool pass) -{ - incrementer--; - - if(incrementer!=0) - throw std::runtime_error("Start and End don't match"); - - if(pass) - passed++; - else - failed++; - - tests_[passed+failed-1].passed=pass; -} - -void TestBench::printResults() -{ - std::sort(tests_.begin(), tests_.end(), [] (const Test &a, const Test &b) { - if(a.name<b.name) - return true; - return false; - }); - - printf("Results:\n"); - printf("+---------------------------+---------+\n"); - printf("| Test Name | Result |\n"); - printf("+---------------------------+---------+\n"); - for(auto test : tests_) - { - std::string result; - if(test.passed) - result="PASS"; - else - result="FAIL"; - - char test_name[25]; - - for(std::size_t i=0; i<25; ++i) - { - if(i<test.name.size()) - test_name[i]=test.name[i]; - else - test_name[i]=' '; - } - - printf("| %25.25s | %6s |\n", test_name, result.c_str()); - } - printf("+---------------------------+---------+\n"); - printf("\nSummary:\n"); - printf("+--------+--------+\n"); - printf("| Passed | %6d |\n", passed); - printf("| Failed | %6d |\n", failed); - printf("| Ratio | %5.1f%% |\n", (float)passed/(float)(failed+passed) * 100.f); - printf("+--------+--------+\n"); -} diff --git a/test/testbench.hpp b/test/testbench.hpp deleted file mode 100644 index a5b8853d..00000000 --- a/test/testbench.hpp +++ /dev/null @@ -1,40 +0,0 @@ -/* ---------------------------------------------------------------------------- - * testbench.hpp - * - * Copyright (c) 2017 Yann Herklotz Grave <ymherklotz@gmail.com> -- MIT License - * See file LICENSE for more details - * ---------------------------------------------------------------------------- - */ - -#ifndef TEST_BENCH_HPP -#define TEST_BENCH_HPP - -#include <string> -#include <vector> - -struct Test -{ - std::string name; - bool passed; - - Test(const std::string &_name, bool _passed) : name(_name), passed(_passed) {} -}; - -class TestBench -{ -private: - int incrementer=0; - int passed=0; - int failed=0; - - std::vector<Test> tests_; - -public: - TestBench() : tests_() {} - - void startTest(const std::string &test_name); - void endTest(bool pass); - void printResults(); -}; - -#endif |