From bfdebe2c0fce5d2b76c51490bf0cfee412cc5cc8 Mon Sep 17 00:00:00 2001 From: Romain Date: Fri, 24 Nov 2017 21:56:45 +1100 Subject: [PATCH] =?UTF-8?q?Smarter=20fuzzy=20comparison=20for=20the=20?= =?UTF-8?q?=E2=80=9Csnapshot=E2=80=9D=20integration=20test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test-integration/imagediff | 18 ++++++++++++++++++ .../media/large/2016/2016-10-30 18.41.28.jpg | Bin 19580 -> 19579 bytes .../media/large/2017/2017-03-22 20.12.58.jpg | Bin 10643 -> 11840 bytes .../media/thumbs/2016/2016-05-23 13.42.16.jpg | Bin 7748 -> 7752 bytes .../media/thumbs/2016/2016-06-14 09.19.03.jpg | Bin 8701 -> 8709 bytes .../media/thumbs/2016/2016-10-30 18.41.28.jpg | Bin 7251 -> 7251 bytes .../media/thumbs/2017/2017-01-15 12.38.41.jpg | Bin 7394 -> 7395 bytes .../media/thumbs/2017/2017-03-22 20.12.58.jpg | Bin 3263 -> 3460 bytes test-integration/test.sh | 15 +++++++++++++-- 9 files changed, 31 insertions(+), 2 deletions(-) create mode 100755 test-integration/imagediff diff --git a/test-integration/imagediff b/test-integration/imagediff new file mode 100755 index 0000000..f3f59a5 --- /dev/null +++ b/test-integration/imagediff @@ -0,0 +1,18 @@ +#!/usr/bin/env node +const gm = require('gm') + +const TOLERANCE = { tolerance: 0.005 } +const expected = process.argv[2] +const actual = process.argv[3] + +gm.compare(expected, actual, TOLERANCE, (err, similar) => { + if (err) { + console.error(`Error: ${err}\n Expected: ${expected}\n Actual: ${actual}`) + process.exit(1) + } + if (!similar) { + console.error(`Images are different\n Expected: ${expected}\n Actual: ${actual}`) + process.exit(2) + } + process.exit(0) +}) diff --git a/test-integration/output-expected/media/large/2016/2016-10-30 18.41.28.jpg b/test-integration/output-expected/media/large/2016/2016-10-30 18.41.28.jpg index ea786b34eb41896fe59975ab31ae6ba8496fc6ae..3217daf3e04b56bb708d34e849170ab538456bec 100644 GIT binary patch delta 17 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 literal 10643 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 GzyH}KLKMgV diff --git a/test-integration/output-expected/media/thumbs/2016/2016-06-14 09.19.03.jpg b/test-integration/output-expected/media/thumbs/2016/2016-06-14 09.19.03.jpg index 1822d230d3d0c8f910609af7126903b42360b5ad..c4835e19f5afb0c639f68b8b06ea37e0c42713e6 100644 GIT binary patch delta 6760 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 Cb|NqU diff --git a/test-integration/output-expected/media/thumbs/2016/2016-10-30 18.41.28.jpg b/test-integration/output-expected/media/thumbs/2016/2016-10-30 18.41.28.jpg index 468a9459bd9f343924e3fea4101360065130aba2..10c9cab9b8b19233298204c28124ecbc80b8f29a 100644 GIT binary patch delta 14 Vcmca?aoJ+SSsq67&F6Sp`2jL^1^EB~ delta 14 Vcmca?aoJ+SSsupn&F6Sp`2jQb1~~u# diff --git a/test-integration/output-expected/media/thumbs/2017/2017-01-15 12.38.41.jpg b/test-integration/output-expected/media/thumbs/2017/2017-01-15 12.38.41.jpg index 8ff86f2b80ffcb819b92eded048bf9df6444914f..3417c68ca15863533dbb0ef3c0a6e04e0af878ef 100644 GIT binary patch delta 37 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 V>yG(rQoSbd4738k5Cj1M|JfdZ^soQ` delta 3036 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