aboutsummaryrefslogtreecommitdiffstats
path: root/tests/particlebody/test.cpp
diff options
context:
space:
mode:
authorYann Herklotz <ymherklotz@gmail.com>2017-12-22 21:16:02 +0000
committerYann Herklotz <ymherklotz@gmail.com>2017-12-22 21:19:21 +0000
commitfb8197839c0bebc20fd68ee3f280da934c49c473 (patch)
treee4ccb024144cb5b41f9e572984e3278c2b0b51d0 /tests/particlebody/test.cpp
parentd6b25272499352383214c738faa8ce1870df37f3 (diff)
downloadYAGE-fb8197839c0bebc20fd68ee3f280da934c49c473.tar.gz
YAGE-fb8197839c0bebc20fd68ee3f280da934c49c473.zip
Removing editor and refactoring code.
Diffstat (limited to 'tests/particlebody/test.cpp')
-rw-r--r--tests/particlebody/test.cpp41
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();
+}