aboutsummaryrefslogtreecommitdiff
path: root/src/test/rendering.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/rendering.cpp')
-rw-r--r--src/test/rendering.cpp174
1 files changed, 0 insertions, 174 deletions
diff --git a/src/test/rendering.cpp b/src/test/rendering.cpp
deleted file mode 100644
index 4c5fb1d..0000000
--- a/src/test/rendering.cpp
+++ /dev/null
@@ -1,174 +0,0 @@
-#include "api/Camera.h"
-#include <functional>
-#include <gtest/gtest.h>
-#include <memory>
-#include <vector>
-
-#define private public
-#define protected public
-
-#include <crepe/ComponentManager.h>
-#include <crepe/api/Color.h>
-#include <crepe/api/GameObject.h>
-#include <crepe/api/Sprite.h>
-#include <crepe/api/Texture.h>
-
-#include <crepe/system/RenderSystem.h>
-
-using namespace std;
-using namespace crepe;
-using namespace testing;
-
-class RenderSystemTest : public Test {
-public:
- ComponentManager mgr{};
- RenderSystem sys{mgr};
- GameObject entity1 = this->mgr.new_object("name");
- GameObject entity2 = this->mgr.new_object("name");
- GameObject entity3 = this->mgr.new_object("name");
- GameObject entity4 = this->mgr.new_object("name");
-
- void SetUp() override {
- auto & sprite1
- = entity1.add_component<Sprite>(make_shared<Texture>("../asset/texture/img.png"),
- Color(0, 0, 0, 0), FlipSettings{false, false});
- ASSERT_NE(sprite1.sprite_image.get(), nullptr);
- sprite1.order_in_layer = 5;
- sprite1.sorting_in_layer = 5;
- EXPECT_EQ(sprite1.order_in_layer, 5);
- EXPECT_EQ(sprite1.sorting_in_layer, 5);
- auto & sprite2
- = entity2.add_component<Sprite>(make_shared<Texture>("../asset/texture/img.png"),
- Color(0, 0, 0, 0), FlipSettings{false, false});
- ASSERT_NE(sprite2.sprite_image.get(), nullptr);
- sprite2.sorting_in_layer = 2;
- sprite2.order_in_layer = 1;
-
- EXPECT_EQ(sprite2.sorting_in_layer, 2);
- EXPECT_EQ(sprite2.order_in_layer, 1);
-
- auto & sprite3
- = entity3.add_component<Sprite>(make_shared<Texture>("../asset/texture/img.png"),
- Color(0, 0, 0, 0), FlipSettings{false, false});
- ASSERT_NE(sprite3.sprite_image.get(), nullptr);
- sprite3.sorting_in_layer = 1;
- sprite3.order_in_layer = 2;
-
- EXPECT_EQ(sprite3.sorting_in_layer, 1);
- EXPECT_EQ(sprite3.order_in_layer, 2);
-
- auto & sprite4
- = entity4.add_component<Sprite>(make_shared<Texture>("../asset/texture/img.png"),
- Color(0, 0, 0, 0), FlipSettings{false, false});
- ASSERT_NE(sprite4.sprite_image.get(), nullptr);
- sprite4.sorting_in_layer = 1;
- sprite4.order_in_layer = 1;
- EXPECT_EQ(sprite4.sorting_in_layer, 1);
- EXPECT_EQ(sprite4.order_in_layer, 1);
- }
-};
-
-TEST_F(RenderSystemTest, expected_throws) {
- GameObject entity1 = this->mgr.new_object("NAME");
-
- // no texture img
- EXPECT_ANY_THROW({
- entity1.add_component<Sprite>(make_shared<Texture>("NO_IMAGE"), Color(0, 0, 0, 0),
- FlipSettings{false, false});
- });
-
- // No camera
- EXPECT_ANY_THROW({ this->sys.update(); });
-}
-
-TEST_F(RenderSystemTest, make_sprites) {}
-
-TEST_F(RenderSystemTest, sorting_sprites) {
- vector<reference_wrapper<Sprite>> sprites = this->mgr.get_components_by_type<Sprite>();
- ASSERT_EQ(sprites.size(), 4);
-
- vector<reference_wrapper<Sprite>> sorted_sprites = this->sys.sort(sprites);
- ASSERT_EQ(sorted_sprites.size(), 4);
-
- // Expected order after sorting:
- // 1. sorting_in_layer: 1, order_in_layer: 1 (entity4)
- // 2. sorting_in_layer: 1, order_in_layer: 2 (entity3)
- // 3. sorting_in_layer: 2, order_in_layer: 1 (entity2)
- // 4. sorting_in_layer: 5, order_in_layer: 5 (entity1)
-
- EXPECT_EQ(sorted_sprites[0].get().sorting_in_layer, 1);
- EXPECT_EQ(sorted_sprites[0].get().order_in_layer, 1);
-
- EXPECT_EQ(sorted_sprites[1].get().sorting_in_layer, 1);
- EXPECT_EQ(sorted_sprites[1].get().order_in_layer, 2);
-
- EXPECT_EQ(sorted_sprites[2].get().sorting_in_layer, 2);
- EXPECT_EQ(sorted_sprites[2].get().order_in_layer, 1);
-
- EXPECT_EQ(sorted_sprites[3].get().sorting_in_layer, 5);
- EXPECT_EQ(sorted_sprites[3].get().order_in_layer, 5);
-
- for (size_t i = 1; i < sorted_sprites.size(); ++i) {
- const Sprite & prev = sorted_sprites[i - 1].get();
- const Sprite & curr = sorted_sprites[i].get();
-
- if (prev.sorting_in_layer == curr.sorting_in_layer) {
- EXPECT_LE(prev.order_in_layer, curr.order_in_layer);
- } else {
- EXPECT_LE(prev.sorting_in_layer, curr.sorting_in_layer);
- }
- }
-}
-
-TEST_F(RenderSystemTest, Update) {
- entity1.add_component<Camera>(Color::get_white());
- {
- vector<reference_wrapper<Sprite>> sprites = this->mgr.get_components_by_type<Sprite>();
- ASSERT_EQ(sprites.size(), 4);
-
- EXPECT_EQ(sprites[0].get().game_object_id, 0);
- EXPECT_EQ(sprites[1].get().game_object_id, 1);
- EXPECT_EQ(sprites[2].get().game_object_id, 2);
- EXPECT_EQ(sprites[3].get().game_object_id, 3);
- }
- this->sys.update();
- {
- vector<reference_wrapper<Sprite>> sprites = this->mgr.get_components_by_type<Sprite>();
- ASSERT_EQ(sprites.size(), 4);
-
- EXPECT_EQ(sprites[0].get().game_object_id, 0);
- EXPECT_EQ(sprites[1].get().game_object_id, 1);
- EXPECT_EQ(sprites[2].get().game_object_id, 2);
- EXPECT_EQ(sprites[3].get().game_object_id, 3);
- }
-}
-
-TEST_F(RenderSystemTest, Camera) {
- {
- auto cameras = this->mgr.get_components_by_type<Camera>();
- EXPECT_NE(cameras.size(), 1);
- }
- {
- entity1.add_component<Camera>(Color::get_white());
- auto cameras = this->mgr.get_components_by_type<Camera>();
- EXPECT_EQ(cameras.size(), 1);
- }
-
- //TODO improve with newer version
-}
-TEST_F(RenderSystemTest, Color) {
- entity1.add_component<Camera>(Color::get_white());
- auto & sprite = this->mgr.get_components_by_id<Sprite>(entity1.id).front().get();
- ASSERT_NE(sprite.sprite_image.get(), nullptr);
-
- sprite.color = Color::get_green();
- EXPECT_EQ(sprite.color.r, Color::get_green().r);
- EXPECT_EQ(sprite.color.g, Color::get_green().g);
- EXPECT_EQ(sprite.color.b, Color::get_green().b);
- EXPECT_EQ(sprite.color.a, Color::get_green().a);
- this->sys.update();
- EXPECT_EQ(sprite.color.r, Color::get_green().r);
- EXPECT_EQ(sprite.color.g, Color::get_green().g);
- EXPECT_EQ(sprite.color.b, Color::get_green().b);
- EXPECT_EQ(sprite.color.a, Color::get_green().a);
-}