From 3ce4865390924d13c525938c5c60c73650564a50 Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Sun, 6 Aug 2017 21:42:40 +0100 Subject: ParticleBody now passes gravity test --- test/matrixtest.cpp | 2 +- test/particlebodytest.cpp | 33 +++++++++++++++++++++------------ 2 files changed, 22 insertions(+), 13 deletions(-) (limited to 'test') diff --git a/test/matrixtest.cpp b/test/matrixtest.cpp index 530d3530..ee568067 100644 --- a/test/matrixtest.cpp +++ b/test/matrixtest.cpp @@ -41,7 +41,7 @@ int vectorDotProduct(const std::vector &vec_contents_f, const std::vector +#include -#include +#include "Physics/particlebody.hpp" +#include "gtest/gtest.h" -int main(int, char**) { +double gravityAcceleration(int iterations) { yage::ParticleBody body; - for (int i = 0; i < 60 * 3; ++i) { + for (int i = 0; i < 60 * iterations; ++i) { body.update(); - std::cout << "position: " << body.xPosition() << ", " - << body.yPosition() << "\n"; } - double ideal_position = 0.5 * -9.81 * 3 * 3; + return body.yPosition(); +} + +// Tests + +TEST(ParticleBody, Gravity) { + int random_itr = rand() % 25; + double idealPosition = 0.5 * -9.81 * std::pow(random_itr, 2); - std::cout << "Ideal Position: " << ideal_position << "\n"; + ASSERT_GE(idealPosition * 0.95, gravityAcceleration(random_itr)); + ASSERT_LE(idealPosition * 1.05, gravityAcceleration(random_itr)); +} - if (body.yPosition() < ideal_position * 0.95 && - body.yPosition() > ideal_position * 1.05) - return 0; - return 1; +int main(int argc, char** argv) { + testing::InitGoogleTest(&argc, argv); + srand(static_cast(time(nullptr))); + return RUN_ALL_TESTS(); } -- cgit