diff options
author | Yann Herklotz <ymherklotz@gmail.com> | 2017-12-22 21:16:02 +0000 |
---|---|---|
committer | Yann Herklotz <ymherklotz@gmail.com> | 2017-12-22 21:19:21 +0000 |
commit | fb8197839c0bebc20fd68ee3f280da934c49c473 (patch) | |
tree | e4ccb024144cb5b41f9e572984e3278c2b0b51d0 /tests/particlebody | |
parent | d6b25272499352383214c738faa8ce1870df37f3 (diff) | |
download | YAGE-fb8197839c0bebc20fd68ee3f280da934c49c473.tar.gz YAGE-fb8197839c0bebc20fd68ee3f280da934c49c473.zip |
Removing editor and refactoring code.
Diffstat (limited to 'tests/particlebody')
-rw-r--r-- | tests/particlebody/test.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/particlebody/test.cpp b/tests/particlebody/test.cpp new file mode 100644 index 00000000..09277826 --- /dev/null +++ b/tests/particlebody/test.cpp @@ -0,0 +1,41 @@ +/** --------------------------------------------------------------------------- + * @file: particlebodytest.cpp + * + * Copyright (c) 2017 Yann Herklotz Grave <ymherklotz@gmail.com> + * MIT License, see LICENSE file for more details. + * ---------------------------------------------------------------------------- + */ + +#include <gtest/gtest.h> +#include <yage/yage.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(); +} |