diff --git a/test/testPicture.cpp b/test/testPicture.cpp index 502dc113..a4eb2b3e 100644 --- a/test/testPicture.cpp +++ b/test/testPicture.cpp @@ -22,11 +22,13 @@ #include #include +#include #include "catch.hpp" using namespace tvg; +using namespace std; -TEST_CASE("Load SVG data", "[tvgPicture]") +TEST_CASE("Load SVG file", "[tvgPicture]") { auto picture = Picture::gen(); REQUIRE(picture); @@ -41,7 +43,7 @@ TEST_CASE("Load SVG data", "[tvgPicture]") REQUIRE(picture->size(&w, &h) == Result::Success); } -TEST_CASE("Load RAW Data", "[tvgPicture]") +TEST_CASE("Load SVG Data", "[tvgPicture]") { static const char* svg = ""; @@ -61,7 +63,40 @@ TEST_CASE("Load RAW Data", "[tvgPicture]") REQUIRE(h == Approx(1000).epsilon(0.0000001)); } -TEST_CASE("Load PNG Data", "[tvgPicture]") +TEST_CASE("Load Raw Data", "[tvgPicture]") +{ + auto picture = Picture::gen(); + REQUIRE(picture); + + string path(EXAMPLE_DIR"/rawimage_200x300.raw"); + + ifstream file(path); + if (!file.is_open()) return; + auto data = (uint32_t*)malloc(sizeof(uint32_t) * (200*300)); + file.read(reinterpret_cast(data), sizeof (uint32_t) * 200 * 300); + file.close(); + + //Negative cases + REQUIRE(picture->load(nullptr, 200, 300, false) == Result::InvalidArguments); + REQUIRE(picture->load(data, 0, 0, false) == Result::InvalidArguments); + REQUIRE(picture->load(data, 200, 0, false) == Result::InvalidArguments); + REQUIRE(picture->load(data, 0, 300, false) == Result::InvalidArguments); + + //Positive cases + REQUIRE(picture->load(data, 200, 300, false) == Result::Success); + REQUIRE(picture->load(data, 200, 300, true) == Result::Success); + + float w, h; + REQUIRE(picture->size(&w, &h) == Result::Success); + + REQUIRE(w == Approx(200).epsilon(0.0000001)); + REQUIRE(h == Approx(300).epsilon(0.0000001)); + + free(data); +} + + +TEST_CASE("Load PNG file", "[tvgPicture]") { auto picture = Picture::gen(); REQUIRE(picture);