Browse Source

Add SHA3-512 digests verification to test assets.

Jeroen van Rijn 1 year ago
parent
commit
b2f432c223
1 changed files with 202 additions and 41 deletions
  1. 202 41
      tests/core/download_assets.py

+ 202 - 41
tests/core/download_assets.py

@@ -4,49 +4,199 @@ import shutil
 import sys
 import os
 import zipfile
+import hashlib
 
 TEST_SUITES        = ['PNG', 'XML']
 DOWNLOAD_BASE_PATH = "assets/{}"
 ASSETS_BASE_URL    = "https://raw.githubusercontent.com/odin-lang/test-assets/master/{}/{}"
-PNG_IMAGES         = [
-	"basi0g01.png", "basi0g02.png", "basi0g04.png", "basi0g08.png", "basi0g16.png", "basi2c08.png",
-	"basi2c16.png", "basi3p01.png", "basi3p02.png", "basi3p04.png", "basi3p08.png", "basi4a08.png",
-	"basi4a16.png", "basi6a08.png", "basi6a16.png", "basn0g01.png", "basn0g02.png", "basn0g04.png",
-	"basn0g08.png", "basn0g16.png", "basn2c08.png", "basn2c16.png", "basn3p01.png", "basn3p02.png",
-	"basn3p04.png", "basn3p08.png", "basn4a08.png", "basn4a16.png", "basn6a08.png", "basn6a16.png",
-	"bgai4a08.png", "bgai4a16.png", "bgan6a08.png", "bgan6a16.png", "bgbn4a08.png", "bggn4a16.png",
-	"bgwn6a08.png", "bgyn6a16.png", "ccwn2c08.png", "ccwn3p08.png", "cdfn2c08.png", "cdhn2c08.png",
-	"cdsn2c08.png", "cdun2c08.png", "ch1n3p04.png", "ch2n3p08.png", "cm0n0g04.png", "cm7n0g04.png",
-	"cm9n0g04.png", "cs3n2c16.png", "cs3n3p08.png", "cs5n2c08.png", "cs5n3p08.png", "cs8n2c08.png",
-	"cs8n3p08.png", "ct0n0g04.png", "ct1n0g04.png", "cten0g04.png", "ctfn0g04.png", "ctgn0g04.png",
-	"cthn0g04.png", "ctjn0g04.png", "ctzn0g04.png", "exif2c08.png", "f00n0g08.png", "f00n2c08.png",
-	"f01n0g08.png", "f01n2c08.png", "f02n0g08.png", "f02n2c08.png", "f03n0g08.png", "f03n2c08.png",
-	"f04n0g08.png", "f04n2c08.png", "f99n0g04.png", "g03n0g16.png", "g03n2c08.png", "g03n3p04.png",
-	"g04n0g16.png", "g04n2c08.png", "g04n3p04.png", "g05n0g16.png", "g05n2c08.png", "g05n3p04.png",
-	"g07n0g16.png", "g07n2c08.png", "g07n3p04.png", "g10n0g16.png", "g10n2c08.png", "g10n3p04.png",
-	"g25n0g16.png", "g25n2c08.png", "g25n3p04.png", "oi1n0g16.png", "oi1n2c16.png",	"oi2n0g16.png",
-	"oi2n2c16.png", "oi4n0g16.png", "oi4n2c16.png", "oi9n0g16.png", "oi9n2c16.png", "pp0n2c16.png",
-	"pp0n6a08.png", "ps1n0g08.png", "ps1n2c16.png", "ps2n0g08.png", "ps2n2c16.png", "s01i3p01.png",
-	"s01n3p01.png", "s02i3p01.png", "s02n3p01.png", "s03i3p01.png", "s03n3p01.png", "s04i3p01.png",
-	"s04n3p01.png", "s05i3p02.png", "s05n3p02.png", "s06i3p02.png", "s06n3p02.png", "s07i3p02.png",
-	"s07n3p02.png", "s08i3p02.png", "s08n3p02.png", "s09i3p02.png", "s09n3p02.png", "s32i3p04.png",
-	"s32n3p04.png", "s33i3p04.png", "s33n3p04.png", "s34i3p04.png", "s34n3p04.png", "s35i3p04.png",
-	"s35n3p04.png", "s36i3p04.png", "s36n3p04.png", "s37i3p04.png", "s37n3p04.png", "s38i3p04.png",
-	"s38n3p04.png", "s39i3p04.png", "s39n3p04.png", "s40i3p04.png", "s40n3p04.png", "tbbn0g04.png",
-	"tbbn2c16.png", "tbbn3p08.png", "tbgn2c16.png", "tbgn3p08.png", "tbrn2c08.png", "tbwn0g16.png",
-	"tbwn3p08.png", "tbyn3p08.png", "tm3n3p02.png", "tp0n0g08.png", "tp0n2c08.png", "tp0n3p08.png",
-	"tp1n3p08.png", "xc1n0g08.png", "xc9n2c08.png", "xcrn0g04.png", "xcsn0g01.png", "xd0n2c08.png",
-	"xd3n2c08.png", "xd9n2c08.png", "xdtn0g01.png", "xhdn0g08.png", "xlfn0g04.png", "xs1n0g01.png",
-	"xs2n0g01.png", "xs4n0g01.png", "xs7n0g01.png", "z00n2c08.png", "z03n2c08.png", "z06n2c08.png",
-	"z09n2c08.png",
-	"PngSuite.png", "logo-slim.png", "emblem-1024.png"
-]
+
+DIGESTS = {
+	'basi0g01.png': "b5008fe99ddbdda3fa01d74af76c174f206478cc58618872da5231907a026ee3e5a2506ad3575edd9a395bda4632b6927d028a42121a5675a329b2470b9bd8fc",
+	'basi0g02.png': "d10ac5a9eda33b2b0061c6b15ff5a95c300a2eb7a600db1e2b03b60b9fd36caadf2bd6e32ae42acc5e69ac63abc32d297af0716f654db77897e7b9a2ee4e2b48",
+	'basi0g04.png': "7319490d96ee805acc86ad86d2ef5e5219320519cc29c6051adb886b242e1a29dce8329ddf7483a24364acd03cf6b51c74f0783b363bc1358a1b9acf080b2664",
+	'basi0g08.png': "1d91e7b475e0b5a9427101fbc7369bc024b2748095ba526ca3ccf47bb22478d15e5df61ae0449ee85f4e2a8ef5707493ec60281ea691bfef2391e21557318e44",
+	'basi0g16.png': "47e5694a42bbcab0b2a0079d17fed0b7a296f418e818be24f7ec77299469b43f63145869a150fca5682dc5de1315b514cd775022f306cabe9f1a7c6a50eaef92",
+	'basi2c08.png': "a29fd3e5d8ac542b907a2b40800a8159e62f12bd14125f4d103407f012f0cfcaadcf0c2afdcacf928201e06362b887b729b4f96b5b17e23fe9e6df381b2494f4",
+	'basi2c16.png': "c6a65d2b5b07c9339e799564443865767d8530634b590f11caef74a2e8764516d63a4cab96de0ab6941bb877c16eb913f78e0d9135fbbbd831719d079f0087bc",
+	'basi3p01.png': "661d31721f82c533e0412f327d67cc0590a82501ccf2addeee73d42f91307b738d5bae612f4a7227779a08df4817502616dd92c7d54706bae150df6c1d1213db",
+	'basi3p02.png': "abf601db3a5cdb94688da772e051756dcc4d14b744812893be8d68b8ad82921c24a55e8da528b5653192de74217a6ec886a44d162ef35abfa2f056ae989ed02a",
+	'basi3p04.png': "cbd9ac744036bd94ecf453616fd2ca599c9725c8b1600bab2453f9936979ead1dc3aa0194383811cc87ded45bbad5a02af48e8d060f7945ad1fd68cce7bc3e31",
+	'basi3p08.png': "17d7b42a7a5eda85305a566a05b30f1873c0f76ed26b7211ebb03e4d806f7c7cc1adc00048e090b9bb4246769b9732f4ab84604d4568456f492d5dd048e75db8",
+	'basi4a08.png': "1b697908e8cbdc55c501c2bca48a5314540d3b74ac395556846ceeb63a5511e4552f9f3e1227ba36516bbe6ee157f60c2fc4120f51dfa1307c0e9312bbb24b14",
+	'basi4a16.png': "24685550d46b2a420b906ef5af1f9efac058b6a8fee1aef35f10b9a68475f4df6cee1cbf7c15169a333012bcf5d76755fc795dda8799e9e58966d3e9ff4c83d4",
+	'basi6a08.png': "bdf48010b049bbc08e35050b0bff0f2c91a115b095dc8d4ccd53f89942046aec2c9a81c3ae0ff8eb7b3a2a3b0cf6bf88cde6b02262efd5c0810f9ff5b1e3d431",
+	'basi6a16.png': "64f6a1bdce69f6b9f0946fc37125be638681a134de895c7fb7a107e8fe6222e158d94fc80c99756f4703be5c4b413f9fb4c7a30dcf7ad6ce91a45b18bced7237",
+	'basn0g01.png': "7bd2c8a317e41d497e899958bc023a11fd7a5d77f5655762d92b504fff63a57d3e743eeae224106a672dda921f4947c044051344b06757dd0c26c2eb82d1bca7",
+	'basn0g02.png': "a1b04ae6a6c7476f223d2423f3851efdc237d4f86f94c008a4caefe23f3c927d44e4934ee798947a0ee0b3fd95fd98f1c5070a2bcb82765bb3015fb12055253c",
+	'basn0g04.png': "b011cb0f75a0fb72da15794b67e8520a964cf5b15010e3b831fb19640b4253f034bb693ecbe5d71c8352adc6fbd749847b7df582f2bfd9d7a03f3973398d8ab9",
+	'basn0g08.png': "814c2036b0c13bd043da94fbf3c98d9220f410387c0d295e1b0087f782e9f0c2c21d43b5e15db0c652069a0fb79f4d83e7178ec9b65b96eb0baed8949890239d",
+	'basn0g16.png': "7daf56e398e9801bd0be5904b6e22ef87c574c326037af180dcf60800a3ffc0ae47463ddbb268396e3121bba8958df2d208df2d442e24c363ec802d2275f6337",
+	'basn2c08.png': "3ebf04d33f8a07d01565830db5d5026370f803fa2f2bbb72708c9af5b29a5269880d25f0784e183d68527a74e3ad63c2dd02c7615888cb0674cb08d7b729d933",
+	'basn2c16.png': "ed7cd6ae047bcc58844d69cfb918a40bfb999bdcef6353e2dfc33dd041378adc08b48c9baca202f39d83456f1752727db82f4746aa9a6f7fd243afbc5eabed7e",
+	'basn3p01.png': "52418cc42834d521446dc8863f61c3af0e409e41ab7b372204af477d1df856bd4fb65f060f6358efe1b011fb7e26f72b573721e57fef637d015c56fff8484d42",
+	'basn3p02.png': "37afc5d1ecb43635e93a699dd4a22089fb096715deb327864f182cece0ac2df1b561a82c758a2a8e5baa9d296b90af90fe34b4de596b2eb113af0be2934ad2ba",
+	'basn3p04.png': "0e9373728af095033e577cc63c5638d0cb34fcda44d2cac34789fc854a3b75a89fd5c54a62118d9e5bb30f57e834635350d1b7a7b4894481b2cdd87f6216380b",
+	'basn3p08.png': "1adebd9dcc092df2ddce0568e66751d31cf4c30a2b580e4dcd5e4202471a69d78e7c89c4ecb4fc610baae68df9120708e512e900c075660ae45317305317ac68",
+	'basn4a08.png': "1557ad77873b34bf5ec3e5508749b2046cdfa8f95c01073e354b2fa3fe89432459daff7da8888512050b71e79e0a2f97bab1d80f2d3a387f5e2587b8c0334455",
+	'basn4a16.png': "35e69781cb2c278e594b098f75c659ad01d1b5d93e96268a49a1e27fd811cde499c21b696e9de43f5a7d451b3313c8db7e63935ee1caec9d45ba113f4cb423bd",
+	'basn6a08.png': "ae0e18af14740ee1fb0e5e4036f00e8b323f1b86078c577fda80fbe44ead15fc6beeb2069a787e8e8e9a36dbc5018fa6412e99889c85b8a3679addb173547649",
+	'basn6a16.png': "3b72b89fef39df23e9ed606d744a4356f3b5aad7c62c723a393882985ee849ab5a687fb4423120ba6f1efc62d916e8f781ebb54f7aa99753569bdae59fe758d5",
+	'bgai4a08.png': "1b697908e8cbdc55c501c2bca48a5314540d3b74ac395556846ceeb63a5511e4552f9f3e1227ba36516bbe6ee157f60c2fc4120f51dfa1307c0e9312bbb24b14",
+	'bgai4a16.png': "24685550d46b2a420b906ef5af1f9efac058b6a8fee1aef35f10b9a68475f4df6cee1cbf7c15169a333012bcf5d76755fc795dda8799e9e58966d3e9ff4c83d4",
+	'bgan6a08.png': "ae0e18af14740ee1fb0e5e4036f00e8b323f1b86078c577fda80fbe44ead15fc6beeb2069a787e8e8e9a36dbc5018fa6412e99889c85b8a3679addb173547649",
+	'bgan6a16.png': "3b72b89fef39df23e9ed606d744a4356f3b5aad7c62c723a393882985ee849ab5a687fb4423120ba6f1efc62d916e8f781ebb54f7aa99753569bdae59fe758d5",
+	'bgbn4a08.png': "4d9514b3855a026155fe68878280c4eaaaa76eebb1cb9009536557e9163202961b96ea55a52de1c3d03aec85fefbf8d77b8ab63342ef2077e6714a3bc41e4e48",
+	'bggn4a16.png': "8f93257eccfb9457f6e83e0ecb67afbb5b0d5a222c412cf2ec0c7c8024b78f56935a283d66dd8330b60c9f9cbf13e06cd38cfc8805851356e5d4bcd0e16d89b2",
+	'bgwn6a08.png': "0ff6d2251271a9c0aca98fe9aa6ce9395c65572af64a2280769def7a2ae58a1db6e3c087549d8109494faca0d3ae0cc613c804a9f2be5255f09c12fdc18a5a76",
+	'bgyn6a16.png': "b93d2f2aa94f3db768b0c30fc426541424f8df205461165f70bb5e7cbec53eeea4af627d3b96df5dbfaa9a2c21ccaf51431958a0b970355ca6ff41271d078873",
+	'ccwn2c08.png': "caec91fd136b873387ef1e236f7e9791c1ca5aaf3c055b833a34821db1e9a7a0b2b83ed4b5c3ba4d208f5ca2cf9c83c7a876eab3fa1cf29c8046239c09e55803",
+	'ccwn3p08.png': "b912871bc3e53ae4c0f905a778de329e813d7965a8706bc7487cdbe036bec0d9cdb3d890600645f0b7fe95e6d86bedbb804ec49868643085378c5f1db1c1b6f8",
+	'cdfn2c08.png': "92a9dabf65d9f233d4d2dfd857328ac55c0bd8ade18fd9e624146f891643865ab7b030d85e124f4242164e27ad6fbbd85ae6a882594c57795bd06dfb168b817c",
+	'cdhn2c08.png': "58beb4d5e967810d3ee90b7d1414cc6cab8afdc7e2cdd2e34bfe54b47df772fdf34851bce8ab7aa65d47aa16046bf441c905e20081b6964c1942e500667fb467",
+	'cdsn2c08.png': "0657d6d4e7b937b9043e99712c31dcf93de675d30d6535b6259936cb8efa388d1cfda1dbbd22853778aa80887895bf37f77dd3ffe019d2eb8158b1b44ee16a1d",
+	'cdun2c08.png': "2cb39c65bbe59eae788cb049e1dec2b36fe6c4ade18eec6045430fd5580c94742302d6adecdc07d0ea8bbbc6d35cd3077425cc2daea51253dd049ea284d76cfc",
+	'ch1n3p04.png': "e4bec9006f5d3802dfbf78293b00bda6ad948d835c867d884a365933508a214dc50ac9a39c497c5a2c7d65acc8b8882bd121b6496e0963be5ddd8a4607cffa16",
+	'ch2n3p08.png': "c05154d4739123b9cd826ccadf3f3fd47c3ca22d5277629e66aedf1dbde1ea277e3c9706dd28e925d4ec918834db427fa5558dffbb26c96289c0515fcf31c671",
+	'cm0n0g04.png': "02ffc2cc1d47c0f021fc96b9ad2e33cc2e9c6ba3ab3d00a2ca6af5ef848bb4b591992fea7f5d86adee2cbcfb2a7d4dc8fa6cacbca71c407c617b33b01580489f",
+	'cm7n0g04.png': "acb49a0f404ce72b6cc9da02e7ca9cb6468c1b22ea62e634f382c4c57eb9add446e6fe5901a9b5939c7cbe5dfc748dfee415a35f1567cab4bb86c3ab85cdcf01",
+	'cm9n0g04.png': "6d57e85db5660d696169a232e26f010d19dc523348cdd59c4668e87ae828a302dbeddab170fbea079bfc14071eed7e90a9d994f52ab04125bd7448b16aa646bf",
+	'cs3n2c16.png': "f61644100be9f49dd0e6aee29c587f2fe942abce2ae0c9c9807f092b2783d4c3f6318a941cd74c918bb465ca4fdebd5ef6fa86db5734c717959afa3a0993437b",
+	'cs3n3p08.png': "df0966d891ab1cee03e2a4130d4bd32acf7996bc7e568fd646221ab1bd0664d0c6b3faaa1ec77240f4496cbc07e89afbdf8aa5ff944be0b686a9a4987e2b1081",
+	'cs5n2c08.png': "cc99786013c1281b0738473c221b5eb5d6c84c467360fe9e5650df648b8efffe5f533bdccdea4e563aac70feda9ab9362a81143fc2dfffd5dee35a78ec57c74e",
+	'cs5n3p08.png': "80021bea80c627a9e35d3770fbcee0b05ff791b595dcab8e1a7ccec5003ff5c4abc44a026d6ac4693388c64503b64e6cb2b882662d78e8d62120923810e4bf74",
+	'cs8n2c08.png': "42bcfc93d407a35d3209e46ffc4c438c08a0ca2db15fc112fae93c4a9ff82a1e889ebcb8bb44370dc855aab768bad450dbb575a5807467a04cb26772e24bc873",
+	'cs8n3p08.png': "a29a7a569a9fc94cdda8938e0acb09f9781f52d326ae57318b25a82c0652e30307964c900e8033dccd3035eeae0df3e8c6bdb88562882986fbde3c3a173c7f39",
+	'ct0n0g04.png': "24405bcaed6cabc6be73061e80f4839a2952ce69d843f6a1c47cb286eca76f82cec6d65466eccc4a0577cb6a4923ef43d3c01ce5a63bdaf3731b8118a686d1d0",
+	'ct1n0g04.png': "fbd0b417257b38dff4a5cee2c004b9c79bf9fa72ee16b0452468d802f46d768c6c694ac270b00fb0cb2b25b82ee6a53a87f3f961263948474a47409fb94d2b21",
+	'cten0g04.png': "8c814e8f51b6aa37adb66138505cfb6b878fff482f096575b43d4a1d68fe64ee733faf4b8c4d761daf902403c88ec2b561a518d762f30b40dfe980b9d7491b61",
+	'ctfn0g04.png': "d2d98415cea47d25b23abdbde300533c501a8c4bf3ff76d6e126a0306b9c80026059a07130ea398b7bda825ae1d338106dcb855e3a55e25d38d4a7ac76c3c390",
+	'ctgn0g04.png': "d7cae7fb860d12c068753af903a3d045712dad6d98653d6e9ca7527b26f3087af627b0921be08a299c38f6b76e268197b2b0f5c01510c69cb97ec7e0e08cacc3",
+	'cthn0g04.png': "8587da6d046cb8d2fd706a3ef656532c7a5837729b574353895b7d662052bf6eec2873cd38e7299756b12aa0b7660a8d9afdcb0f0459433dc86a21b564b7a8fe",
+	'ctjn0g04.png': "2624ba67fb5e52156575238be129649fcf9468a836e4c53bf1fcf99963f82c9a98b611376e0e85188564489ec135933e58e8f01b1b7967a15cf84e401ad504d2",
+	'ctzn0g04.png': "cad58005a079a80679649eeb36f97f9dee9f4ff596e84fbbbe3d66dc9d8184c89b8fc88c99c04f1493f55a82c2f73ec33bc73b4f356b08b47e24ced6b6dd30cd",
+	'emblem-1024.png': "9b7820be0cc034bda7a13960eb5e41b61139e5b80b74e612e5711f6bd59ed46d5a7e59b7186ef7aa76da5a47314426d6578490a3b99aa31f2515353c8e49f750",
+	'exif2c08.png': "3bae00c46ec275fe50b94d2cbd53dae2fec1d7e056f046d16a0cc0080a40f82daabbc0e1ecb362e4deb222738cca2d3781bd5eb12de3a08cdeeb564bebb26f6f",
+	'f00n0g08.png': "2d8bbd48ab09f120680d1a11958035e6a8c8890cf044ccd223e05b7d1c90b0e7f3273164bdefafb02934cc0991604a6d02acdc911ea5bf5f8898b7352fc47b0e",
+	'f00n2c08.png': "cf3167907d5726f0b7918b2b78191565c90b5ab23668c0f64f37aef39487729e311f96f745e8bce3b73e98ba959ac0116d0cd7d2b41a573d09ab0da1249f802a",
+	'f01n0g08.png': "315d66a14a5fde7c6618029dbe8c74c5704429e25b96603169e70eb6facda4d637e56eef58c6c6a9fed22cd7309eead82d63b9011286fc183c909d97f2b1ae8b",
+	'f01n2c08.png': "fa16a0cde456f6a0a7fc592bebcee7d97f2e9947c7de409354774b1600f4f1643427edfd9c9288cb4f65089064458639d3eb9a433be9a453fc1ad7c702fcdc0e",
+	'f02n0g08.png': "d105deb31d8076b1ba35f28310e30e9db0e87f5be8ee496a03422cf312482e1dc1d48d13d088155b9883e30103ac94f403943e72b96015ef96465e70614d139c",
+	'f02n2c08.png': "ae38403bae423da5f60606528f1055e399f49e54190c6cfcb549a38bcbae753aa1c3d79d98cddfff798eef9a920dc586c02c2aa803238213798524fe57e8271b",
+	'f03n0g08.png': "57f8020fde86a5c10c7242a3f1dcd735c8e070b18819bd714013862e7704382e2dea0b3d8da294b56a470a196cc1b7a5a842b0fe5343e3ac8f148854bea74d19",
+	'f03n2c08.png': "272eea58b186b9d67be75d6c39b8f3130a5682ad36ba0daf12d2d2e0f4a7e089ca3aa00715ef8e9ef5cbc29417080e0ad111e06896a1249321338da067fc0def",
+	'f04n0g08.png': "4489805b60dc9e752b33fa1e3b88b601a729e0c37408eb1da98f8daf30c1f2f3fb70f6d1048d8904dda553f33dd6b2ee687fe8cdf5545bccfcbec68df27586ea",
+	'f04n2c08.png': "1123338a338bed5f044eb92bb6f3f146e34a2754835ae833ea6a6a0750efd866b1bf5168265632a4097b1cec4ddea2542a79c634db7ebd7f13c1529ec46c1117",
+	'f99n0g04.png': "28ba7bfd82d5c1694c054562fca785a920eeae18242f2207a356be4e7c30618d7d5a4aa7b99f67d0081ce102ec1229540658e0c9e29d7d7ea3a83349f1592e74",
+	'g03n0g16.png': "d17984e55061bbfa21c66bd40f6b9a4d2353fcb1787814908a5f552bee2752e0dd670071bf5840f813cda668acd007b965c6cac18aefba5ccff3bea2368c801a",
+	'g03n2c08.png': "225efe0c9735a4bc61bae5e96e7df84d72d55969317cdb02a19825b1f0aa9e17e3e07fa9078370a05ded3b53d80151841f4e780dcae226eac687783e50e6767d",
+	'g03n3p04.png': "494ae0118a73ce8dcabe22f7c9c40dd7ddf21fb676389284111afaefdd700a311516bac48f3d5afdbb28c084c6bceef09e62e879039b69e4ebdb099692a04539",
+	'g04n0g16.png': "c4d58651fec06f8a8045474190541e917f7c5ec01169e49bd897e1965ec5e09b1e142a47e5747b01f5535678cad4a7acfab45aaa3432fa304fe36430536e35ce",
+	'g04n2c08.png': "963334bdc0ea83ba639b70d864b187a6ee13399874e96fb07ff3b0dec8708983676c52c82617ef610d001de00b70b6596283dce682486ca3a1dbfb3c91ed7258",
+	'g04n3p04.png': "cfe390d16f07fc3ecc4c3fdf9b53b5b9de6980b99097d202dd2d2f43fb0b4612e2237688c656a77b52519e02f71ec284045c7930940004e60aed043819775394",
+	'g05n0g16.png': "1ed9fec03f57682c81fb1813cee1f48f80da4db5223b57f8f5d675c14c4d85cca9481d555020837d95c0817930ee75a06e897eebd246e9cc0de065dbf687d4a3",
+	'g05n2c08.png': "b5447e45eaff246a4ef7001276619ce38a0876fde1bb26411f67f97c5ef4e3e0ab3b82169667dc4fd44bbfad87116e0e2223f878f530127c6c87e043d006588d",
+	'g05n3p04.png': "1fd897a387b01b879dd9effcca2078333b9d5730a63faa0c1b3941794a895894aa403feb4836690311c1a1b7bb50d61e22599e4b81ddf42bd137d2639bdbd0ee",
+	'g07n0g16.png': "db7190d3cfac8407c07b83bc02ff1a6c15a393e6ef88fadece1c08c2d2bcbed8146f63e549d1d343bef83105fe8700a52e9ded2d96c03ff33f4b4aed787ad219",
+	'g07n2c08.png': "c8483d32c431e5f8a9a666ee97fe0932f2adb01fe0112dff636484b22a5142d92218906e8e8ef98eea846ca6015e7ce39f367fde9aac9ef7112cfd1865f9935c",
+	'g07n3p04.png': "a1096b453af956f580642d9e9de864b9cea69503e10a6fc4c250a238118add3a8a7a34f7da24c121af59fd14ff259b0fa73d305f6bf886eaa2dde058e8ee72cd",
+	'g10n0g16.png': "1df304c87cba2a285e0610ed8655ada912e4d58fdfe47802863ec83a1dea17cf59a34fdbdf570f2a11800aa6023aaca6b48dc23f2e8699a73f168f21e73c8ea0",
+	'g10n2c08.png': "8ca900ba7ba1f3d17a5bb3945753ae472aad77ec7b3722f0d83ecbf77981ab612e1a9a3bd63213e651e798ce0dfbc9e3ef52f09273194531a78519d461333bf6",
+	'g10n3p04.png': "95a52464557e1b5c52dcbea5e009ed004d05763c1e2e475ce96736713aca06a01c42f74ecbc9d9feb5a4fb7f777b31f35a0dbdd7b5a6a9bd5591142b60be170d",
+	'g25n0g16.png': "23d7a7302e8a42819848475a2ca73b4895038a7d9b1f822e6ae9218348d6018313cb7ad2ec9fa301663cef75bcf4fb5bb9da7dcc9e17349768c2ecc2d65883b4",
+	'g25n2c08.png': "400b394b8e5b751dbf64227b35a7e72945b3542b7be7015f8615ace7898ee20a2f6b2391422521173f7a2c165834c94ab396bf6b29ac5f45b66d97a5c2ab51fe",
+	'g25n3p04.png': "4f4e254be3802aa63596dce708383840518ec47bbc09b6aaa92b6106860939eb152f6ead983bd187105f492e4936ccb6343c5ad4ab548bdc834f9e33cb225b9a",
+	'logo-slim.png': "072dfec9c28ad388f61e9323deda00d04c293e53044fc4e02d5fcd5adc8fb74240cd61d267eea6f6afa70eb9023a20084c9c2f7ba1b5d5e56495b71356a0b36f",
+	'oi1n0g16.png': "7daf56e398e9801bd0be5904b6e22ef87c574c326037af180dcf60800a3ffc0ae47463ddbb268396e3121bba8958df2d208df2d442e24c363ec802d2275f6337",
+	'oi1n2c16.png': "ed7cd6ae047bcc58844d69cfb918a40bfb999bdcef6353e2dfc33dd041378adc08b48c9baca202f39d83456f1752727db82f4746aa9a6f7fd243afbc5eabed7e",
+	'oi2n0g16.png': "a57f1ea4054278a66c4369712fa499c2bf69b6dcbd35f74f1714dca2ebf17f068a80ef88482a296559be20a99e8506850e4d54dd8752d6146d2f35d1f6690a6c",
+	'oi2n2c16.png': "21bcd689bd28342acd1f006d82a3c904b882a1f5a5a639e26d248d87687284a22aa45b4f02fc92370cd77440899afede340ca29f7e384be6a373a6d43cd19703",
+	'oi4n0g16.png': "0f01f28517f57b510aac6e1d2b3dcc5e94279054b9ba358804319f689451490b6d023e178f14e719f81acaf10b6192705fd1998f8a4fa33c918b9de07c47ff5b",
+	'oi4n2c16.png': "72cc16bcb694944810e347438927f0799c6d864f453a5d1142ed6213723d214c739248b42a119defb9cfdc8c59d86962e344bd57fbdfb1ef375578f1e940a9f5",
+	'oi9n0g16.png': "d3f6831bc64e80b32b3f87e228de1c2d311e530b2ad62da262722cbecf535c04c8f83572d854ad22ce1ffb9d88996db11ab02b17ca669ad73e44100f5a78377f",
+	'oi9n2c16.png': "bd9eb600404f02ee3de562fa3f2fe4593348ae9efcaedff900e51e3ab01120fc615ec5ef73daee7a1b3788e31c917f86dffbd88c1d955f3572658f6409104e13",
+	'PngSuite.png': "022070b160a8843573fbfd22f1d54e95227da2cf025a0ea5d017f59d0023da0921db1a76122e7b309ee9036a0df8780965256e97d53d017583bc2e22c929b2e8",
+	'pp0n2c16.png': "efbeb27ecfa7bd50c70061fbd8ff538726eefc070ebcfd5bbaa90a64dba41e51d55c7ffbd1853098dad13586b3d80cf5f91cce1f776afc2630758fbe05191ffe",
+	'pp0n6a08.png': "49c7f141b85782eda585eda8fb7c99b92b8f60e20438c5efd28393a4a956d1341459ec31d6ebd35c8a63343b653bb453a4eece252fd08eb9d4d31a86b040c92d",
+	'ps1n0g08.png': "a23aa40328fcffa15004f33127e822ba0ae8db27898efe0735234bf5a6a137ae3869deec4b5947c75c24fc0748d1def746f3c9939a2d3f5821e8052777c79511",
+	'ps1n2c16.png': "8a4bd1209067cbcc96e7ccc6f9f537e01d5fbdc035650df6136042b12fac903ab420215278109fb29594b7ddd59fe5d01715daa7d59f937c91b39285a73d87e9",
+	'ps2n0g08.png': "8b13dae52a78512869af3e930d986278e9f8cd0476c37efd7238161576bcf72a261d859d1392d5edc7031a986d882c4a4610c2596a73d40e664081136899b059",
+	'ps2n2c16.png': "fe4a1120c5458ccf12c77477aa3f60898db1a9ed30b56e481f3fc9cf475798b869f6761734b5e254cd03e047e4f3d9ca3d4f73d0c6754e582f1711a5dcf7a163",
+	's01i3p01.png': "0bdbf666db0a5ada5eef96a330d633fd1742bf455dc67b554aa2b99920f8091471976ee27982c549269ee5c21302fa3acd9bb9c29f7d9fb7fae020564d508eb4",
+	's01n3p01.png': "50bf7256c271afca66d9891b571827bd5fb7a1b3b6fbcb7ef077b4ff98c73322106b557bcaeb6d5f9c4854a488439b4a7fffb550d2d9b51150ca9de958f1ba6c",
+	's02i3p01.png': "3a389a879ac464739555067bdf0e6df0cb2abe187569d5dfd28b4569ee88dcb41c51a66c8666af17d8554db00cf83ee2dd782d0ddd472a755224a09dfd0e20a8",
+	's02n3p01.png': "eac6f1f8b9d0f5d4fb24c711cf771b4d7faf16da4df9ac67b51dbda21fb00993a1c10fc601e5a3664bef4512c2da344b1de384bd8e7455adac00274c49b32b8c",
+	's03i3p01.png': "0b5b95c919c7abaf1347c2fc802c505388af3bd3df6c8d062b2327b0ff7d8ca7ae12768bef7659c0214e57071b62af88bed36d0848105f4f96ecc1d06eddb2f9",
+	's03n3p01.png': "599252f2b5cfe56e96725e92cbaf25857678b315934ab52a6af3000a2c5e06db49d289557bfc123ccbc7baec31954d33dd51b5a976f8d0733d296a29a1ccfe9c",
+	's04i3p01.png': "2fca110ec03d7fcf5ae57f13612d00096822d8ec97f7c8f46088f131fd9b53d15f88eb811191e306180f32e00d9e9bb5691b45e3cfae32837ec417cac8ed3045",
+	's04n3p01.png': "795598f09c722133956d80c63805178977436a5412d397247544de64706f29c865ffaa8c9ff2c85b74503c98e9f749b1bb2a7031607e8d565f3b5e6da7d12f13",
+	's05i3p02.png': "545ef14d73ce35066a4c98da61950d1f0356cda7041c1bb4ff69a8e67ac13ad9eb8503c15824cd93b82ae03814c84c0cd61e3a07328a8b71a79634530ede4c37",
+	's05n3p02.png': "b5d5ec774da44af91903798ff1bfd36aa4fde0c83580fa19970cafd12e74d739e2f5198147cdbc845062b977127b8daf875a629f41ca84f4a1c29182e8845753",
+	's06i3p02.png': "7b6ccd5f7ff168c00f7ee7c9f59b56157c96f556493a9865539296137801030b6aa523a52ee661b8d15bef55d06916f150eeacd90fd9e9cf881d6b0cc5d4a30a",
+	's06n3p02.png': "0eb30c9c9b0f03ba767bf07fa1e1e5eee6c71a0edcf664ee601d6f3e95d57eb62404488a3fccd18afe5fee18e951d3ceb0418d98de9bd34bd2fb213ce20f0e68",
+	's07i3p02.png': "cadf56926834f278d6d6e6ee89eb47fd05535c04f87cf16623ba1bf7c52c6678c6b507a19e8fbcc8a7db1aae3b8f861898e270d59e35d4a72c1cb0d6b2f952fd",
+	's07n3p02.png': "796ee93dbe71893c190feebe06d906018fb0fcdcabb30f3cf666399937aa07fe9d7cf444e53895e4bf168f50559d98d6d2eb9d30792675f217917f4215cea46b",
+	's08i3p02.png': "d9f6be2a8623ecad39a6b9805c0d08a3e58b02dd74a1b0ce02902e82633a947c5a30921da6b7c99dfe284b310bb578e357937891216a24d3ae90ca32fe67d3ec",
+	's08n3p02.png': "a945e144d5c53f9205b2d7ca2e57dcfac23c2a923d3326aeabe775324c73b59db9bd5b8871524928e604d376762c4178924bd230918bea30f18b6169a83ab3ad",
+	's09i3p02.png': "2db824ec6807ef1c2ed9cf8a897b513a41d70305e4bb5b5918447bd059dc17f2d7d1caf868a95ff84a4b904e377faaa088691e1e0f700b7bad1c4e79b849c1be",
+	's09n3p02.png': "a3b5464dba07f474da30c50bb9baebff7314535e7310e36f51bbbd0d89877850fd898f1ef991f5352853baa410b737754634fbd5957fdfb3becf8ad5e4776b9a",
+	's32i3p04.png': "a64eec719844aaee1c93c81244cbea5f986b8319657b5ccaddf047e3ff314b64c73a224e6db9eebdec50ed72928ddebf2795a79fb665de353de0d52d310ad52f",
+	's32n3p04.png': "b31ef24705ad3d09b25709ab7f2815df250f0261a9ba31d16fd55f21a733ba23efb8a0122700900943a08e1acb7af2e682111b0b47f57a2a4bf579b198cb4212",
+	's33i3p04.png': "47e09222309c5f059107097cb74fcb14046a50197fca88a18d1c42781167c766fe8e5d5909265afd460a09bc130f7b4c54f8908a633237701fc032c1c4529d01",
+	's33n3p04.png': "b81d9dbaa19280b84078dcdd8dfc87ec94ab9045dba6a5556bda2f4aeb034972672d811ade46b5c157501451ea9f89a791f26bf6e74fdbbfd7f40f5a6ef80892",
+	's34i3p04.png': "c43834c3389c4a6b62ff9815b31e485b4a3989ced74dbf6da0f43abcddd0e7c8dadb06299d94f06f1b8650ea1557657cde3526918689c52084b87dc0c1a99f30",
+	's34n3p04.png': "66f211232c8726adffb606274d848f8717a0ed202d437b85449e0f720a9172c6977c5c8e56f92edbb3759fae3ffe70c38cfe737a838c61c4b3d2a13913904c90",
+	's35i3p04.png': "ef79c73d61333e895f7b6907bac6ce6cf14cf4d0e293dd93062b27c55b25539abde428d25cbb81cc6f4e9916a1dfaed6d4d8c7a9c0f047e496ba02325ba94d0b",
+	's35n3p04.png': "921e7f6afab61a2016f5e1f83572ad5932cd1d702a978dfc8da04824efe03500da16425b22c79df7c3f9f867fb54cc6d444e362f4aa38b2a36b7f361f74d93b3",
+	's36i3p04.png': "e98f7f87b7d38d3d5ef3f6d4b191ee62176ffa8e6ab611f7d94d5172e593257f5fbb5b8a2aad479a380cb6c6fc8a08cf6cd008576d7ad02eb1fa78c6bc138bd9",
+	's36n3p04.png': "0122083643ec591176d17664a246da96e5f3599efaf546a0a6009ba5cb9d6f5064bf987cad54822a92d80fe9cb0189323947ab74f61346ead8b93f5f84288842",
+	's37i3p04.png': "c1534a07947e5e13a754b9cb8b698bbad4edd9f6301405ecc0538eafa8c558bf9ee8aec9398308f891cb5114407be6e8979f8d294378b1d5a585a129f32fc45e",
+	's37n3p04.png': "1cfecf9a90c677f18876b3480a847504a559ee61fa185f1b64c7802a259b21d583fb555ed01e3c218e87252ba73a1c983f222db576509b6ba131642f37a79e20",
+	's38i3p04.png': "71881b215645dc62a080f4433527afc64a8c1a24dd56e88bbe2969b5d33c5808ca107d6525c04018b483d8f5218eeff65d1082538d75c23157b6b09df0a78624",
+	's38n3p04.png': "217817f08610e139053719016e0d6345945bd85069011174ee2495ad702002622bbb5a27e4663bef92f456b592a4e38eac79d47b4eb023d819e2980075759544",
+	's39i3p04.png': "f9d77bc09e7d277091b52cd94d84452974ecbb8fc7a0f3fb52e4c109e71da0c393c942c568aa76214d06b99e082fa37eba3894ace89b6d8f98a2ad14daced769",
+	's39n3p04.png': "4f76f71c7a139393b27295cd4377deb31ef4be5b4c552557fd6b4581d2c254d141cec9368008b283ec33c2eac49671833f0af288e0a054eea6f5562f8ef3e766",
+	's40i3p04.png': "9a2e9b85ca3966053e743d1f56ea895f4ac536568d5b19e9d3bf2f4a483ec33610287c9e79cf0469c651ff8c76a117b5849f275a51ed428d01a77cb63e7c78d7",
+	's40n3p04.png': "a5bfd8e42d9c30d2963e197aafc0414417a8d82cce7731bd2026019704c7e08f3f2bd9b5045bb6bf3b1600ef0f8093422bc887159832fa49071bc31f73a74322",
+	'tbbn0g04.png': "4855b45c0e55a2b371aa7b864f2e04e2d08cc935b317f88f175268528e1016584005032c1f9efcb6b8ffbcf0c034945e68453c471c7563f3f69a37a3761eb00b",
+	'tbbn2c16.png': "7ccd34a23627324c7d2014ae94ebe4c88d8cddf35b13098ee8c55f31ef7e5a865b34ca78053e4b3c617b83b5dcc08c84f10b6974a81a50925f0976d7b8477811",
+	'tbbn3p08.png': "efd458c974e0b2dfef57463e19261d022bd2699efa9bd7e1f222eb46d09e6932c3db5991921b96c6999cbf1cb5180b29af66450a7084d15188ef2ac2d8e0aaea",
+	'tbgn2c16.png': "75e1acc0734b3a80c73a8b7ea9d4cb635c42f70e33f50f5b749e9d86a8ee2b91938798be5706534c4b2b1505fc706ccab4262bfb9fd69cbcb184bc6728331595",
+	'tbgn3p08.png': "fee9776510ea1f848ccfec8d664dcdac4705ad870cc29699d198aa3be15bbb059a924587f53da314ef3b365f7f21f81d8eb3a3f218f80776d5234aa9abb138fc",
+	'tbrn2c08.png': "f0edb3e74dddafbb26a999c95b0530a0731cddd58189e095cf4d6d95167b1b6bcfe4cc7eb75dd03f1478ec37462924eae8c73d11652e0edb6834f1485ea2b14d",
+	'tbwn0g16.png': "24629715e35a72df1be36eb80ab3a5b14a8789bd20898f738e547fb6e96149c295d849892a2bae16be6d230dc33ca91dbc11b024cef1857e5861f73817ffe2ab",
+	'tbwn3p08.png': "6b109509998d89130b1120859c1b146f42876eb193b273af3035ad6ff24f51ae46767a5a31730d5eca6df3b981e3912d0ddaa04024e3a3fd688ac8f269d10dc4",
+	'tbyn3p08.png': "720468cb7d4eb60fba8bada976c9afbc645179ce84ba27f2d70942ed9d11d31471ca7f78a00ad8aaecf83498023c2fa78e2417c69506d9dc1d645f6f3854a177",
+	'tm3n3p02.png': "f08f9981c2724b3d4bd7881128046125d881e1578202482b34c6ffba743bdfd12cbd3400590ef7df117cabd63424faff2ebb5b37a29cd4df287c41cb15b7311d",
+	'tp0n0g08.png': "1f7e0f28db7e8e1188eadc037b625caf5fd781f3905d74d2be8abaf2c86bdbe8de69881f14032eb56555057b1bbf49f73ee70e83f87f14f287ef19d68c734738",
+	'tp0n2c08.png': "c1a790ab942368875ec269e38806a81ae7c66a5d2cba3e96539cef2ebc9e54c8af9dd4c4beaf408afc284195a089829bb631b9731a75ae61b0f5668b20ee2e23",
+	'tp0n3p08.png': "cdeef81826868b9df1070952538be83dba801d260062714d02e7478d0ab1a984aaf6758396e7cde8fff3e59fcbf5fa6960d85f0817c53de48b398c9a05b31f91",
+	'tp1n3p08.png': "177554a69f64a9c39face95f316ffca7b15649ecf72de43d413d347e0c2b1b2bb1f2213e71310eb4d648822b71f086c825030b0c9020a807957d3100e460e1aa",
+	'xc1n0g08.png': "de870aca8da595b7a7cfdd70465ff206a43e286265c06d5554df9cc96d4c8532debf140dd3afc67adfa9a23fabe808b1b08a20b3bbe265a7e3a4bba2c34da3b2",
+	'xc9n2c08.png': "f31a707359fb788934ee1809a3abd7e663f9843caaaefec8804f4d00bc9f02bdd73bd686ec0d763fc73461faa3864666a99ea85ace1f921a8145ac506d40df31",
+	'xcrn0g04.png': "433b40a2f9e73c88d50a04b0e9a2c98e08e947d418b66f8f9e3c1aab681a994af046afa0ff1508d34c1f1f9316ad14d764811c906f452516d7b7a100ddb24764",
+	'xcsn0g01.png': "5d06d0c6bff9a1b06c75299c019bc8fdc49122bce43112312103ea02da841d4e9641b39129bb8618463e503d525a3f181bd959b278f3eba062b06e85f2d67825",
+	'xd0n2c08.png': "5c7b87bd799a648703b5660a56d125103456d87209770bba2a0a7349230d93f376f09374487241c7cc41fadda221c159f5cfba293c8dbedf7c4a8ff402b16c3f",
+	'xd3n2c08.png': "f51ca8607d30492c857348c218f3970890a84d75f5b6933dad6bd6a5feab42eafee4e3dffcf36c53f1d40c92c5853a5ceef889c19fc61875a74ac1fb189e1b35",
+	'xd9n2c08.png': "dbf060b66b6bb47582659fc741ec8a49c1d1f1f4b5824014139277cc9951f39c2b7b2b60b3d262cc876f0d210f5d580c293cc161f21861ef4de32d2d9289f1b4",
+	'xdtn0g01.png': "29b95b7961f4898efa63148d7b6cd03e537a878b1529c3f7490fbf5e0dffbfadac45a0bf1f8ea9bbb4ada2ce3f361a27124c6c602af750ba78a7695e42ee2d99",
+	'xhdn0g08.png': "5e750c095cfce4c55c62a6486e5608474f8b3b4124012d8b5efafa421ec675a04018d1008bdde1e1d4b4fad7c17eb5a155ffd14e64d7005fd6483c518d29c844",
+	'xlfn0g04.png': "26c5f68e1cac1d37daa3c4d26d5b262b06ebfe204a77fa35fcdd2dbd247bebcfb070cca790f4df7fa443c7dc62f95fd1a1ea674c111049f96abd55be3654bd89",
+	'xs1n0g01.png': "da6735534724fbe50ccbc2e5e78692752060410b734b3fc3007b7ea9ac85cb13fd40f5ce4bf2a37448437523484aea2d979c4dac3ea17d11f160ea4c388ec296",
+	'xs2n0g01.png': "b68167c21e365fd5eeabac9cb78e2aa02ae0261a9fb25a34f9a47adb29ba3a0504a2c5e5f3945991edcf9d2d89f148735570468acd829d4112a74e1abf0ca54a",
+	'xs4n0g01.png': "5fcefe356bfb967ceca8bbc6f991ad1645bf3ac5fad9b5e8c5c624a99aba30cffc36ae8a08542816e7907b0035ee948eba29c45c1422c5802a22ca9918c651fa",
+	'xs7n0g01.png': "97f9e89223e53c450a8cd8709ec550a0155b97a8a34cafd8032d4590dd3c05edab9099ea19386b341ad0985cdf388b23478ba0de57b96055ee7f07c74a67326c",
+	'z00n2c08.png': "2cb69802a02bb4ed0e8d3a1436ba952049733beea8efc4d4b3fe2bfbaf6c90b6eeaec221e3bf349f20054f17b23c65ed285f97a413ced448ffc2d1b7484328dd",
+	'z03n2c08.png': "b8bbe4a48e924a5b8a2f22b5f6877335810321461f9702b9a8d273d8defe4056ddf75d1096bf254ea03ef9aa386319c113fcef8cc0146377b5290c4a4e930aec",
+	'z06n2c08.png': "5bb4d290d70737009ef77059016078c665f6407e9fcf4ba04603e776f68087e1a33d72b54419925c2474669dd2426584342872120b2923c559ff71033739a801",
+	'z09n2c08.png': "ebeadaebdb570ad5782765381cb4ff2ad833cfcdb7754663b752472f575ba6e2c2b33eb56d3082c31a589df9347dfa502aa138bcb03c359b552f87b55afdf0a9",
+
+	'unicode.xml': "56609b607cc1ba43a6b4ff327ab70ac18ede6d0c68ed61e953bfd225134ca8ce25c2460fb094ab7dbd98bf4c37dc69cebc7242140d015173b612d850650d57b8",
+}
 
 def try_download_file(url, out_file):
 	try:
 		with urllib.request.urlopen(url) as response, open(out_file, 'wb') as of:
 			shutil.copyfileobj(response, of)
