blob: 4adafea3c4b8d9575d899adc661e4e780753981c [file] [log] [blame]
#include <catch.hpp>
#include "rive/math/mat2d.hpp"
#include "rive/math/math_types.hpp"
namespace rive
{
TEST_CASE("IAABB_join", "[IAABB]")
{
CHECK(IAABB{1, -2, 99, 101}.join({0, 0, 100, 100}) == IAABB{0, -2, 100, 101});
CHECK(IAABB{1, -2, 99, 101}.join({2, -3, 98, 103}) == IAABB{1, -3, 99, 103});
}
TEST_CASE("IAABB_intersect", "[IAABB]")
{
CHECK(IAABB{1, -2, 99, 101}.intersect({0, 0, 100, 100}) == IAABB{1, 0, 99, 100});
CHECK(IAABB{1, -2, 99, 101}.intersect({2, -3, 98, 103}) == IAABB{2, -2, 98, 101});
}
TEST_CASE("IAABB_empty", "[IAABB]")
{
CHECK(IAABB{0, 0, 0, 0}.empty());
CHECK(IAABB{0, 0, 0, 1}.empty());
CHECK(IAABB{0, 0, 1, 0}.empty());
CHECK(!IAABB{0, 0, 1, 1}.empty());
CHECK(IAABB{0, 0, -1, -1}.empty());
CHECK(IAABB{std::numeric_limits<int32_t>::max(),
std::numeric_limits<int32_t>::max(),
std::numeric_limits<int32_t>::min(),
std::numeric_limits<int32_t>::min()}
.empty());
}
} // namespace rive