Trying to switch to more object-oriented

This commit is contained in:
2021-03-12 22:33:46 +01:00
parent fbe122a5b9
commit 258ce51cfe
32 changed files with 693 additions and 249 deletions
+50 -2
View File
@@ -1,11 +1,12 @@
#define CATCH_CONFIG_MAIN
#include "catch.hpp"
#include "../sdlpp.hpp"
#include "../sdlpp/sdlpp.hpp"
#include <iostream>
// sdlpp.hpp
TEST_CASE( "Rect collisions" ) {
/*TEST_CASE( "Rect collisions" ) {
SDLPP::Rect r(0,0,10,10);
REQUIRE(r.colidesWith(r));
SDLPP::Rect r2(100,100,10,10);
@@ -40,5 +41,52 @@ TEST_CASE( "Multiple collisions" ) {
REQUIRE(r.colidesWith(r1));
REQUIRE(r.colidesWith(r2));
REQUIRE_FALSE(r.colidesWith(r3));
}*/
TEST_CASE( "Point distances" ) {
SDLPP::Vec2D p1(0,0);
SDLPP::Vec2D p2(1,0);
auto dist = vecDistance(p1, p2);
REQUIRE( dist > 0.99 );
REQUIRE( dist < 1.01 );
dist = vecDistance(p2, p1);
REQUIRE( dist > 0.99 );
REQUIRE( dist < 1.01 );
p2 = SDLPP::Vec2D(0,1);
dist = vecDistance(p1, p2);
REQUIRE( dist > 0.99 );
REQUIRE( dist < 1.01 );
dist = vecDistance(p2, p1);
REQUIRE( dist > 0.99 );
REQUIRE( dist < 1.01 );
p2 = SDLPP::Vec2D(1,1);
dist = vecDistance(p1, p2);
REQUIRE( dist > 1.4142 );
REQUIRE( dist < 1.41422 );
}
TEST_CASE( "Point line distances" ) {
SDLPP::Vec2D p1(0,0);
SDLPP::Line line({-1,-1}, {1, -1});
auto dist = pointLineDistance(p1, line);
REQUIRE( dist > 0.99 );
REQUIRE( dist < 1.01 );
line = SDLPP::Line({-3,-1}, {-1,-1});
dist = pointLineDistance(p1, line);
REQUIRE( dist > 1.4142 );
REQUIRE( dist < 1.41422 );
line = SDLPP::Line({-3,-2}, {-2,-2});
dist = pointLineDistance(p1, line);
REQUIRE( dist > 2.8284 );
REQUIRE( dist < 2.82843 );
line = SDLPP::Line({-3,-1}, {-2,-2});
dist = pointLineDistance(p1, line);
std::cout << dist << std::endl;
line = SDLPP::Line({-3,-1}, {-2,-180});
dist = pointLineDistance(p1, line);
std::cout << dist << std::endl;
SDLPP::Vec2D p2(-3, -1);
dist = vecDistance(p1, p2);
std::cout << dist << std::endl;
}