/* ---------------------------------------------------------------------------- * rigidbodytest.cpp * * Copyright (c) 2017 Yann Herklotz Grave -- MIT License * See file LICENSE for more details * ---------------------------------------------------------------------------- */ #include #include #include "Physics/particlebody.hpp" #include "gtest/gtest.h" double gravityAcceleration(int iterations) { yage::ParticleBody body; for (int i = 0; i < 60 * iterations; ++i) { body.update(); } return body.yPosition(); } // Tests TEST(ParticleBody, Gravity) { int randomItr = rand() % 10; double idealPosition = 0.5 * -9.81 * std::pow(randomItr, 2); ASSERT_GE(idealPosition * 0.95, gravityAcceleration(randomItr)); ASSERT_LE(idealPosition * 1.05, gravityAcceleration(randomItr)); } int main(int argc, char** argv) { testing::InitGoogleTest(&argc, argv); srand(static_cast(time(nullptr))); return RUN_ALL_TESTS(); }