summaryrefslogtreecommitdiff
path: root/Testing/include/modeling
diff options
context:
space:
mode:
Diffstat (limited to 'Testing/include/modeling')
-rw-r--r--Testing/include/modeling/DatacenterTest.h35
-rw-r--r--Testing/include/modeling/EntityTest.h10
-rw-r--r--Testing/include/modeling/MachineTest.h39
-rw-r--r--Testing/include/modeling/RackTest.h21
-rw-r--r--Testing/include/modeling/RoomTest.h24
-rw-r--r--Testing/include/modeling/TypeIndexTest.h28
6 files changed, 157 insertions, 0 deletions
diff --git a/Testing/include/modeling/DatacenterTest.h b/Testing/include/modeling/DatacenterTest.h
new file mode 100644
index 00000000..0b64c88a
--- /dev/null
+++ b/Testing/include/modeling/DatacenterTest.h
@@ -0,0 +1,35 @@
+#pragma once
+#include "modeling\Datacenter.h"
+#include "simulation\workloads\SimpleScheduler.h"
+
+#include <gtest\gtest.h>
+
+TEST(DatacenterTest, GetAddRoomOfType)
+{
+ Simulation::Scheduler* scheduler = new Simulation::SimpleScheduler();
+ Modeling::Datacenter<int, float, double> datacenter(scheduler);
+
+ int first = 4, second = 1;
+ datacenter.addRoomOfType<int>(first);
+ datacenter.addRoomOfType<int>(second);
+ double third = 3.0;
+ datacenter.addRoomOfType<double>(third);
+
+ ASSERT_EQ(datacenter.getRoomsOfType<int>().at(0), 4);
+ ASSERT_EQ(datacenter.getRoomsOfType<int>().at(1), 1);
+ ASSERT_EQ(datacenter.getRoomsOfType<double>().at(0), 3.0);
+}
+
+TEST(DatacenterTest, GetSetScheduler)
+{
+ Simulation::Scheduler* scheduler = new Simulation::SimpleScheduler();
+ Simulation::Scheduler* secondScheduler = new Simulation::SimpleScheduler();
+
+ Modeling::Datacenter<int, float, double> datacenter(scheduler);
+
+ ASSERT_EQ(datacenter.getScheduler().get(), scheduler);
+
+ datacenter.setScheduler(secondScheduler);
+
+ ASSERT_EQ(datacenter.getScheduler().get(), secondScheduler);
+} \ No newline at end of file
diff --git a/Testing/include/modeling/EntityTest.h b/Testing/include/modeling/EntityTest.h
new file mode 100644
index 00000000..ff7293ff
--- /dev/null
+++ b/Testing/include/modeling/EntityTest.h
@@ -0,0 +1,10 @@
+#pragma once
+#include "modeling\Entity.h"
+
+#include <gtest\gtest.h>
+
+TEST(EntityTest, Constructor)
+{
+ Modeling::Entity e(10);
+ ASSERT_EQ(e.id, 10);
+} \ No newline at end of file
diff --git a/Testing/include/modeling/MachineTest.h b/Testing/include/modeling/MachineTest.h
new file mode 100644
index 00000000..6bba9d0d
--- /dev/null
+++ b/Testing/include/modeling/MachineTest.h
@@ -0,0 +1,39 @@
+#pragma once
+#include "modeling\Machine.h"
+
+#include <gtest\gtest.h>
+
+TEST(MachineTest, GetSpeed)
+{
+ Modeling::Machine m(100);
+
+ ASSERT_EQ(m.getSpeed(), 100);
+}
+
+TEST(MachineTest, IsBusy)
+{
+ Modeling::Machine m(100);
+ std::shared_ptr<Simulation::Workload> shrdWorkload = std::make_shared<Simulation::Workload>(150, 1, 1, 1);
+ ASSERT_FALSE(m.isBusy());
+
+ m.giveTask(std::weak_ptr<Simulation::Workload>(shrdWorkload));
+
+ ASSERT_TRUE(m.isBusy());
+}
+
+TEST(MachineTest, Tick)
+{
+ Modeling::Machine m(100);
+ std::shared_ptr<Simulation::Workload> shrdWorkload = std::make_shared<Simulation::Workload>(150, 1, 1, 1);
+ m.giveTask(std::weak_ptr<Simulation::Workload>(shrdWorkload));
+
+ ASSERT_TRUE(m.isBusy());
+
+ m.tick();
+
+ ASSERT_TRUE(m.isBusy());
+
+ m.tick();
+
+ ASSERT_FALSE(m.isBusy());
+} \ No newline at end of file
diff --git a/Testing/include/modeling/RackTest.h b/Testing/include/modeling/RackTest.h
new file mode 100644
index 00000000..cd568e14
--- /dev/null
+++ b/Testing/include/modeling/RackTest.h
@@ -0,0 +1,21 @@
+#pragma once
+#include "modeling\Rack.h"
+
+#include <gtest\gtest.h>
+
+TEST(RackTest, ConstructorTest)
+{
+ Modeling::Rack rack(10, 100);
+ ASSERT_EQ(rack.id, 10);
+}
+
+TEST(RackTest, GetSetMachines)
+{
+ Modeling::Rack rack(10, 100);
+
+ Modeling::Machine machine(100);
+ rack.setMachine(machine, 10);
+
+ ASSERT_EQ(rack.getMachines().size(), 1);
+ ASSERT_EQ(rack.getMachines().at(0).get().getSpeed(), 100);
+}
diff --git a/Testing/include/modeling/RoomTest.h b/Testing/include/modeling/RoomTest.h
new file mode 100644
index 00000000..6d482e73
--- /dev/null
+++ b/Testing/include/modeling/RoomTest.h
@@ -0,0 +1,24 @@
+#pragma once
+#include "modeling\Room.h"
+
+#include <gtest\gtest.h>
+
+TEST(RoomTest, ConstructorTest)
+{
+ Modeling::Room<int, float, double> room(10);
+ ASSERT_EQ(room.id, 10);
+}
+
+TEST(RoomTest, GetSetEntities)
+{
+ Modeling::Room<int, float, double> room(10);
+
+ int first = 3;
+ room.addEntity(first);
+
+ double second = 4.0;
+ room.addEntity(second);
+
+ ASSERT_EQ(room.getEntitiesOfType<int>().at(0), 3);
+ ASSERT_EQ(room.getEntitiesOfType<double>().at(0), 4.0);
+}
diff --git a/Testing/include/modeling/TypeIndexTest.h b/Testing/include/modeling/TypeIndexTest.h
new file mode 100644
index 00000000..0a0d6d54
--- /dev/null
+++ b/Testing/include/modeling/TypeIndexTest.h
@@ -0,0 +1,28 @@
+#pragma once
+#include "modeling\TypeIndex.h"
+
+#include <gtest\gtest.h>
+
+TEST(TypeIndexTest, SingleType)
+{
+ size_t index = indexOfType<int, int>();
+ ASSERT_EQ(index, 0);
+}
+
+TEST(TypeIndexTest, MultipleTypesFirst)
+{
+ size_t index = indexOfType<int, int, std::string, bool>();
+ ASSERT_EQ(index, 0);
+}
+
+TEST(TypeIndexTest, MultipleTypesMiddle)
+{
+ size_t index = indexOfType<std::string, int, std::string, bool>();
+ ASSERT_EQ(index, 1);
+}
+
+TEST(TypeIndexTest, MultipleTypesLast)
+{
+ size_t index = indexOfType<bool, int, std::string, bool>();
+ ASSERT_EQ(index, 2);
+} \ No newline at end of file