diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 65ac2b73..4dbd6f04 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -33,6 +33,7 @@ if(SFML_BUILD_GRAPHICS) SET(GRAPHICS_SRC "${SRCROOT}/Graphics/Color.cpp" "${SRCROOT}/Graphics/Rect.cpp" + "${SRCROOT}/Graphics/Vertex.cpp" "${SRCROOT}/TestUtilities/GraphicsUtil.hpp" "${SRCROOT}/TestUtilities/GraphicsUtil.cpp" ) diff --git a/test/Graphics/Vertex.cpp b/test/Graphics/Vertex.cpp new file mode 100644 index 00000000..5eb3ed31 --- /dev/null +++ b/test/Graphics/Vertex.cpp @@ -0,0 +1,56 @@ +#include +#include "GraphicsUtil.hpp" + +TEST_CASE("sf::Vertex class - [graphics]") +{ + SUBCASE("Construction") + { + SUBCASE("Default constructor") + { + const sf::Vertex vertex; + CHECK(vertex.position == sf::Vector2f(0.0f, 0.0f)); + CHECK(vertex.color == sf::Color(255, 255, 255)); + CHECK(vertex.texCoords == sf::Vector2f(0.0f, 0.0f)); + } + + SUBCASE("Position constructor") + { + const sf::Vertex vertex({1, 2}); + CHECK(vertex.position == sf::Vector2f(1.0f, 2.0f)); + CHECK(vertex.color == sf::Color(255, 255, 255)); + CHECK(vertex.texCoords == sf::Vector2f(0.0f, 0.0f)); + } + + SUBCASE("Position and color constructor") + { + const sf::Vertex vertex({1, 2}, {3, 4, 5, 6}); + CHECK(vertex.position == sf::Vector2f(1.0f, 2.0f)); + CHECK(vertex.color == sf::Color(3, 4, 5, 6)); + CHECK(vertex.texCoords == sf::Vector2f(0.0f, 0.0f)); + } + + SUBCASE("Position and coords constructor") + { + const sf::Vertex vertex({1, 2}, {3, 4}); + CHECK(vertex.position == sf::Vector2f(1.0f, 2.0f)); + CHECK(vertex.color == sf::Color(255, 255, 255)); + CHECK(vertex.texCoords == sf::Vector2f(3.0f, 4.0f)); + } + + SUBCASE("Position, color, and coords constructor") + { + const sf::Vertex vertex({1, 2}, {3, 4, 5, 6}, {7, 8}); + CHECK(vertex.position == sf::Vector2f(1.0f, 2.0f)); + CHECK(vertex.color == sf::Color(3, 4, 5, 6)); + CHECK(vertex.texCoords == sf::Vector2f(7.0f, 8.0f)); + } + } + + SUBCASE("Constexpr support") + { + constexpr sf::Vertex vertex({1, 2}, {3, 4, 5, 6}, {7, 8}); + static_assert(vertex.position == sf::Vector2f(1.0f, 2.0f)); + static_assert(vertex.color == sf::Color(3, 4, 5, 6)); + static_assert(vertex.texCoords == sf::Vector2f(7.0f, 8.0f)); + } +}