-			print("... ", out_file)
 	except urllib.error.HTTPError:
 	 	print("Could not download", url)
 	 	return 1	
@@ -55,7 +205,7 @@ def try_download_and_unpack_zip(suite):
 	url      = ASSETS_BASE_URL.format(suite, "{}.zip".format(suite))
 	out_file = DOWNLOAD_BASE_PATH.format(suite) + "/{}.zip".format(suite)
 
-	print("\tDownloading {} to {}.".format(url, out_file))
+	print("\tDownloading {} to {}".format(url, out_file))
 
 	if try_download_file(url, out_file) is not None:
 		print("Could not download ZIP file")
@@ -64,12 +214,25 @@ def try_download_and_unpack_zip(suite):
 	# Try opening the ZIP file and extracting the test images
 	try:
 		with zipfile.ZipFile(out_file) as z:
+			print("\tUnpacking and verifying using SHA3-512:\n")
 			for file in z.filelist:
-				filename = file.filename
-				extract_path = DOWNLOAD_BASE_PATH.format(suite)
+				if file.filename not in DIGESTS:
+					print("Missing digest for {}".format(file.filename))
+					return 3
 
-				print("\t\tExtracting: {}".format(filename))
+				extract_path = DOWNLOAD_BASE_PATH.format(suite)
 				z.extract(file, extract_path)
+
+				file_path = "{}/{}".format(extract_path, file.filename)
+
+				with open(file_path, "rb") as f:
+					file_data = f.read()
+					digest = hashlib.sha3_512(file_data).hexdigest()
+					print("{} *{}".format(digest, file.filename))
+					if DIGESTS[file.filename] != digest:
+						print("FAIL! Expected: {}".format(DIGESTS[file.filename]))
+						return 4
+
 	except:
 		print("Could not extract ZIP file")
 		return 2
@@ -91,9 +254,7 @@ def main():
 			return r
 
 		# We could fall back on downloading the PNG files individually, but it's slow
-		print("Done downloading {} assets.".format(suite))
-
-
+		print("\nDone downloading {} assets.".format(suite))
 
 	return 0