diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2016-09-28 11:45:33 +0200 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2016-09-28 16:34:22 +0200 |
commit | 3f3fc7b7723698e44427e2a14a2f4906832800bf (patch) | |
tree | 5acadfa4d77817c41f612c89c93925a149cbcfc0 /test/util/image.test.cpp | |
parent | a8b007daa0e85ea4b1a4898fd591d55d0117cc85 (diff) | |
download | qtlocation-mapboxgl-3f3fc7b7723698e44427e2a14a2f4906832800bf.tar.gz |
[test] add .test.cpp suffix to test case files
Diffstat (limited to 'test/util/image.test.cpp')
-rw-r--r-- | test/util/image.test.cpp | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/test/util/image.test.cpp b/test/util/image.test.cpp new file mode 100644 index 0000000000..b2814e66da --- /dev/null +++ b/test/util/image.test.cpp @@ -0,0 +1,101 @@ +#include <mbgl/test/util.hpp> + +#include <mbgl/util/premultiply.hpp> +#include <mbgl/util/image.hpp> +#include <mbgl/util/io.hpp> + +using namespace mbgl; + +TEST(Image, PNGRoundTrip) { + PremultipliedImage rgba { 1, 1 }; + rgba.data[0] = 128; + rgba.data[1] = 0; + rgba.data[2] = 0; + rgba.data[3] = 255; + + PremultipliedImage image = decodeImage(encodePNG(rgba)); + EXPECT_EQ(128, image.data[0]); + EXPECT_EQ(0, image.data[1]); + EXPECT_EQ(0, image.data[2]); + EXPECT_EQ(255, image.data[3]); +} + +TEST(Image, PNGRoundTripAlpha) { + PremultipliedImage rgba { 1, 1 }; + rgba.data[0] = 128; + rgba.data[1] = 0; + rgba.data[2] = 0; + rgba.data[3] = 128; + + PremultipliedImage image = decodeImage(encodePNG(rgba)); + EXPECT_EQ(128, image.data[0]); + EXPECT_EQ(0, image.data[1]); + EXPECT_EQ(0, image.data[2]); + EXPECT_EQ(128, image.data[3]); +} + +TEST(Image, PNGReadNoProfile) { + PremultipliedImage image = decodeImage(util::read_file("test/fixtures/image/no_profile.png")); + EXPECT_EQ(128, image.data[0]); + EXPECT_EQ(0, image.data[1]); + EXPECT_EQ(0, image.data[2]); + EXPECT_EQ(255, image.data[3]); +} + +TEST(Image, PNGReadNoProfileAlpha) { + PremultipliedImage image = decodeImage(util::read_file("test/fixtures/image/no_profile_alpha.png")); + EXPECT_EQ(64, image.data[0]); + EXPECT_EQ(0, image.data[1]); + EXPECT_EQ(0, image.data[2]); + EXPECT_EQ(128, image.data[3]); +} + +TEST(Image, PNGReadProfile) { + PremultipliedImage image = decodeImage(util::read_file("test/fixtures/image/profile.png")); + EXPECT_EQ(128, image.data[0]); + EXPECT_EQ(0, image.data[1]); + EXPECT_EQ(0, image.data[2]); + EXPECT_EQ(255, image.data[3]); +} + +TEST(Image, PNGReadProfileAlpha) { + PremultipliedImage image = decodeImage(util::read_file("test/fixtures/image/profile_alpha.png")); + EXPECT_EQ(64, image.data[0]); + EXPECT_EQ(0, image.data[1]); + EXPECT_EQ(0, image.data[2]); + EXPECT_EQ(128, image.data[3]); +} + +TEST(Image, PNGTile) { + PremultipliedImage image = decodeImage(util::read_file("test/fixtures/image/tile.png")); + EXPECT_EQ(256u, image.width); + EXPECT_EQ(256u, image.height); +} + +TEST(Image, JPEGTile) { + PremultipliedImage image = decodeImage(util::read_file("test/fixtures/image/tile.jpeg")); + EXPECT_EQ(256u, image.width); + EXPECT_EQ(256u, image.height); +} + +#if !defined(__ANDROID__) && !defined(__APPLE__) && !defined(QT_IMAGE_DECODERS) +TEST(Image, WebPTile) { + PremultipliedImage image = decodeImage(util::read_file("test/fixtures/image/tile.webp")); + EXPECT_EQ(256u, image.width); + EXPECT_EQ(256u, image.height); +} +#endif // !defined(__ANDROID__) && !defined(__APPLE__) && !defined(QT_IMAGE_DECODERS) + +TEST(Image, Premultiply) { + UnassociatedImage rgba { 1, 1 }; + rgba.data[0] = 255; + rgba.data[1] = 254; + rgba.data[2] = 253; + rgba.data[3] = 128; + + PremultipliedImage image = util::premultiply(std::move(rgba)); + EXPECT_EQ(128, image.data[0]); + EXPECT_EQ(127, image.data[1]); + EXPECT_EQ(127, image.data[2]); + EXPECT_EQ(128, image.data[3]); +} |