#include "tests/ImageReaderTests.h" #include "images/ImageReader.h" #include "tests/Test.h" #include "utils/StringBuffer.h" typedef StringBuffer<200> String; static void testReadPNG(Test& test, const char* path, const char* name, unsigned int channels, unsigned int bitdepth) { ImageReader::Image image; Error error = ImageReader::load(image, String(path).append(name).append(".png")); if(error.has()) { test.checkEqual(false, true, String("read ").append(name).append(" error")); return; } test.checkEqual(32u, image.width, String(name).append(" width")); test.checkEqual(64u, image.height, String(name).append(" height")); test.checkEqual(channels, image.channels, String(name).append(" channels")); test.checkEqual(bitdepth, image.bitdepth, String(name).append(" bitdepth")); test.checkEqual(true, image.data != nullptr, String(name).append(" data")); } void ImageReaderTests::test(const char* path) { Test test("ImageReader"); testReadPNG(test, path, "rgb8", 3, 8); testReadPNG(test, path, "rgb16", 3, 16); testReadPNG(test, path, "rgba8", 4, 8); testReadPNG(test, path, "rgba16", 4, 16); testReadPNG(test, path, "gray8", 1, 8); testReadPNG(test, path, "gray16", 1, 16); testReadPNG(test, path, "graya8", 2, 8); testReadPNG(test, path, "graya16", 2, 16); test.finalize(); }