diff --git a/.gitignore b/.gitignore index 99b9f78428485e21031a787992ea44b4fe09d293..c2a478f5e6beda9d7245afb614196160b5670475 100644 --- a/.gitignore +++ b/.gitignore @@ -15,6 +15,10 @@ bin/ # Libraries libs/ +# Doctest generated files +*.gcna +*.gcdo + # Build directory build/ diff --git a/include/main.h b/include/main.h index 2f48969047e1e1be4c7369c245b54ed7626a46f8..57c47df6c4da6b84e285088aa7c852dff37d437f 100644 --- a/include/main.h +++ b/include/main.h @@ -6,6 +6,8 @@ #ifndef __TEST_RUNNER__ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN +#include "doctest.h" +#include "testlist.hpp" #endif // __TEST_RUNNER__ @@ -15,6 +17,7 @@ enum GenerationMethod Cave }; +#include "maths/maths.h" #include "save-manager.h" #include "game-state.h" #include "world-hex-2d.h" diff --git a/include/maths/vec2.h b/include/maths/vec2.h index e01f0f7b9c4172905bb6e0e114b2530983b771cd..e750bb4d992177674fbd06e884b3da9b9af43a2d 100644 --- a/include/maths/vec2.h +++ b/include/maths/vec2.h @@ -3,6 +3,7 @@ #include <cmath> + class Vec2 { public: diff --git a/makefile b/makefile index 450edc726ace9af7438f3e6a4593df3a7618e51e..3c593174bd0301dc79304cd14f7af5f5df0c464e 100644 --- a/makefile +++ b/makefile @@ -34,7 +34,8 @@ TEST_MAIN = DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN TEST_FLAG = __TEST_RUNNER__ TEST_DEFINES = -D$(TEST_MAIN) -D$(TEST_FLAG) TEST_TARGET = $(BIN_DIR)/test_runner -TEST_DIR = test +TEST_HEADER = lib/doctest +TEST_DIR = tests TEST_BUILD_DIR = $(BUILD_DIR)/.test # Executable directory @@ -54,8 +55,9 @@ TEST_FILES = $(wildcard $(TEST_DIR)/**/*.test.cpp $(TEST_DIR)/*.test.cpp) # Object files OBJ_FILES = $(patsubst $(SRC_DIR)/%.cpp,$(BUILD_DIR)/%.o,$(SRC_FILES)) -TEST_OBJ_FILES = $(patsubst $(TEST_DIR)/%.test.cpp,$(TEST_BUILD_DIR)/%.test.o,$(TEST_FILES)) +TEST_OBJ_FILES = $(patsubst $(TEST_DIR)/%.test.hpp,$(TEST_BUILD_DIR)/%.test.o,$(TEST_FILES)) TEST_SRC_OBJ_FILES = $(patsubst $(SRC_DIR)/%.cpp,$(TEST_BUILD_DIR)/%.src.o,$(SRC_FILES)) +# TEST_SRC_OBJ_FILES = $(patsubst $(SRC_DIR)/%.cpp,$(TEST_BUILD_DIR)/%.src.o,$(SRC_FILES)) # Output executable TARGET = $(BIN_DIR)/game @@ -63,20 +65,21 @@ TARGET = $(BIN_DIR)/game all: $(TARGET) test: $(TEST_TARGET) + ./$(TEST_TARGET) $(TARGET): $(OBJ_FILES) $(CXX) $(CXXFLAGS) -o $(TARGET) $(OBJ_FILES) $(SDL_LIBRARY) $(SDL_OPTIONS) $(TEST_TARGET): $(TEST_OBJ_FILES) $(TEST_SRC_OBJ_FILES) - $(CXX) $(CXXFLAGS) -o $(TARGET) $(TEST_OBJ_FILES) $(TEST_SRC_OBJ_FILES) $(SDL_LIBRARY) $(SDL_OPTIONS) + $(CXX) $(CXXFLAGS) -o $(TEST_TARGET) $(TEST_OBJ_FILES) $(TEST_SRC_OBJ_FILES) $(SDL_LIBRARY) $(SDL_OPTIONS) $(TEST_BUILD_DIR)/%.src.o: $(SRC_DIR)/%.cpp ${INC_DIR}/%.h @mkdir -p $(@D) - $(CXX) $(CXXFLAGS) $(TEST_DEFINES) $(LDFLAGS) -I$(INC_DIR) -c -o $@ $< + $(CXX) $(CXXFLAGS) $(TEST_DEFINES) $(LDFLAGS) -I$(INC_DIR) -I$(TEST_HEADER) -I$(TEST_DIR) -c -o $@ $< -$(TEST_BUILD_DIR)/%.test.o: $(SRC_DIR)/%.test.cpp +$(TEST_BUILD_DIR)/%.test.o: $(SRC_DIR)/%.test.hpp $(SRC_DIR)/%.cpp ${INC_DIR}/%.h @mkdir -p $(@D) - $(CXX) $(CXXFLAGS) $(TEST_DEFINES) $(LDFLAGS) -I$(INC_DIR) -c -o $@ $< + $(CXX) $(CXXFLAGS) $(TEST_DEFINES) $(LDFLAGS) -I$(INC_DIR) -I$(TEST_HEADER) -c -o $@ $< $(BUILD_DIR)/%.o: $(SRC_DIR)/%.cpp ${INC_DIR}/%.h @mkdir -p $(@D) @@ -85,7 +88,7 @@ $(BUILD_DIR)/%.o: $(SRC_DIR)/%.cpp ${INC_DIR}/%.h clean: rm -rf $(TEST_BUILD_DIR)/* $(TEST_TARGET) rm -rf $(BIN_DIR)/* $(BUILD_DIR)/* - rm -rf ./*~ ./*.swp + rm -rf ./*~ ./*.swp ./*.gcno rm -rf *~ run: $(TARGET) diff --git a/src/main.cpp b/src/main.cpp index 5b0ceb70b8cccf0c7d19e72fbb280767e25a5b32..82f1e0b4d661ad9eaaf907bf03eb01209370ce17 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -61,4 +61,7 @@ int main( int argc, char* argv[] ) { } // int /*WINAPI*/ WinMain(/*HINSTANCE hInstance, HINSTANCE, LPSTR, int*/) { main(); return 0; } +#else +#include "doctest.h" +#include "testlist.hpp" #endif // __TEST_RUNNER__ diff --git a/src/world-map3d.cpp b/src/world-map3d.cpp deleted file mode 100644 index c34b95ae6b9ae95bcac7c27dbb16e49c509bc9d9..0000000000000000000000000000000000000000 --- a/src/world-map3d.cpp +++ /dev/null @@ -1,62 +0,0 @@ -#include "world-map-3d.h" - -WorldMap3D::WorldMap3D() - :WorldMap3D( 5, 5, 5 ) -{} -WorldMap3D::WorldMap3D( - uint8_t width, - uint8_t height, - uint8_t depth -) : _width(width), _height(height), _depth(depth), - _logger( Logger::instance() ) -{ - this->_logger.info( "Creating new world" ); - this->generateWorld(); -} - -WorldMap3D::~WorldMap3D(){ - this->_logger.info( "Cleaning world" ); - - // Clean Chunk Map - for( const auto& [keyX, value1] : this->chunks_) - { - for( const auto& [keyY, value2] : value1) - { - for( const auto& [keyZ, chunk] : value2) - { delete chunk; } - } - } -} - -Chunk* WorldMap3D::getChunk(int chunkX, int chunkY, int chunkZ) -{ - auto chX = chunks_.find( chunkX ); - if( chX != chunks_.end() ) - { - auto chY = chX->second.find( chunkY ); - if( chY != chX->second.end() ) - { - auto chZ = chY->second.find( chunkZ ); - if( chZ != chY->second.end() ) - { return chZ->second; } - } - } - - return nullptr; -} - -void WorldMap3D::generateWorld() -{ - this->_logger.info( "Generating initial world" ); - for( uint8_t x = 0; x < this->_width; x++ ) - { - for( uint8_t y = 0; y < this->_height; y++ ) - { - for( uint8_t z = 0; z < this->_depth; z++ ) - { - Chunk* chunk = new Chunk( x, y, z ); - this->chunks_[z][y][x] = chunk; - } - } - } -} diff --git a/tests/maths/vec2.test.cpp b/tests/maths/vec2.test.cpp deleted file mode 100644 index 638042de078b8b3d085cd185c519bf6783a7033c..0000000000000000000000000000000000000000 --- a/tests/maths/vec2.test.cpp +++ /dev/null @@ -1,4 +0,0 @@ -#include <iostream> -#include "doctest.h" - -std::cout << "Test" << std::endl; diff --git a/tests/maths/vec2.test.hpp b/tests/maths/vec2.test.hpp new file mode 100644 index 0000000000000000000000000000000000000000..babe35eda721897423926b8c26ae05c25a438192 --- /dev/null +++ b/tests/maths/vec2.test.hpp @@ -0,0 +1,23 @@ +#include <iostream> +#include "doctest.h" + + +#include "maths/vec2.h" + +TEST_CASE( "Testing Operator Comparisons" ) { + Vec2 a( 1, 5 ); + Vec2 b( 2, 4 ); + + SUBCASE( "Addition" ) + { + Vec2 c = a + b; + CHECK( c.x == 3 ); + CHECK( c.y == 9 ); + } + SUBCASE( "Subtraction" ) + { + Vec2 c = a - b; + CHECK( c.x == -1 ); + CHECK( c.y == 1 ); + } +} diff --git a/tests/testlist.hpp b/tests/testlist.hpp new file mode 100644 index 0000000000000000000000000000000000000000..cccdf5c9d98bc4df2b97bbe8a958da6d81c47132 --- /dev/null +++ b/tests/testlist.hpp @@ -0,0 +1,4 @@ +#ifndef __TESTLIST_INCLUDES__ +#define __TESTLIST_INCLUDES__ +#include "maths/vec2.test.hpp" +#endif // __TESTLIST_INCLUDES__