#include "tests/PNGReaderTests.h" #include "images/PNGReader.h" #include "tests/Test.h" #include "utils/List.h" #include "utils/StringBuffer.h" static void testReadRGB8(Test& test, const char* path) { PNGReader png; if(png.load(StringBuffer<200>(path).append("rgb8.png")).has()) { test.checkEqual(false, true, "read rgb8 error"); return; } test.checkEqual(32, png.getWidth(), "rgb8 width"); test.checkEqual(64, png.getHeight(), "rgb8 height"); test.checkEqual(3, png.getChannels(), "rgb8 channels"); test.checkEqual(true, png.getData() != nullptr, "rgb8 data"); } static void testReadRGB16(Test& test, const char* path) { PNGReader png; test.checkEqual( true, png.load((StringBuffer<200>(path).append("rgb16.png"))).has(), "read rgb16 error"); } static void testReadRGBA8(Test& test, const char* path) { PNGReader png; if(png.load(StringBuffer<200>(path).append("rgba8.png")).has()) { test.checkEqual(false, true, "read rgba8 error"); return; } test.checkEqual(32, png.getWidth(), "rgba8 width"); test.checkEqual(64, png.getHeight(), "rgba8 height"); test.checkEqual(4, png.getChannels(), "rgba8 channels"); test.checkEqual(true, png.getData() != nullptr, "rgba8 data"); } static void testReadRGBA16(Test& test, const char* path) { PNGReader png; test.checkEqual( true, png.load(StringBuffer<200>(path).append("rgba16.png")).has(), "read rgba16 error"); } static void testReadGray8(Test& test, const char* path) { PNGReader png; if(png.load(StringBuffer<200>(path).append("gray8.png")).has()) { test.checkEqual(false, true, "read gray8 error"); return; } test.checkEqual(32, png.getWidth(), "gray8 width"); test.checkEqual(64, png.getHeight(), "gray8 height"); test.checkEqual(1, png.getChannels(), "gray8 channels"); test.checkEqual(true, png.getData() != nullptr, "gray8 data"); } static void testReadGray16(Test& test, const char* path) { PNGReader png; test.checkEqual( true, png.load(StringBuffer<200>(path).append("gray16.png")).has(), "read gray16 error"); } static void testReadGrayA8(Test& test, const char* path) { PNGReader png; if(png.load(StringBuffer<200>(path).append("graya8.png")).has()) { test.checkEqual(false, true, "read graya8 error"); return; } test.checkEqual(32, png.getWidth(), "graya8 width"); test.checkEqual(64, png.getHeight(), "graya8 height"); test.checkEqual(2, png.getChannels(), "graya8 channels"); test.checkEqual(true, png.getData() != nullptr, "graya8 data"); } static void testReadGrayA16(Test& test, const char* path) { PNGReader png; test.checkEqual( true, png.load(StringBuffer<200>(path).append("graya16.png")).has(), "read graya16 error"); } void PNGReaderTests::test(const char* path) { Test test("PNGReader"); testReadRGB8(test, path); testReadRGB16(test, path); testReadRGBA8(test, path); testReadRGBA16(test, path); testReadGray8(test, path); testReadGray16(test, path); testReadGrayA8(test, path); testReadGrayA16(test, path); test.finalize(); }