summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAnsis Brammanis <brammanis@gmail.com>2016-01-12 13:30:39 -0800
committerAnsis Brammanis <brammanis@gmail.com>2016-01-13 15:02:41 -0800
commite577354567c467ce5188020ba3e3a4b132a341d6 (patch)
tree96a1700b5f374b16bfa9218616cc650c454d8c87 /test
parentbdfa1277a5c28bc68a35b7fe59572d030e0a8d9e (diff)
downloadqtlocation-mapboxgl-e577354567c467ce5188020ba3e3a4b132a341d6.tar.gz
[core] remove bilinear, nearest scaling, fix #3164
Diffstat (limited to 'test')
-rw-r--r--test/miscellaneous/bilinear.cpp54
-rw-r--r--test/sprite/sprite_atlas.cpp24
-rw-r--r--test/test.gypi1
3 files changed, 8 insertions, 71 deletions
diff --git a/test/miscellaneous/bilinear.cpp b/test/miscellaneous/bilinear.cpp
deleted file mode 100644
index 3184e5739d..0000000000
--- a/test/miscellaneous/bilinear.cpp
+++ /dev/null
@@ -1,54 +0,0 @@
-#include "../fixtures/util.hpp"
-#include <mbgl/util/compression.hpp>
-#include <mbgl/util/scaling.hpp>
-#include <mbgl/util/premultiply.hpp>
-#include <mbgl/util/image.hpp>
-#include <mbgl/util/io.hpp>
-
-#include <algorithm>
-#include <cstring>
-
-using namespace mbgl;
-
-TEST(Bilinear, Scaling) {
- // We're reading from a custom "image format" that has a uint32_t width/height prefix and then
- // raw RGBA data. We can't use the built-in PNG reading routines because they are reading
- // premultiplied images by default.
- const std::string sprite = util::decompress(util::read_file("test/fixtures/sprites/bright.bin"));
- const uint8_t *src = reinterpret_cast<const uint8_t *>(sprite.data());
- ASSERT_GT(sprite.length(), 8u);
- const uint32_t width = src[0] << 24 | src[1] << 16 | src[2] << 8 | src[3];
- const uint32_t height = src[4] << 24 | src[5] << 16 | src[6] << 8 | src[7];
- ASSERT_EQ(sprite.length(), 2 * sizeof(uint32_t) + width * height * sizeof(uint32_t));
-
- const uint32_t *srcData = reinterpret_cast<const uint32_t *>(src + 8);
- const vec2<uint32_t> srcSize { width, height };
- const vec2<uint32_t> dstSize { 128, 128 };
-
- UnassociatedImage dst { dstSize.x, dstSize.y };
- uint32_t *dstData = reinterpret_cast<uint32_t*>(dst.data.get());
- std::fill(dstData, dstData + dstSize.x * dstSize.y, 0xFFFF00FF);
-
- util::bilinearScale(srcData, srcSize, { 0, 0, 24, 24 }, dstData, dstSize, { 8, 8, 24, 24 }, false);
- util::bilinearScale(srcData, srcSize, { 26, 0, 24, 24 }, dstData, dstSize, { 0, 40, 48, 48 }, false);
- util::bilinearScale(srcData, srcSize, { 26, 26, 24, 24 }, dstData, dstSize, { 52, 40, 36, 36 }, false);
- util::bilinearScale(srcData, srcSize, { 26, 26, 24, 24 }, dstData, dstSize, { 52, 40, 36, 36 }, false);
- util::bilinearScale(srcData, srcSize, { 104, 0, 24, 24 }, dstData, dstSize, { 96, 0, 48, 48 }, false);
- util::bilinearScale(srcData, srcSize, { 52, 260, 24, 24 }, dstData, dstSize, { 108, 108, 38, 38 }, false);
- util::bilinearScale(srcData, srcSize, { 380, 0, 24, 24 }, dstData, dstSize, { 36, 0, 24, 24 }, false);
- util::bilinearScale(srcData, srcSize, { 396, 396, 24, 24 }, dstData, dstSize, { 0, 0, 50, 50 }, false);
- util::bilinearScale(srcData, srcSize, { 380, 182, 12, 12 }, dstData, dstSize, { 52, 80, 24, 24 }, false);
-
- // From the bottom
- util::bilinearScale(srcData, srcSize, { 252, 380, 12, 12 }, dstData, dstSize, { 0, 90, 12, 12 }, false);
- util::bilinearScale(srcData, srcSize, { 252, 380, 12, 12 }, dstData, dstSize, { 18, 90, 24, 24 }, false);
-
- const std::string data { reinterpret_cast<char *>(dstData), dstSize.x * dstSize.y * sizeof(uint32_t) };
- util::write_file("test/fixtures/sprites/atlas_actual.png", encodePNG(util::premultiply(std::move(dst))));
- util::write_file("test/fixtures/sprites/atlas_actual.bin", util::compress(data));
-
- const std::string reference = util::decompress(util::read_file("test/fixtures/sprites/atlas_reference.bin"));
-
- EXPECT_EQ(reference.size(), data.size());
- EXPECT_TRUE(0 == std::memcmp(data.data(), reference.data(), data.size()));
-}
diff --git a/test/sprite/sprite_atlas.cpp b/test/sprite/sprite_atlas.cpp
index fd78e971fc..8e3c4317c0 100644
--- a/test/sprite/sprite_atlas.cpp
+++ b/test/sprite/sprite_atlas.cpp
@@ -34,8 +34,6 @@ TEST(Sprite, SpriteAtlas) {
EXPECT_EQ(0, metro.pos.y);
EXPECT_EQ(20, metro.pos.w);
EXPECT_EQ(20, metro.pos.h);
- EXPECT_EQ(18, metro.pos.originalW);
- EXPECT_EQ(18, metro.pos.originalH);
EXPECT_EQ(18, metro.texture->width);
EXPECT_EQ(18, metro.texture->height);
EXPECT_EQ(18, metro.texture->pixelWidth);
@@ -45,12 +43,12 @@ TEST(Sprite, SpriteAtlas) {
EXPECT_TRUE(atlas.getData());
auto pos = *atlas.getPosition("metro", false);
- EXPECT_DOUBLE_EQ(20, pos.size[0]);
- EXPECT_DOUBLE_EQ(20, pos.size[1]);
+ EXPECT_DOUBLE_EQ(18, pos.size[0]);
+ EXPECT_DOUBLE_EQ(18, pos.size[1]);
EXPECT_DOUBLE_EQ(1.0f / 63, pos.tl[0]);
EXPECT_DOUBLE_EQ(1.0f / 112, pos.tl[1]);
- EXPECT_DOUBLE_EQ(21.0f / 63, pos.br[0]);
- EXPECT_DOUBLE_EQ(21.0f / 112, pos.br[1]);
+ EXPECT_DOUBLE_EQ(19.0f / 63, pos.br[0]);
+ EXPECT_DOUBLE_EQ(19.0f / 112, pos.br[1]);
auto missing = atlas.getImage("doesnotexist", false);
EXPECT_FALSE(missing);
@@ -68,12 +66,10 @@ TEST(Sprite, SpriteAtlas) {
EXPECT_EQ(0, metro2.pos.y);
EXPECT_EQ(20, metro2.pos.w);
EXPECT_EQ(20, metro2.pos.h);
- EXPECT_EQ(18, metro2.pos.originalW);
- EXPECT_EQ(18, metro2.pos.originalH);
const size_t bytes = atlas.getTextureWidth() * atlas.getTextureHeight() * 4;
const auto hash = test::crc64(reinterpret_cast<const char*>(atlas.getData()), bytes);
- EXPECT_EQ(0x9875FC0595489A9Fu, hash) << std::hex << hash;
+ EXPECT_EQ(11868256915183397177u, hash) << std::hex << hash;
// util::write_file(
// "test/fixtures/annotations/atlas1.png",
@@ -98,10 +94,8 @@ TEST(Sprite, SpriteAtlasSize) {
auto metro = *atlas.getImage("metro", false);
EXPECT_EQ(0, metro.pos.x);
EXPECT_EQ(0, metro.pos.y);
- EXPECT_EQ(20, metro.pos.w);
- EXPECT_EQ(20, metro.pos.h);
- EXPECT_EQ(18, metro.pos.originalW);
- EXPECT_EQ(18, metro.pos.originalH);
+ EXPECT_EQ(16, metro.pos.w);
+ EXPECT_EQ(16, metro.pos.h);
EXPECT_EQ(18, metro.texture->width);
EXPECT_EQ(18, metro.texture->height);
EXPECT_EQ(18, metro.texture->pixelWidth);
@@ -110,7 +104,7 @@ TEST(Sprite, SpriteAtlasSize) {
const size_t bytes = atlas.getTextureWidth() * atlas.getTextureHeight() * 4;
const auto hash = test::crc64(reinterpret_cast<const char*>(atlas.getData()), bytes);
- EXPECT_EQ(0x2CDDA7DBB04D116Du, hash) << std::hex << hash;
+ EXPECT_EQ(18324190582232646342u, hash) << std::hex << hash;
// util::write_file(
// "test/fixtures/annotations/atlas2.png",
@@ -134,8 +128,6 @@ TEST(Sprite, SpriteAtlasUpdates) {
EXPECT_EQ(0, one.pos.y);
EXPECT_EQ(20, one.pos.w);
EXPECT_EQ(16, one.pos.h);
- EXPECT_EQ(16, one.pos.originalW);
- EXPECT_EQ(12, one.pos.originalH);
EXPECT_EQ(16, one.texture->width);
EXPECT_EQ(12, one.texture->height);
EXPECT_EQ(16, one.texture->pixelWidth);
diff --git a/test/test.gypi b/test/test.gypi
index f8818e2084..21b2038876 100644
--- a/test/test.gypi
+++ b/test/test.gypi
@@ -47,7 +47,6 @@
'miscellaneous/async_task.cpp',
'miscellaneous/clip_ids.cpp',
'miscellaneous/binpack.cpp',
- 'miscellaneous/bilinear.cpp',
'miscellaneous/comparisons.cpp',
'miscellaneous/functions.cpp',
'miscellaneous/geo.cpp',