152 lines
5.2 KiB
C++
152 lines
5.2 KiB
C++
|
|
// g++ --std=c++11 test.cpp
|
|
|
|
#include "test.h"
|
|
|
|
#include "test.h"
|
|
#include "fl/splat.h"
|
|
|
|
#include "fl/namespace.h"
|
|
|
|
using namespace fl;
|
|
|
|
TEST_CASE("splat simple test") {
|
|
// Define a simple input coordinate
|
|
vec2f input(0, 0);
|
|
|
|
// Call the splat function
|
|
Tile2x2_u8 result = splat(input);
|
|
|
|
REQUIRE(result.bounds().mMin.x == 0);
|
|
REQUIRE(result.bounds().mMin.y == 0);
|
|
REQUIRE(result.bounds().mMax.x == 2);
|
|
REQUIRE(result.bounds().mMax.y == 2);
|
|
|
|
|
|
// Verify the output
|
|
REQUIRE_EQ(result.lower_left(), 255); // Expected intensity for lower-left
|
|
REQUIRE_EQ(result.lower_right(), 0); // Expected intensity for lower-right
|
|
REQUIRE_EQ(result.upper_left(), 0); // Expected intensity for upper-left
|
|
REQUIRE_EQ(result.upper_right(), 0); // Expected intensity for upper-right
|
|
}
|
|
|
|
TEST_CASE("splat test for input (0.0, 0.5)") {
|
|
// Define the input coordinate
|
|
vec2f input(0.0f, 0.5f);
|
|
|
|
// Call the splat function
|
|
Tile2x2_u8 result = splat(input);
|
|
|
|
// Verify the bounds of the tile
|
|
REQUIRE(result.bounds().mMin.x == 0);
|
|
REQUIRE(result.bounds().mMin.y == 0);
|
|
REQUIRE(result.bounds().mMax.x == 2);
|
|
REQUIRE(result.bounds().mMax.y == 2);
|
|
|
|
// Verify the output intensities
|
|
REQUIRE_EQ(result.lower_left(), 128); // Expected intensity for lower-left
|
|
REQUIRE_EQ(result.lower_right(), 0); // Expected intensity for lower-right
|
|
REQUIRE_EQ(result.upper_left(), 128); // Expected intensity for upper-left
|
|
REQUIRE_EQ(result.upper_right(), 0); // Expected intensity for upper-right
|
|
}
|
|
|
|
TEST_CASE("splat test for input (0.0, 0.99)") {
|
|
// Define the input coordinate
|
|
vec2f input(0.0f, 0.99f);
|
|
|
|
// Call the splat function
|
|
Tile2x2_u8 result = splat(input);
|
|
|
|
// Verify the bounds of the tile
|
|
REQUIRE(result.bounds().mMin.x == 0);
|
|
REQUIRE(result.bounds().mMin.y == 0);
|
|
REQUIRE(result.bounds().mMax.x == 2);
|
|
REQUIRE(result.bounds().mMax.y == 2);
|
|
|
|
// Verify the output intensities
|
|
REQUIRE_EQ(result.lower_left(), 3); // Expected intensity for lower-left
|
|
REQUIRE_EQ(result.lower_right(), 0); // Expected intensity for lower-right
|
|
REQUIRE_EQ(result.upper_left(), 252); // Expected intensity for upper-left
|
|
REQUIRE_EQ(result.upper_right(), 0); // Expected intensity for upper-right
|
|
}
|
|
|
|
TEST_CASE("splat test for input (0.0, 1.0)") {
|
|
// Define the input coordinate
|
|
vec2f input(0.0f, 1.0f);
|
|
|
|
// Call the splat function
|
|
Tile2x2_u8 result = splat(input);
|
|
|
|
// Verify the bounds of the tile
|
|
REQUIRE(result.bounds().mMin.x == 0);
|
|
REQUIRE(result.bounds().mMin.y == 1);
|
|
REQUIRE(result.bounds().mMax.x == 2);
|
|
REQUIRE(result.bounds().mMax.y == 3);
|
|
|
|
// Verify the output intensities
|
|
REQUIRE_EQ(result.lower_left(), 255); // Expected intensity for lower-left
|
|
REQUIRE_EQ(result.lower_right(), 0); // Expected intensity for lower-right
|
|
REQUIRE_EQ(result.upper_left(), 0); // Expected intensity for upper-left
|
|
REQUIRE_EQ(result.upper_right(), 0); // Expected intensity for upper-right
|
|
}
|
|
|
|
TEST_CASE("splat test for input (0.5, 0.0)") {
|
|
// Define the input coordinate
|
|
vec2f input(0.5f, 0.0f);
|
|
|
|
// Call the splat function
|
|
Tile2x2_u8 result = splat(input);
|
|
|
|
// Verify the bounds of the tile
|
|
REQUIRE(result.bounds().mMin.x == 0);
|
|
REQUIRE(result.bounds().mMin.y == 0);
|
|
REQUIRE(result.bounds().mMax.x == 2);
|
|
REQUIRE(result.bounds().mMax.y == 2);
|
|
|
|
// Verify the output intensities
|
|
REQUIRE_EQ(result.lower_left(), 128); // Expected intensity for lower-left
|
|
REQUIRE_EQ(result.lower_right(), 128); // Expected intensity for lower-right
|
|
REQUIRE_EQ(result.upper_left(), 0); // Expected intensity for upper-left
|
|
REQUIRE_EQ(result.upper_right(), 0); // Expected intensity for upper-right
|
|
}
|
|
|
|
TEST_CASE("splat test for input (0.99, 0.0)") {
|
|
// Define the input coordinate
|
|
vec2f input(0.99f, 0.0f);
|
|
|
|
// Call the splat function
|
|
Tile2x2_u8 result = splat(input);
|
|
|
|
// Verify the bounds of the tile
|
|
REQUIRE(result.bounds().mMin.x == 0);
|
|
REQUIRE(result.bounds().mMin.y == 0);
|
|
REQUIRE(result.bounds().mMax.x == 2);
|
|
REQUIRE(result.bounds().mMax.y == 2);
|
|
|
|
// Verify the output intensities
|
|
REQUIRE_EQ(result.lower_left(), 3); // Expected intensity for lower-left
|
|
REQUIRE_EQ(result.lower_right(), 252); // Expected intensity for lower-right
|
|
REQUIRE_EQ(result.upper_left(), 0); // Expected intensity for upper-left
|
|
REQUIRE_EQ(result.upper_right(), 0); // Expected intensity for upper-right
|
|
}
|
|
|
|
TEST_CASE("splat test for input (1.0, 0.0)") {
|
|
// Define the input coordinate
|
|
vec2f input(1.0f, 0.0f);
|
|
|
|
// Call the splat function
|
|
Tile2x2_u8 result = splat(input);
|
|
|
|
// Verify the bounds of the tile
|
|
REQUIRE(result.bounds().mMin.x == 1);
|
|
REQUIRE(result.bounds().mMin.y == 0);
|
|
REQUIRE(result.bounds().mMax.x == 3);
|
|
REQUIRE(result.bounds().mMax.y == 2);
|
|
|
|
// Verify the output intensities
|
|
REQUIRE_EQ(result.lower_left(), 255); // Expected intensity for lower-left
|
|
REQUIRE_EQ(result.lower_right(), 0); // Expected intensity for lower-right
|
|
REQUIRE_EQ(result.upper_left(), 0); // Expected intensity for upper-left
|
|
REQUIRE_EQ(result.upper_right(), 0); // Expected intensity for upper-right
|
|
}
|