diff options
author | Lode <lvandeve@gmail.com> | 2016-04-09 16:21:25 +0200 |
---|---|---|
committer | Lode <lvandeve@gmail.com> | 2016-04-09 16:21:25 +0200 |
commit | 1bdcf470b3416f24aefcb99bb4bba2fb0df9704d (patch) | |
tree | 7ed39ab7e7e0c604363c88017049faae99170947 /lodepng_unittest.cpp | |
parent | 3ea25a82805137025516375b8fdc005a8a951b18 (diff) |
color key and file handling
Diffstat (limited to 'lodepng_unittest.cpp')
-rw-r--r-- | lodepng_unittest.cpp | 42 |
1 files changed, 41 insertions, 1 deletions
diff --git a/lodepng_unittest.cpp b/lodepng_unittest.cpp index 8259db5..fcfea54 100644 --- a/lodepng_unittest.cpp +++ b/lodepng_unittest.cpp @@ -1,7 +1,7 @@ /* LodePNG Unit Test -Copyright (c) 2005-2015 Lode Vandevenne +Copyright (c) 2005-2016 Lode Vandevenne This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages @@ -608,6 +608,45 @@ void testColor(int r, int g, int b, int a) testSinglePixel(r, g, b, a); } +// Tests combinations of various colors in different orders +void testFewColors() +{ + std::cout << "codec test colors " << std::endl; + Image image; + image.width = 20; + image.height = 20; + image.colorType = LCT_RGBA; + image.bitDepth = 8; + image.data.resize(image.width * image.height * 4); + std::vector<unsigned char> colors; + colors.push_back(0); colors.push_back(0); colors.push_back(0); colors.push_back(255); + colors.push_back(255); colors.push_back(255); colors.push_back(255); colors.push_back(255); + colors.push_back(128); colors.push_back(128); colors.push_back(128); colors.push_back(255); + colors.push_back(0); colors.push_back(0); colors.push_back(255); colors.push_back(255); + colors.push_back(255); colors.push_back(255); colors.push_back(255); colors.push_back(0); + colors.push_back(255); colors.push_back(255); colors.push_back(255); colors.push_back(1); + for(size_t i = 0; i < colors.size(); i += 4) + for(size_t j = 0; j < colors.size(); j += 4) + for(size_t k = 0; k < colors.size(); k += 4) + for(size_t l = 0; l < colors.size(); l += 4) + { + for(size_t c = 0; c < 4; c++) + { + /*image.data[0 + c] = colors[i + c]; + image.data[4 + c] = colors[j + c]; + image.data[8 + c] = colors[k + c];*/ + for(unsigned y = 0; y < image.height; y++) + for(unsigned x = 0; x < image.width; x++) + { + image.data[y * image.width * 4 + x * 4 + c] = (x ^ y) ? colors[i + c] : colors[j + c]; + } + image.data[c] = colors[k + c]; + image.data[image.data.size() - 4 + c] = colors[l + c]; + } + doCodecTest(image); + } +} + void testSize(unsigned w, unsigned h) { std::cout << "codec test size " << w << " " << h << std::endl; @@ -1921,6 +1960,7 @@ void doMain() testPaletteToPaletteDecode2(); //Colors + testFewColors(); testColorKeyConvert(); testColorConvert(); testColorConvert2(); |