From 9fb2e3a1d697f4961379980651e5434395e372bd Mon Sep 17 00:00:00 2001
From: heavydemon21 <nielsstunnebrink1@gmail.com>
Date: Tue, 19 Nov 2024 11:48:07 +0100
Subject: unit tests

---
 src/crepe/api/Color.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'src/crepe/api')

diff --git a/src/crepe/api/Color.h b/src/crepe/api/Color.h
index aa47bf4..c207ba7 100644
--- a/src/crepe/api/Color.h
+++ b/src/crepe/api/Color.h
@@ -21,13 +21,13 @@ public:
 	static const Color & get_yellow();
 	static const Color & get_black();
 
-private:
-	// TODO: why are these private!?
+public:
 	uint8_t r;
 	uint8_t g;
 	uint8_t b;
 	uint8_t a;
 
+private:
 	static Color white;
 	static Color red;
 	static Color green;
-- 
cgit v1.2.3


From 5121e95e5ba98ca5cadfb63b7603731dfb41a322 Mon Sep 17 00:00:00 2001
From: heavydemon21 <nielsstunnebrink1@gmail.com>
Date: Wed, 20 Nov 2024 11:53:17 +0100
Subject: implemented feedback

---
 makefile                          |  2 +-
 mwe/events/include/event.h        |  2 +-
 src/crepe/api/Sprite.h            |  3 ++-
 src/crepe/facade/SDLContext.h     |  1 -
 src/crepe/system/RenderSystem.cpp | 15 +++++++--------
 src/crepe/system/RenderSystem.h   | 20 +++++++++++---------
 6 files changed, 22 insertions(+), 21 deletions(-)

(limited to 'src/crepe/api')

diff --git a/makefile b/makefile
index dd7c587..32e68c0 100644
--- a/makefile
+++ b/makefile
@@ -6,5 +6,5 @@ doxygen: Doxyfile FORCE
 FMT += $(shell git ls-files '*.c' '*.cpp' '*.h' '*.hpp')
 format: FORCE
 	clang-format -i $(FMT)
-	$(MAKE) -C src $@
+	#$(MAKE) -C src $@
 
