From 692e2d4df48cf394c753cd226c2d8cc03d9bf7ca Mon Sep 17 00:00:00 2001 From: Lovell Fuller Date: Mon, 7 Sep 2015 14:17:35 +0100 Subject: [PATCH] Automate expected vs actual for blur/sharpen tests --- test/fixtures/expected/blur-0.3.jpg | Bin 0 -> 13735 bytes test/fixtures/expected/blur-1.jpg | Bin 0 -> 10349 bytes test/fixtures/expected/blur-10.jpg | Bin 0 -> 4918 bytes test/fixtures/expected/blur-mild.jpg | Bin 0 -> 10761 bytes test/fixtures/expected/sharpen-10.jpg | Bin 0 -> 20735 bytes test/fixtures/expected/sharpen-3-0.5-2.5.jpg | Bin 0 -> 19857 bytes test/fixtures/expected/sharpen-5-2-4.jpg | Bin 0 -> 23680 bytes test/fixtures/expected/sharpen-mild.jpg | Bin 0 -> 14948 bytes test/unit/blur.js | 33 ++++------- test/unit/sharpen.js | 55 ++++++------------- 10 files changed, 28 insertions(+), 60 deletions(-) create mode 100644 test/fixtures/expected/blur-0.3.jpg create mode 100644 test/fixtures/expected/blur-1.jpg create mode 100644 test/fixtures/expected/blur-10.jpg create mode 100644 test/fixtures/expected/blur-mild.jpg create mode 100644 test/fixtures/expected/sharpen-10.jpg create mode 100644 test/fixtures/expected/sharpen-3-0.5-2.5.jpg create mode 100644 test/fixtures/expected/sharpen-5-2-4.jpg create mode 100644 test/fixtures/expected/sharpen-mild.jpg diff --git a/test/fixtures/expected/blur-0.3.jpg b/test/fixtures/expected/blur-0.3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e982f561b95316ecd8d73276d0fe8bf01350ff41 GIT binary patch literal 13735 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/expected/blur-1.jpg b/test/fixtures/expected/blur-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..091127144d1815db5a72a7cf195595134f1dd51a GIT binary patch literal 10349 zcmb8TWmFX27d1RXcMo0C41x#@(gM;Q!@y7yA~5985-O!Kbc#dQz|h?Yh_uu&AT0t? z5`vWQ6CVHTUGG}Y*XP{(>BK(w!&!UnbMF@J)&X>STDn>QAP@im{yTuXWxx{v2@x>~ zF%by~F$pOt2^j?)1qC@d1rrS|6&(u`D=P~VGc!AvAP+kSKPNLY?|oi=Az@LlC>xKs zq_~Krpopl*|3HAGq@)yN6pR!Uj3VsJ>>~fqcGm}>Cj>ko}83q5}{B2?+^^|96Q9|D^y42mwU�>XH9y0Q&nL3g( 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 Z3wUDzn|vwHCpgEiz;G#TFw~c`|Jl%;XbAuS literal 0 HcmV?d00001 diff --git a/test/fixtures/expected/sharpen-3-0.5-2.5.jpg b/test/fixtures/expected/sharpen-3-0.5-2.5.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5901f6683bdcdaee192c98b532f63f9bee332152 GIT binary patch literal 19857 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 ZF5$O^Fd6s4obq#wdi;kJw_zra|JiZwjGzDj literal 0 HcmV?d00001 diff --git a/test/fixtures/expected/sharpen-5-2-4.jpg b/test/fixtures/expected/sharpen-5-2-4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..df1da7babe9ef1d43d63594486ab5464f882d99e GIT binary patch literal 23680 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 literal 0 HcmV?d00001 diff --git a/test/fixtures/expected/sharpen-mild.jpg b/test/fixtures/expected/sharpen-mild.jpg new file mode 100644 index 0000000000000000000000000000000000000000..86b9424cec5c5d9a0fb9ded4e1a15a7f1b7e164c GIT binary patch literal 14948 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 DAnuLI literal 0 HcmV?d00001 diff --git a/test/unit/blur.js b/test/unit/blur.js index 5c6c080f..15f50404 100755 --- a/test/unit/blur.js +++ b/test/unit/blur.js @@ -13,12 +13,11 @@ describe('Blur', function() { sharp(fixtures.inputJpg) .resize(320, 240) .blur(1) - .toFile(fixtures.path('output.blur-1.jpg'), function(err, info) { - if (err) throw err; + .toBuffer(function(err, data, info) { assert.strictEqual('jpeg', info.format); assert.strictEqual(320, info.width); assert.strictEqual(240, info.height); - done(); + fixtures.assertSimilar(fixtures.expected('blur-1.jpg'), data, done); }); }); @@ -26,12 +25,11 @@ describe('Blur', function() { sharp(fixtures.inputJpg) .resize(320, 240) .blur(10) - .toFile(fixtures.path('output.blur-10.jpg'), function(err, info) { - if (err) throw err; + .toBuffer(function(err, data, info) { assert.strictEqual('jpeg', info.format); assert.strictEqual(320, info.width); assert.strictEqual(240, info.height); - done(); + fixtures.assertSimilar(fixtures.expected('blur-10.jpg'), data, done); }); }); @@ -39,12 +37,11 @@ describe('Blur', function() { sharp(fixtures.inputJpg) .resize(320, 240) .blur(0.3) - .toFile(fixtures.path('output.blur-0.3.jpg'), function(err, info) { - if (err) throw err; + .toBuffer(function(err, data, info) { assert.strictEqual('jpeg', info.format); assert.strictEqual(320, info.width); assert.strictEqual(240, info.height); - done(); + fixtures.assertSimilar(fixtures.expected('blur-0.3.jpg'), data, done); }); }); @@ -52,24 +49,18 @@ describe('Blur', function() { sharp(fixtures.inputJpg) .resize(320, 240) .blur() - .toFile(fixtures.path('output.blur-mild.jpg'), function(err, info) { - if (err) throw err; + .toBuffer(function(err, data, info) { assert.strictEqual('jpeg', info.format); assert.strictEqual(320, info.width); assert.strictEqual(240, info.height); - done(); + fixtures.assertSimilar(fixtures.expected('blur-mild.jpg'), data, done); }); }); - it('invalid radius', function(done) { - var isValid = true; - try { + it('invalid radius', function() { + assert.throws(function() { sharp(fixtures.inputJpg).blur(0.1); - } catch (err) { - isValid = false; - } - assert.strictEqual(false, isValid); - done(); + }); }); it('blurred image is smaller than non-blurred', function(done) { @@ -77,7 +68,6 @@ describe('Blur', function() { .resize(320, 240) .blur(false) .toBuffer(function(err, notBlurred, info) { - if (err) throw err; assert.strictEqual(true, notBlurred.length > 0); assert.strictEqual('jpeg', info.format); assert.strictEqual(320, info.width); @@ -86,7 +76,6 @@ describe('Blur', function() { .resize(320, 240) .blur(true) .toBuffer(function(err, blurred, info) { - if (err) throw err; assert.strictEqual(true, blurred.length > 0); assert.strictEqual(true, blurred.length < notBlurred.length); assert.strictEqual('jpeg', info.format); diff --git a/test/unit/sharpen.js b/test/unit/sharpen.js index 96bf024f..c989b901 100755 --- a/test/unit/sharpen.js +++ b/test/unit/sharpen.js @@ -13,12 +13,11 @@ describe('Sharpen', function() { sharp(fixtures.inputJpg) .resize(320, 240) .sharpen(10) - .toFile(fixtures.path('output.sharpen-10.jpg'), function(err, info) { - if (err) throw err; + .toBuffer(function(err, data, info) { assert.strictEqual('jpeg', info.format); assert.strictEqual(320, info.width); assert.strictEqual(240, info.height); - done(); + fixtures.assertSimilar(fixtures.expected('sharpen-10.jpg'), data, done); }); }); @@ -26,12 +25,11 @@ describe('Sharpen', function() { sharp(fixtures.inputJpg) .resize(320, 240) .sharpen(3, 0.5, 2.5) - .toFile(fixtures.path('output.sharpen-3-0.5-2.5.jpg'), function(err, info) { - if (err) throw err; + .toBuffer(function(err, data, info) { assert.strictEqual('jpeg', info.format); assert.strictEqual(320, info.width); assert.strictEqual(240, info.height); - done(); + fixtures.assertSimilar(fixtures.expected('sharpen-3-0.5-2.5.jpg'), data, done); }); }); @@ -39,12 +37,11 @@ describe('Sharpen', function() { sharp(fixtures.inputJpg) .resize(320, 240) .sharpen(5, 2, 4) - .toFile(fixtures.path('output.sharpen-5-2-4.jpg'), function(err, info) { - if (err) throw err; + .toBuffer(function(err, data, info) { assert.strictEqual('jpeg', info.format); assert.strictEqual(320, info.width); assert.strictEqual(240, info.height); - done(); + fixtures.assertSimilar(fixtures.expected('sharpen-5-2-4.jpg'), data, done); }); }); @@ -52,46 +49,30 @@ describe('Sharpen', function() { sharp(fixtures.inputJpg) .resize(320, 240) .sharpen() - .toFile(fixtures.path('output.sharpen-mild.jpg'), function(err, info) { - if (err) throw err; + .toBuffer(function(err, data, info) { assert.strictEqual('jpeg', info.format); assert.strictEqual(320, info.width); assert.strictEqual(240, info.height); - done(); + fixtures.assertSimilar(fixtures.expected('sharpen-mild.jpg'), data, done); }); }); - it('invalid radius', function(done) { - var isValid = true; - try { + it('invalid radius', function() { + assert.throws(function() { sharp(fixtures.inputJpg).sharpen(1.5); - } catch (err) { - isValid = false; - } - assert.strictEqual(false, isValid); - done(); + }); }); - it('invalid flat', function(done) { - var isValid = true; - try { + it('invalid flat', function() { + assert.throws(function() { sharp(fixtures.inputJpg).sharpen(1, -1); - } catch (err) { - isValid = false; - } - assert.strictEqual(false, isValid); - done(); + }); }); - it('invalid jagged', function(done) { - var isValid = true; - try { + it('invalid jagged', function() { + assert.throws(function() { sharp(fixtures.inputJpg).sharpen(1, 1, -1); - } catch (err) { - isValid = false; - } - assert.strictEqual(false, isValid); - done(); + }); }); it('sharpened image is larger than non-sharpened', function(done) { @@ -99,7 +80,6 @@ describe('Sharpen', function() { .resize(320, 240) .sharpen(false) .toBuffer(function(err, notSharpened, info) { - if (err) throw err; assert.strictEqual(true, notSharpened.length > 0); assert.strictEqual('jpeg', info.format); assert.strictEqual(320, info.width); @@ -108,7 +88,6 @@ describe('Sharpen', function() { .resize(320, 240) .sharpen(true) .toBuffer(function(err, sharpened, info) { - if (err) throw err; assert.strictEqual(true, sharpened.length > 0); assert.strictEqual(true, sharpened.length > notSharpened.length); assert.strictEqual('jpeg', info.format);