summaryrefslogtreecommitdiff
path: root/test/util/image.test.cpp
diff options
context:
space:
mode:
authorKonstantin Käfer <mail@kkaefer.com>2016-09-28 11:45:33 +0200
committerKonstantin Käfer <mail@kkaefer.com>2016-09-28 16:34:22 +0200
commit3f3fc7b7723698e44427e2a14a2f4906832800bf (patch)
tree5acadfa4d77817c41f612c89c93925a149cbcfc0 /test/util/image.test.cpp
parenta8b007daa0e85ea4b1a4898fd591d55d0117cc85 (diff)
downloadqtlocation-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.cpp101
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]);
+}