diff --git a/mwe/events/include/event.h b/mwe/events/include/event.h
index ee1bf52..e1b220b 100644
--- a/mwe/events/include/event.h
+++ b/mwe/events/include/event.h
@@ -148,7 +148,7 @@ private:
 };
 class ShutDownEvent : public Event {
 public:
-	ShutDownEvent() : Event("ShutDownEvent") {};
+	ShutDownEvent() : Event("ShutDownEvent"){};
 
 	REGISTER_EVENT_TYPE(ShutDownEvent)
 
diff --git a/src/crepe/api/Sprite.h b/src/crepe/api/Sprite.h
index 0192793..74a55d4 100644
--- a/src/crepe/api/Sprite.h
+++ b/src/crepe/api/Sprite.h
@@ -2,8 +2,9 @@
 
 #include <memory>
 
+#include "../Component.h"
+
 #include "Color.h"
-#include "Component.h"
 #include "Texture.h"
 
 namespace crepe {
diff --git a/src/crepe/facade/SDLContext.h b/src/crepe/facade/SDLContext.h
index d437bc4..652a83e 100644
--- a/src/crepe/facade/SDLContext.h
+++ b/src/crepe/facade/SDLContext.h
@@ -21,7 +21,6 @@ namespace crepe {
 // typedef is unusable when crepe is packaged. Wouter will fix this later.
 typedef SDL_Keycode CREPE_KEYCODES;
 
-
 /**
  * \class SDLContext
  * \brief Facade for the SDL library
diff --git a/src/crepe/system/RenderSystem.cpp b/src/crepe/system/RenderSystem.cpp
index 82257c4..96c5f27 100644
--- a/src/crepe/system/RenderSystem.cpp
+++ b/src/crepe/system/RenderSystem.cpp
@@ -12,10 +12,11 @@
 #include "RenderSystem.h"
 
 using namespace crepe;
+using namespace std;
 
-void RenderSystem::clear_screen() const { SDLContext::get_instance().clear_screen(); }
+void RenderSystem::clear_screen() { this->context.clear_screen(); }
 
-void RenderSystem::present_screen() const { SDLContext::get_instance().present_screen(); }
+void RenderSystem::present_screen() { this->context.present_screen(); }
 void RenderSystem::update_camera() {
 	ComponentManager & mgr = this->component_manager;
 
@@ -24,7 +25,7 @@ void RenderSystem::update_camera() {
 	if (cameras.size() == 0) throw std::runtime_error("No cameras in current scene");
 
 	for (Camera & cam : cameras) {
-		SDLContext::get_instance().camera(cam);
+		this->context.camera(cam);
 		this->curr_cam_ref = &cam;
 	}
 }
@@ -47,14 +48,12 @@ RenderSystem::sort(std::vector<std::reference_wrapper<Sprite>> & objs) {
 
 void RenderSystem::render_sprites() {
 	ComponentManager & mgr = this->component_manager;
+	vector<reference_wrapper<Sprite>> sprites = mgr.get_components_by_type<Sprite>();
+	vector<reference_wrapper<Sprite>> sorted_sprites = this->sort(sprites);
 
-	auto sprites = mgr.get_components_by_type<Sprite>();
-	auto sorted_sprites = this->sort(sprites);
-
-	SDLContext & render = SDLContext::get_instance();
 	for (const Sprite & sprite : sorted_sprites) {
 		auto transforms = mgr.get_components_by_id<Transform>(sprite.game_object_id);
-		render.draw(sprite, transforms[0], *this->curr_cam_ref);
+		this->context.draw(sprite, transforms[0], *this->curr_cam_ref);
 	}
 }
 
diff --git a/src/crepe/system/RenderSystem.h b/src/crepe/system/RenderSystem.h
index 1176b06..8914b96 100644
--- a/src/crepe/system/RenderSystem.h
+++ b/src/crepe/system/RenderSystem.h
@@ -1,23 +1,23 @@
 #pragma once
 
-
 #include <functional>
 #include <vector>
 
-#include "api/Sprite.h"
-#include "api/Camera.h"
+#include "facade/SDLContext.h"
 
 #include "System.h"
 
 namespace crepe {
 
+class Camera;
+class Sprite;
+
 /**
  * \class RenderSystem
  * \brief Manages rendering operations for all game objects.
  *
- * RenderSystem is responsible for rendering sprites, clearing and presenting the screen, and
- * managing the active camera. It functions as a singleton, providing centralized rendering
- * services for the application.
+ * RenderSystem is responsible for rendering, clearing and presenting the screen, and
+ * managing the active camera. 
  */
 class RenderSystem : public System {
 public:
@@ -30,16 +30,16 @@ public:
 
 private:
 	//! Clears the screen in preparation for rendering.
-	void clear_screen() const;
+	void clear_screen();
 
 	//! Presents the rendered frame to the display.
-	void present_screen() const;
+	void present_screen();
 
 	//! Updates the active camera used for rendering.
 	void update_camera();
 
 	//! Renders all active sprites to the screen.
-	void render_sprites() ;
+	void render_sprites();
 
 	std::vector<std::reference_wrapper<Sprite>>
 	sort(std::vector<std::reference_wrapper<Sprite>> & objs);
@@ -58,6 +58,8 @@ private:
 	//! Pointer to the current active camera for rendering
 	Camera * curr_cam_ref = nullptr;
 	// TODO: needs a better solution
+
+	SDLContext & context = SDLContext::get_instance();
 };
 
 } // namespace crepe
-- 
cgit v1.2.3


From c6d7623cc0bc17aa171bc5078f2f36c15be28683 Mon Sep 17 00:00:00 2001
From: heavydemon21 <nielsstunnebrink1@gmail.com>
Date: Wed, 20 Nov 2024 13:39:44 +0100
Subject: implemented feedback from @lonkaars

---
 src/crepe/api/Color.cpp         |  37 ++-------
 src/crepe/api/Color.h           |  49 ++++-------
 src/crepe/system/RenderSystem.h |   6 ++
 src/test/CMakeLists.txt         |   2 +-
 src/test/RenderSystemTest.cpp   | 174 ++++++++++++++++++++++++++++++++++++++++
 src/test/rendering.cpp          | 174 ----------------------------------------
 6 files changed, 203 insertions(+), 239 deletions(-)
 create mode 100644 src/test/RenderSystemTest.cpp
 delete mode 100644 src/test/rendering.cpp

(limited to 'src/crepe/api')

diff --git a/src/crepe/api/Color.cpp b/src/crepe/api/Color.cpp
index 9e5f187..29bd77a 100644
--- a/src/crepe/api/Color.cpp
+++ b/src/crepe/api/Color.cpp
@@ -2,32 +2,11 @@
 
 using namespace crepe;
 
-Color Color::white = Color(255, 255, 255, 0);
-Color Color::red = Color(255, 0, 0, 0);
-Color Color::green = Color(0, 255, 0, 0);
-Color Color::blue = Color(0, 0, 255, 0);
-Color Color::black = Color(0, 0, 0, 0);
-Color Color::cyan = Color(0, 255, 255, 0);
-Color Color::yellow = Color(255, 255, 0, 0);
-Color Color::magenta = Color(255, 0, 255, 0);
-
-Color::Color(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha) {
-	this->a = alpha;
-	this->r = red;
-	this->g = green;
-	this->b = blue;
-};
-
-const Color & Color::get_white() { return Color::white; };
-
-const Color & Color::get_red() { return Color::red; };
-const Color & Color::get_green() { return Color::green; };
-const Color & Color::get_blue() { return Color::blue; };
-
-const Color & Color::get_black() { return Color::black; };
-
-const Color & Color::get_cyan() { return Color::cyan; };
-
-const Color & Color::get_yellow() { return Color::yellow; };
-
-const Color & Color::get_magenta() { return Color::magenta; };
+const Color Color::WHITE{0xff, 0xff, 0xff};
+const Color Color::RED{0xff, 0x00, 0x00};
+const Color Color::GREEN{0x00, 0xff, 0x00};
+const Color Color::BLUE{0x00, 0x00, 0xff};
+const Color Color::BLACK{0x00, 0x00, 0x00};
+const Color Color::CYAN{0x00, 0xff, 0xff};
+const Color Color::YELLOW{0xff, 0xff, 0x00};
+const Color Color::MAGENTA{0xff, 0x00, 0xff};
diff --git a/src/crepe/api/Color.h b/src/crepe/api/Color.h
index c207ba7..84edb5c 100644
--- a/src/crepe/api/Color.h
+++ b/src/crepe/api/Color.h
@@ -4,41 +4,20 @@
 
 namespace crepe {
 
-// TODO: make Color a struct w/o constructors/destructors
-class Color {
-
-	// FIXME: can't these colors be defined as a `static constexpr const Color`
-	// instead?
-
-public:
-	Color(uint8_t red, uint8_t green, uint8_t blue, uint8_t alpha);
-	static const Color & get_white();
-	static const Color & get_red();
-	static const Color & get_green();
-	static const Color & get_blue();
-	static const Color & get_cyan();
-	static const Color & get_magenta();
-	static const Color & get_yellow();
-	static const Color & get_black();
-
-public:
-	uint8_t r;
-	uint8_t g;
-	uint8_t b;
-	uint8_t a;
-
-private:
-	static Color white;
-	static Color red;
-	static Color green;
-	static Color blue;
-	static Color cyan;
-	static Color magenta;
-	static Color yellow;
-	static Color black;
-
-private:
-	friend class SDLContext;
+struct Color {
+	uint8_t r = 0x00;
+	uint8_t g = 0x00;
+	uint8_t b = 0x00;
+	uint8_t a = 0xff;
+
+	static const Color WHITE;
+	static const Color RED;
+	static const Color GREEN;
+	static const Color BLUE;
+	static const Color CYAN;
+	static const Color MAGENTA;
+	static const Color YELLOW;
+	static const Color BLACK;
 };
 
 } // namespace crepe
diff --git a/src/crepe/system/RenderSystem.h b/src/crepe/system/RenderSystem.h
index 8914b96..57b9c73 100644
--- a/src/crepe/system/RenderSystem.h
+++ b/src/crepe/system/RenderSystem.h
@@ -41,6 +41,12 @@ private:
 	//! Renders all active sprites to the screen.
 	void render_sprites();
 
+	/**
+	 * \brief sort a vector sprite objects with
+	 *
+	 * \param objs the vector that will do a sorting algorithm on 
+	 * \return returns a sorted reference vector
+	 */
 	std::vector<std::reference_wrapper<Sprite>>
 	sort(std::vector<std::reference_wrapper<Sprite>> & objs);
 
diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt
index 0969a52..1c93220 100644
--- a/src/test/CMakeLists.txt
+++ b/src/test/CMakeLists.txt
@@ -3,6 +3,6 @@ target_sources(test_main PUBLIC
 	PhysicsTest.cpp
 	ScriptTest.cpp
 	ParticleTest.cpp
-	rendering.cpp
+	RenderSystemTest.cpp
 )
 
diff --git a/src/test/RenderSystemTest.cpp b/src/test/RenderSystemTest.cpp
new file mode 100644
index 0000000..ac479d3
--- /dev/null
+++ b/src/test/RenderSystemTest.cpp
@@ -0,0 +1,174 @@
+#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::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::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::WHITE);
+	auto & sprite = this->mgr.get_components_by_id<Sprite>(entity1.id).front().get();
+	ASSERT_NE(sprite.sprite_image.get(), nullptr);
+
+	sprite.color = Color::GREEN;
+	EXPECT_EQ(sprite.color.r, Color::GREEN.r);
+	EXPECT_EQ(sprite.color.g, Color::GREEN.g);
+	EXPECT_EQ(sprite.color.b, Color::GREEN.b);
+	EXPECT_EQ(sprite.color.a, Color::GREEN.a);
+	this->sys.update();
+	EXPECT_EQ(sprite.color.r, Color::GREEN.r);
+	EXPECT_EQ(sprite.color.g, Color::GREEN.g);
+	EXPECT_EQ(sprite.color.b, Color::GREEN.b);
+	EXPECT_EQ(sprite.color.a, Color::GREEN.a);
+}
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);
-}
-- 
cgit v1.2.3