summaryrefslogtreecommitdiff
path: root/sim/tests/HitPoints.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'sim/tests/HitPoints.cpp')
-rw-r--r--sim/tests/HitPoints.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/sim/tests/HitPoints.cpp b/sim/tests/HitPoints.cpp
new file mode 100644
index 0000000..8b8ef84
--- /dev/null
+++ b/sim/tests/HitPoints.cpp
@@ -0,0 +1,44 @@
+#include <gtest/gtest.h>
+
+#include <kurator/sim/HitPoints.h>
+#include <kurator/universe/ShipType.h>
+
+
+namespace kurator
+{
+namespace tests
+{
+
+
+const universe::ShipType SHIP_TYPE {
+ "",
+ 100.0,
+ 100.0,
+ 100.0,
+ 0.0,
+ 0.5,
+ 0.2,
+ 0.5,
+};
+
+
+
+TEST(HitPoints, Deal)
+{
+ sim::HitPoints points {SHIP_TYPE};
+ EXPECT_TRUE(points.is_alive());
+ EXPECT_DOUBLE_EQ(300.0, points.total());
+ EXPECT_DOUBLE_EQ(50.0, points.deal(100.0));
+ EXPECT_DOUBLE_EQ(250.0, points.total());
+ EXPECT_DOUBLE_EQ(50.0, points.deal(100.0));
+ EXPECT_DOUBLE_EQ(200.0, points.total());
+ EXPECT_DOUBLE_EQ(100.0, points.deal(125.0));
+ EXPECT_DOUBLE_EQ(100.0, points.total());
+ EXPECT_DOUBLE_EQ(100.0, points.deal(200.0));
+ EXPECT_DOUBLE_EQ(0.0, points.total());
+ EXPECT_FALSE(points.is_alive());
+}
+
+
+} // namespace tests
+} // namespace kurator