Files
escape-the-dawn/Tests/main.cpp
T

64 lines
1.6 KiB
C++

#include "logging.h"
#include "World.h"
#include "Components/Transform.h"
#define BOOST_TEST_MODULE World
#define BOOST_TEST_DYN_LINK
#include <boost/test/unit_test.hpp>
BOOST_AUTO_TEST_CASE(Parenting)
{
World world;
// Parenting
EntityID ent1 = world.CreateEntity();
BOOST_CHECK(ent1 != 0); // 0 is reserved for world
BOOST_CHECK(ent1 == 1);
BOOST_CHECK(world.GetEntityParent(ent1) == 0);
EntityID ent2 = world.CreateEntity(ent1);
BOOST_CHECK(ent2 != 0);
BOOST_CHECK(ent2 == ent1 + 1);
BOOST_CHECK(world.GetEntityParent(ent2) == ent1);
}
BOOST_AUTO_TEST_CASE(SceneGraphTraversal)
{
World world;
EntityID ent1 = world.CreateEntity();
auto t1 = world.AddComponent<Components::Transform>(ent1, "Transform");
t1->Position[0] = 1.0f;
t1->Position[1] = 1.0f;
t1->Position[2] = 1.0f;
EntityID ent2 = world.CreateEntity(ent1);
auto t2 = world.AddComponent<Components::Transform>(ent2, "Transform");
t2->Position[0] = 1.0f;
t2->Position[1] = 1.0f;
t2->Position[2] = 1.0f;
world.Update(0.0);
LOG_INFO("ent1: %f %f %f", t1->Position[0], t1->Position[1], t1->Position[2]);
LOG_INFO("ent2: %f %f %f", t2->Position[0], t2->Position[1], t2->Position[2]);
}
BOOST_AUTO_TEST_CASE(Recycling)
{
World world;
// EntityID recycling
EntityID ent11 = world.CreateEntity(); // 1
world.RemoveEntity(ent11);
EntityID ent12 = world.CreateEntity(); // 1
BOOST_REQUIRE(ent11 == ent12);
}
BOOST_AUTO_TEST_CASE(ComponentCreation)
{
World world;
EntityID ent = world.CreateEntity();
BOOST_CHECK(world.AddComponent(ent, "Transform") != nullptr);
BOOST_CHECK(world.AddComponent(ent, "Input") != nullptr);
}