From 1dd81d9776baf9b9ef61b05d29f7acbb0f2a1508 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20K=C3=A4fer?= Date: Wed, 17 Feb 2016 15:53:14 +0100 Subject: [PATCH] [test] remove crc64 and compare images boost's crc64 breaks on iOS --- include/mbgl/util/image.hpp | 7 +++ .../annotations/result-spriteatlas-empty.png | Bin 0 -> 110 bytes .../result-spriteatlas-updated.png | Bin 0 -> 135 bytes .../annotations/result-spriteatlas.png | Bin 0 -> 1124 bytes .../annotations/result-spriteatlassize.png | Bin 0 -> 1118 bytes ...esult-spriteimagecreation1_5x-hospital.png | Bin 0 -> 838 bytes .../result-spriteimagecreation1_5x-museum.png | Bin 0 -> 918 bytes .../result-spriteimagecreation1x-blank.png | Bin 0 -> 91 bytes .../result-spriteimagecreation1x-museum.png | Bin 0 -> 647 bytes .../result-spriteimagecreation2x.png | Bin 0 -> 918 bytes .../annotations/result-spriteparsing.png | Bin 0 -> 730 bytes test/fixtures/util.cpp | 21 -------- test/fixtures/util.hpp | 4 -- test/sprite/sprite_atlas.cpp | 50 +++++++++--------- test/sprite/sprite_parser.cpp | 28 +++++++--- 15 files changed, 53 insertions(+), 57 deletions(-) create mode 100644 test/fixtures/annotations/result-spriteatlas-empty.png create mode 100644 test/fixtures/annotations/result-spriteatlas-updated.png create mode 100644 test/fixtures/annotations/result-spriteatlas.png create mode 100644 test/fixtures/annotations/result-spriteatlassize.png create mode 100644 test/fixtures/annotations/result-spriteimagecreation1_5x-hospital.png create mode 100644 test/fixtures/annotations/result-spriteimagecreation1_5x-museum.png create mode 100644 test/fixtures/annotations/result-spriteimagecreation1x-blank.png create mode 100644 test/fixtures/annotations/result-spriteimagecreation1x-museum.png create mode 100644 test/fixtures/annotations/result-spriteimagecreation2x.png create mode 100644 test/fixtures/annotations/result-spriteparsing.png diff --git a/include/mbgl/util/image.hpp b/include/mbgl/util/image.hpp index 7927b777e..a1c899d23 100644 --- a/include/mbgl/util/image.hpp +++ b/include/mbgl/util/image.hpp @@ -3,6 +3,7 @@ #include #include +#include namespace mbgl { @@ -26,6 +27,12 @@ public: height(h), data(std::move(data_)) {} + bool operator==(const Image& rhs) const { + return width == rhs.width && height == rhs.height && + std::equal(data.get(), data.get() + size(), rhs.data.get(), + rhs.data.get() + rhs.size()); + } + size_t stride() const { return width * 4; } size_t size() const { return width * height * 4; } diff --git a/test/fixtures/annotations/result-spriteatlas-empty.png b/test/fixtures/annotations/result-spriteatlas-empty.png new file mode 100644 index 0000000000000000000000000000000000000000..effcd38f1eee7db92a79cde54924aaeef89f8c5d GIT binary patch literal 110 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz#^NA%Cx&(BWL^R}8lEnWArYK! zFEj!<42Ku|43>Y=8jyIPfsvVwN5UWh!q~&lBcQ;*cus5UagZ`kS3j3^P6?fAQoLe4X?a0n~!3HE(2Chg0QjEnx?oJHr&dI!FU|^B+ba4!+ zV0=3xIz!k|r0smz#20&ZJyCg=F7q`SO%aYRBJv_yT(uqg zU%A2@wL7G=;{>jBxaw$J+oqv(>q}GljTI}`a!Ee-*;H7b++@1A;~(?QnZ;?}=3CxB zcka!R1@=>ZB|p=0mf$|Q!0YDH>(_E;c*LCe@5S48UVQ7%`s%`rWpe+H9ZZvYz5W;P z_ulxVW%ho@3}1fV{W_-Xiouare+2hUIQ`zB^tI)YViTEz-|J1Zc@JCYo9?yEw-2~` zQ*77g9n*K5S(#B`=c_I2pPl|Y^VXA(r_?>x=*hgy4rqJ5DEhqW`twiJO$54UeNyj> z-=}=)I?K^}$2PpE%H`5_P5%4n$=5K$rB(ZHR4woU`}pCB8qI>D#Lw zg*^z}y4VoF4ubW0=Sj_u^8rtgYa`2vz@`uJ@eI^~dBc zT{W{#YraL_EbCn_f=&zHx?a(J?>p~`w3xhi9RZJf+fUsKw)I}ieQHB|$xGGJH;>7@R#lnJUS(9K}{3at_&B(webd~Pq%a3xo7(}b*`T6^Mo~ircY0@ z_8(evTwZU_iJg~^-VznD+&WdF!FFr;J|)FRFE7VsT=IT(* z>yLA0Rex(b_cmtI8lxtmD@kT+Vy4gAn}0X;`N6jHcRGdVT3uMte0K4@D_ZB@?@0e) zV0v}Cj;CH-lN0OWJz53dA6(fOv3OpzefVubo9>V5O9fteyiT1R{;6->_LwD)4CS^e zYdFXDBpf`UWSYG1_Z-!`ReoRZtl9D)(r?DH@&t{mCmz4`%AB_0{Io?yWi5}KAMNJi zt`(eZpB%V7?pPmN*c(`E OFnGH9xvXEakt z!T9z@v`2`e#DS0RLza|XysPm-@!~wClOJ>ijOCkN#QhKuyt~4qX@!DPmmF7DliZu7 z)+LQ59a*Nk1VY>dIbD|qxlGCSG;iKKbE&As-26M6<;w52%2mCx-%!18=Ff9_|H|gf zG*+5YulHcd@3wb(&^OHgWUNskEch3 zZ?`Oey>jNRZxe2oExDJmZeK~(#oxyD%zGat+J0l>t4-=+~9Rxdly)ajWY2nk>iTvSytl4-Qrv?4T^{%KQ-itQmMmNxk$mbt z_m30bPU_ajtlRT9=kO8rsiNW$clJ!Y8MHMaYSCSOlldeD z6s5lB>b#aC+{!oY*|q*8AN|X&0;v;r^CitD3 z$424O500001b5ch_0Itp) z=>Px&07*naR9FekSiNo&K@gt3Sg{Q@vJpZeG@*c`K{zD{i6A5jDtH4w0jZ!Rv{0ER z@EbryfrJQB1SLi^1Pam+B!prM8*E3x$9(sf-MPKkPW(4g;@#Q#`EF)sZ}t=oN!>s7 zyRPfpAaYk(wUnSmW7GEUD#Mmmvu`t^0`l9;htTBKxFBdE#hp`$Atm@A7 zD%ost`!K=2VA{?4x>AaP3=Km1ZMd#m$>xjeav_{2g7KrFp0i*n6duuU&7E`a*`j0x zv)8JZdZga4^H@rH-92i3-lER;AJo~|A@MD*n<&~zu&g$*XxZ~6#60w1Q4Aw zw^r%Ig+-~-;FPU|DKo%yS`7d(_Q>w$d;0zHlQeRq`Kc?HIZ9WhZY`55tbpl+E2tVC zj|~X?;Gytvf=YpJ@*-nP4^s2<|Nn7wY7zE++YJUKag=eA6lmo6_d z{(*L|Pq10BNBWTj0(l!x+Oh1v0x$$=@=n%B2UR0WHd-9PAgoN&lv{T2u3=_WJrEqW zd`+W+&EP{kaKZ6kdItt@piPRTFHV#9_Kp1GWStaAUnzEMlrxTaNw%tyGWvY!;RAi@ zjcrvXeMRR?s4ep7u?MM;P(SI{W<&alfk`qpF8+SA8JV6sm{dMLJ76LtJcvcc)_-90 z9hYo2q%TxcjsK#GLSuyYl1@qQ8e7#sZ|liZT|IFOUpjGQ)P~MLhc+paz8qX9bmwRl zCq>ei6WnVWApqnNt>U-|KE$5kHq;|k)tx8wth>#sC2yI^i1Qfx!if7mVnjXYEI} z3bFB|9oUvpp%hiUP7lJtW$lr!ILiJvv}@~wIVz8Fxr@L+c-jrQ0mjw~1LRb$DsVhA zmpFg{B>}>k-@kzu0#2<@jpUOx4PQ&NdU>}SA15&MbYge<8 Qg#Z8m07*qoM6N<$g6FS`dH?_b literal 0 HcmV?d00001 diff --git a/test/fixtures/annotations/result-spriteimagecreation1_5x-museum.png b/test/fixtures/annotations/result-spriteimagecreation1_5x-museum.png new file mode 100644 index 0000000000000000000000000000000000000000..96cebabc950c5659f6016974dff6e515e2d91b3a GIT binary patch literal 918 zcmV;H18Mw;P)Px&P)S5VR9FekSj|pTK@>i73rP91RY5Um=mrx)NMWNJ6=U4%)`j5>d<9;CHy|!t zndqJvK{vX=h7gQwAWB3*?UlbGKfTU(dpn(b?hI|Qg?`Cx=FB-~&eu6Jcg|cvRpReX z_MzuFcZs|)>6*5V2TmD1Y^_+Zm39^o+7Kf5OZSsjzZ|XcjHo$eryVuf@%y3GMjviW98md7Y&T|n1~rkg$M;{`Y0oWW@ck`n-)KOkIcrgOf)5CY4GM1 z>h9~%di|y=(>J20FGOf>+Xb1>npv9Lps$~^e4rD_*KQ=`Y;|+rOlwDCq}ZtvjNK$V z>qZ6v@yGB78PY*)zuTW7Q>u`r`FG!xZ~xF`8oYH~$<;I#-+!T%g&)dg`1VzvK9xFu zh6*pe(z?L{#+uRbdu>Y>t7>y!!+J~v94JVc{{~h;u$%aH-u$&o^KX~wVE;(jm21Ej zKJe91+_8FJa0-xvvq>t{u7a^`Yp*W-r0HjKYMetE5RVP8g^vk{!TxjtT%5u|S#rTk zuTspu_(XV$c>R2V@Kg#O3tVK%{8L+vfj4la;4{SKa^pl}d1F{Zp{^q%;VK6^58`a8=PeQFhwU zH*kp_JQ=mABmJ<2j}1H)xH!SR$t^k|uP8e?x-PcS@SPMjYboM3T!t-t;LCv+Yz?{K z5-e&lr8}5v;0wK-x=B@S?h7J_p#xVW$Q2i8y7T|G%NA%TvWpCh!BCK+2Cg+QCNK8= z3uJJsZMY&oM95TIV}{P`8ie2tbx{N%z(xwXLWz5dS7`(V8tP+1fl}eOVLr!%NXZXY sbV%bT{7xiKff|0W(utv6?@xOF0HA5TT~~h*6aWAK07*qoM6N<$f&{OvD*ylh literal 0 HcmV?d00001 diff --git a/test/fixtures/annotations/result-spriteimagecreation1x-blank.png b/test/fixtures/annotations/result-spriteimagecreation1x-blank.png new file mode 100644 index 0000000000000000000000000000000000000000..76135866726eaab1290eae8c427b0de09d858103 GIT binary patch literal 91 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|L_J*`Lo5W7 m6C_v{D;h{KEmmaUWMp6wU|`&r9IOOXz~JfX=d#Wzp$Py0zY-|` literal 0 HcmV?d00001 diff --git a/test/fixtures/annotations/result-spriteimagecreation1x-museum.png b/test/fixtures/annotations/result-spriteimagecreation1x-museum.png new file mode 100644 index 0000000000000000000000000000000000000000..3f45c7de2bcc735010443669270f882417ad34e4 GIT binary patch literal 647 zcmV;20(kw2P)Px%K}keGR5%f>Q^{@2MgsuN#p9Odi`8o3()`xmC7_~ z>Q1BPDgMHqZ>3pR*9Tl75qJ7kbyo;+oBf%1tj8{fVR$QpNi8uh?nDLa|s&!v%+t$iUenJX7zL`0naYqsZt-8Q{_w#`Jp5FaQf&W=;=%(#vj zGELNd&O)Q!qF2jb$aZWRbrS4kYRHrK6Dsz)lSH;p9Y8+m;aRr#Ky-`Lhv+rlfBF zFkhOQ&63f;&EGr^rA1DRnkn~&os@jcQ(fc~r;p7@`ua(6y93>Rb0Myg73S#V#jFnT z-rYBoJB&_qC)HNhEK72cOQvrb3gGlJ(JlXR!1 z9uMNRge%u0A^`oG%JaBCFqbfFUUzxX9Te7di7`bcxd9U3`-tH1eKl?ESqm6@*aO5v hO-2H`C#3XD{5N}@10Q#eB^dw!002ovPDHLkV1m=TD&GJA literal 0 HcmV?d00001 diff --git a/test/fixtures/annotations/result-spriteimagecreation2x.png b/test/fixtures/annotations/result-spriteimagecreation2x.png new file mode 100644 index 0000000000000000000000000000000000000000..96cebabc950c5659f6016974dff6e515e2d91b3a GIT binary patch literal 918 zcmV;H18Mw;P)Px&P)S5VR9FekSj|pTK@>i73rP91RY5Um=mrx)NMWNJ6=U4%)`j5>d<9;CHy|!t zndqJvK{vX=h7gQwAWB3*?UlbGKfTU(dpn(b?hI|Qg?`Cx=FB-~&eu6Jcg|cvRpReX z_MzuFcZs|)>6*5V2TmD1Y^_+Zm39^o+7Kf5OZSsjzZ|XcjHo$eryVuf@%y3GMjviW98md7Y&T|n1~rkg$M;{`Y0oWW@ck`n-)KOkIcrgOf)5CY4GM1 z>h9~%di|y=(>J20FGOf>+Xb1>npv9Lps$~^e4rD_*KQ=`Y;|+rOlwDCq}ZtvjNK$V z>qZ6v@yGB78PY*)zuTW7Q>u`r`FG!xZ~xF`8oYH~$<;I#-+!T%g&)dg`1VzvK9xFu zh6*pe(z?L{#+uRbdu>Y>t7>y!!+J~v94JVc{{~h;u$%aH-u$&o^KX~wVE;(jm21Ej zKJe91+_8FJa0-xvvq>t{u7a^`Yp*W-r0HjKYMetE5RVP8g^vk{!TxjtT%5u|S#rTk zuTspu_(XV$c>R2V@Kg#O3tVK%{8L+vfj4la;4{SKa^pl}d1F{Zp{^q%;VK6^58`a8=PeQFhwU zH*kp_JQ=mABmJ<2j}1H)xH!SR$t^k|uP8e?x-PcS@SPMjYboM3T!t-t;LCv+Yz?{K z5-e&lr8}5v;0wK-x=B@S?h7J_p#xVW$Q2i8y7T|G%NA%TvWpCh!BCK+2Cg+QCNK8= z3uJJsZMY&oM95TIV}{P`8ie2tbx{N%z(xwXLWz5dS7`(V8tP+1fl}eOVLr!%NXZXY sbV%bT{7xiKff|0W(utv6?@xOF0HA5TT~~h*6aWAK07*qoM6N<$f&{OvD*ylh literal 0 HcmV?d00001 diff --git a/test/fixtures/annotations/result-spriteparsing.png b/test/fixtures/annotations/result-spriteparsing.png new file mode 100644 index 0000000000000000000000000000000000000000..ba5840cdf795d35c4354511270db653bfc733641 GIT binary patch literal 730 zcmV<00ww*4P)Px%lu1NER5%fhRL^S@K@@(oO-<59leNVdDM?g{?ZH|Vt@M1i0Oz0?oeKZn2CVhfL%I)(fVMrj$Faou1kz+fs zoZq5XA65up2T7#gPZMK9+uWjbc8zj{pE4fw_tKsCsMNX5c$ehG5|2>9)ASNo(v-oeYvXh_a)O$z7P-1K z33h2POlG-48^$jx*Xo=n2-OK8q8c?Qfs>!PCB?`2Qv(#zkH`w1r8AT_igbT=PJ&#& zIE-{D3#;Fi%70miyReq?cFE8I0(t#@N$yyxyLEb#Ss}E1GT0~m=mK;=G`aGkT7rH2 z50Hwf9c^_=VY@6{p#4C(b@d8Y;FA0(y)#)A;8fI^02`#DO|+x?ypp5Nyhy)IgNC6( z5X06f(coVnW=3(>o`*4jxLQ{0F%zD^w9aS0%0c|}ZNtgU6}B85iczZYw4W2 zv}g}x$;8!&W!5+8B~SJLNTA0}w|O7|#FslMInv0Q=EEkcx^ZFfpEzh|Vr#?+y=|e2k#LYMpAI=Kx$9P3=(_0uNicqgm@j}uVMElw z1$sQ>XCOzo5_iK&0tCK2KycVE0j`ahWYfNt2q<9y<^*rioN{6R4GUoQW$BY5=>Px# M07*qoM6N<$f{uS#8~^|S literal 0 HcmV?d00001 diff --git a/test/fixtures/util.cpp b/test/fixtures/util.cpp index 5617b15e8..0829fe72d 100644 --- a/test/fixtures/util.cpp +++ b/test/fixtures/util.cpp @@ -8,11 +8,6 @@ #include -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wshadow" -#include -#pragma GCC diagnostic pop - #include #include @@ -90,22 +85,6 @@ Server::~Server() { } } - -// from https://gist.github.com/ArtemGr/997887 -uint64_t crc64(const char* data, size_t size) { - boost::crc_optimal<64, 0x04C11DB7, 0, 0, false, false> crc; - crc.process_bytes(data, size); - return crc.checksum(); -} - -uint64_t crc64(const std::string& str) { - return crc64(str.data(), str.size()); -} - -uint64_t crc64(const PremultipliedImage &image) { - return crc64(reinterpret_cast(image.data.get()), image.size()); -} - PremultipliedImage render(Map& map) { std::promise promise; map.renderStill([&](std::exception_ptr, PremultipliedImage&& image) { diff --git a/test/fixtures/util.hpp b/test/fixtures/util.hpp index 2e27e5bf0..911f2073b 100644 --- a/test/fixtures/util.hpp +++ b/test/fixtures/util.hpp @@ -31,10 +31,6 @@ private: int fd = -1; }; -uint64_t crc64(const char*, size_t); -uint64_t crc64(const std::string&); -uint64_t crc64(const PremultipliedImage&); - PremultipliedImage render(Map&); void checkImage(const std::string& base, diff --git a/test/sprite/sprite_atlas.cpp b/test/sprite/sprite_atlas.cpp index d9a8c5c72..81abbae93 100644 --- a/test/sprite/sprite_atlas.cpp +++ b/test/sprite/sprite_atlas.cpp @@ -9,6 +9,22 @@ using namespace mbgl; +namespace { + +auto readImage(const std::string& name) { + return decodeImage(util::read_file(name)); +} + +auto imageFromAtlas(const SpriteAtlas& atlas) { + const size_t bytes = atlas.getTextureWidth() * atlas.getTextureHeight() * 4; + auto data = std::make_unique(bytes); + const auto src = reinterpret_cast(atlas.getData()); + std::copy(src, src + bytes, data.get()); + return PremultipliedImage{ atlas.getTextureWidth(), atlas.getTextureHeight(), std::move(data) }; +} + +} // namespace + TEST(Sprite, SpriteAtlas) { FixtureLog log; @@ -67,13 +83,7 @@ TEST(Sprite, SpriteAtlas) { EXPECT_EQ(20, metro2.pos.w); EXPECT_EQ(20, metro2.pos.h); - const size_t bytes = atlas.getTextureWidth() * atlas.getTextureHeight() * 4; - const auto hash = test::crc64(reinterpret_cast(atlas.getData()), bytes); - EXPECT_EQ(11868256915183397177u, hash) << std::hex << hash; - - // util::write_file( - // "test/fixtures/annotations/atlas1.png", - // util::compress_png(atlas.getTextureWidth(), atlas.getTextureHeight(), atlas.getData())); + EXPECT_EQ(readImage("test/fixtures/annotations/result-spriteatlas.png"), imageFromAtlas(atlas)); } TEST(Sprite, SpriteAtlasSize) { @@ -102,13 +112,8 @@ TEST(Sprite, SpriteAtlasSize) { EXPECT_EQ(18, metro.spriteImage->image.height); EXPECT_EQ(1.0f, metro.spriteImage->pixelRatio); - const size_t bytes = atlas.getTextureWidth() * atlas.getTextureHeight() * 4; - const auto hash = test::crc64(reinterpret_cast(atlas.getData()), bytes); - EXPECT_EQ(18324190582232646342u, hash) << std::hex << hash; - - // util::write_file( - // "test/fixtures/annotations/atlas2.png", - // util::compress_png(atlas.getTextureWidth(), atlas.getTextureHeight(), atlas.getData())); + EXPECT_EQ(readImage("test/fixtures/annotations/result-spriteatlassize.png"), + imageFromAtlas(atlas)); } TEST(Sprite, SpriteAtlasUpdates) { @@ -134,9 +139,8 @@ TEST(Sprite, SpriteAtlasUpdates) { EXPECT_EQ(12, one.spriteImage->image.height); EXPECT_EQ(1.0f, one.spriteImage->pixelRatio); - const size_t bytes = atlas.getTextureWidth() * atlas.getTextureHeight() * 4; - const auto hash = test::crc64(reinterpret_cast(atlas.getData()), bytes); - EXPECT_EQ(0x0000000000000000u, hash) << std::hex << hash; + EXPECT_EQ(readImage("test/fixtures/annotations/result-spriteatlas-empty.png"), + imageFromAtlas(atlas)); // Update sprite PremultipliedImage image2(16, 12); @@ -148,16 +152,12 @@ TEST(Sprite, SpriteAtlasUpdates) { ASSERT_EQ(newSprite, store.getSprite("one")); // Atlas texture hasn't changed yet. - const auto hash2 = test::crc64(reinterpret_cast(atlas.getData()), bytes); - EXPECT_EQ(0x0000000000000000u, hash2) << std::hex << hash2; + EXPECT_EQ(readImage("test/fixtures/annotations/result-spriteatlas-empty.png"), + imageFromAtlas(atlas)); atlas.updateDirty(); // Now the atlas texture has changed. - const auto hash3 = test::crc64(reinterpret_cast(atlas.getData()), bytes); - EXPECT_EQ(0x4E6D4900CD2D9149u, hash3) << std::hex << hash3; - - // util::write_file( - // "test/fixtures/annotations/atlas3.png", - // util::compress_png(atlas.getTextureWidth(), atlas.getTextureHeight(), atlas.getData())); + EXPECT_EQ(readImage("test/fixtures/annotations/result-spriteatlas-updated.png"), + imageFromAtlas(atlas)); } diff --git a/test/sprite/sprite_parser.cpp b/test/sprite/sprite_parser.cpp index 54c013e93..177662db4 100644 --- a/test/sprite/sprite_parser.cpp +++ b/test/sprite/sprite_parser.cpp @@ -11,6 +11,14 @@ using namespace mbgl; +namespace { + +auto readImage(const std::string& name) { + return decodeImage(util::read_file(name)); +} + +} // namespace + TEST(Sprite, SpriteImageCreationInvalid) { FixtureLog log; @@ -48,7 +56,8 @@ TEST(Sprite, SpriteImageCreation1x) { EXPECT_EQ(18, sprite->image.width); EXPECT_EQ(18, sprite->image.height); EXPECT_EQ(1, sprite->pixelRatio); - EXPECT_EQ(0x7FCC5F263D1FFE16u, test::crc64(sprite->image)); + EXPECT_EQ(readImage("test/fixtures/annotations/result-spriteimagecreation1x-museum.png"), + sprite->image); } { // outside image == blank @@ -59,7 +68,8 @@ TEST(Sprite, SpriteImageCreation1x) { EXPECT_EQ(16, sprite->image.width); EXPECT_EQ(16, sprite->image.height); EXPECT_EQ(1, sprite->pixelRatio); - EXPECT_EQ(0x0000000000000000u, test::crc64(sprite->image)) << std::hex << test::crc64(sprite->image); + EXPECT_EQ(readImage("test/fixtures/annotations/result-spriteimagecreation1x-blank.png"), + sprite->image); } { // outside image == blank @@ -70,7 +80,8 @@ TEST(Sprite, SpriteImageCreation1x) { EXPECT_EQ(16, sprite->image.width); EXPECT_EQ(16, sprite->image.height); EXPECT_EQ(1, sprite->pixelRatio); - EXPECT_EQ(0x0000000000000000u, test::crc64(sprite->image)) << std::hex << test::crc64(sprite->image); + EXPECT_EQ(readImage("test/fixtures/annotations/result-spriteimagecreation1x-blank.png"), + sprite->image); } } @@ -85,7 +96,8 @@ TEST(Sprite, SpriteImageCreation2x) { EXPECT_EQ(36, sprite->image.width); EXPECT_EQ(36, sprite->image.height); EXPECT_EQ(2, sprite->pixelRatio); - EXPECT_EQ(0x85F345098DD4F9E3u, test::crc64(sprite->image)); + EXPECT_EQ(readImage("test/fixtures/annotations/result-spriteimagecreation2x.png"), + sprite->image); } TEST(Sprite, SpriteImageCreation1_5x) { @@ -99,7 +111,8 @@ TEST(Sprite, SpriteImageCreation1_5x) { EXPECT_EQ(36, sprite->image.width); EXPECT_EQ(36, sprite->image.height); EXPECT_EQ(1.5, sprite->pixelRatio); - EXPECT_EQ(0x85F345098DD4F9E3u, test::crc64(sprite->image)); + EXPECT_EQ(readImage("test/fixtures/annotations/result-spriteimagecreation1_5x-museum.png"), + sprite->image); // "hospital_icon":{"x":314,"y":518,"width":36,"height":36,"pixelRatio":2,"sdf":false} const auto sprite2 = createSpriteImage(image_2x, 314, 518, 35, 35, 1.5, false); @@ -109,7 +122,8 @@ TEST(Sprite, SpriteImageCreation1_5x) { EXPECT_EQ(35, sprite2->image.width); EXPECT_EQ(35, sprite2->image.height); EXPECT_EQ(1.5, sprite2->pixelRatio); - EXPECT_EQ(14312995667113444493u, test::crc64(sprite2->image)); + EXPECT_EQ(readImage("test/fixtures/annotations/result-spriteimagecreation1_5x-hospital.png"), + sprite2->image); } TEST(Sprite, SpriteParsing) { @@ -204,7 +218,7 @@ TEST(Sprite, SpriteParsing) { EXPECT_EQ(18, sprite->image.width); EXPECT_EQ(18, sprite->image.height); EXPECT_EQ(1, sprite->pixelRatio); - EXPECT_EQ(0xFF56F5F48F707147u, test::crc64(sprite->image)); + EXPECT_EQ(readImage("test/fixtures/annotations/result-spriteparsing.png"), sprite->image); } }