diff options
author | Yann Herklotz <ymherklotz@gmail.com> | 2017-09-09 06:18:53 +0100 |
---|---|---|
committer | Yann Herklotz <ymherklotz@gmail.com> | 2017-09-09 06:21:36 +0100 |
commit | 660996bd750dbb5fcdce85845ee6b260f3ed23eb (patch) | |
tree | dc4f9931adf728379e571748eb954db1cf2eb65b /tests/particlebodytest.cpp | |
parent | a9893965737269512e9c75e87938312d707cb351 (diff) | |
download | YAGE-660996bd750dbb5fcdce85845ee6b260f3ed23eb.tar.gz YAGE-660996bd750dbb5fcdce85845ee6b260f3ed23eb.zip |
Renaming test to tests
Diffstat (limited to 'tests/particlebodytest.cpp')
-rw-r--r-- | tests/particlebodytest.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/particlebodytest.cpp b/tests/particlebodytest.cpp new file mode 100644 index 00000000..b359cb73 --- /dev/null +++ b/tests/particlebodytest.cpp @@ -0,0 +1,41 @@ +/* ---------------------------------------------------------------------------- + * rigidbodytest.cpp + * + * Copyright (c) 2017 Yann Herklotz Grave <ymherklotz@gmail.com> -- MIT License + * See file LICENSE for more details + * ---------------------------------------------------------------------------- + */ + +#include <YAGE/Physics/particlebody.h> +#include <gtest/gtest.h> + +#include <cmath> +#include <cstdlib> + +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<unsigned>(time(nullptr))); + return RUN_ALL_TESTS(); +} |