@@ -312,14 +312,29 @@ describe('ImageUtils', function() {
312312 } ) ;
313313
314314 it ( 'should calculate difference' , function ( ) {
315+ a = imagediff . createImageData ( 1 , 1 ) ,
316+ a . data [ 1 ] = 200 ,
317+ b = imagediff . createImageData ( 1 , 1 ) ,
318+ b . data [ 1 ] = 158 ,
319+ c = imagediff . diff ( a , b , { lightness : 0 } ) ,
320+
321+ d = imagediff . createImageData ( 1 , 1 ) ;
322+ d . data [ 1 ] = 42 ;
323+ d . data [ 3 ] = 255 ;
324+
325+ expect ( c ) . toImageDiffEqual ( d ) ;
326+ } ) ;
327+
328+ it ( 'should calculate difference with adjusted lightness' , function ( ) {
315329 a = imagediff . createImageData ( 1 , 1 ) ,
316330 a . data [ 1 ] = 200 ;
317331 b = imagediff . createImageData ( 1 , 1 ) ,
318332 b . data [ 1 ] = 158 ;
319333 c = imagediff . diff ( a , b ) ;
320334
321335 d = imagediff . createImageData ( 1 , 1 ) ;
322- d . data [ 1 ] = 42 ;
336+ // 42 + 25 (default increased lightness)
337+ d . data [ 1 ] = 67 ;
323338 d . data [ 3 ] = 255 ;
324339
325340 expect ( c ) . toImageDiffEqual ( d ) ;
@@ -329,7 +344,7 @@ describe('ImageUtils', function() {
329344 a = imagediff . createImageData ( 3 , 3 ) ,
330345 b = imagediff . createImageData ( 1 , 1 ) ,
331346 b . data [ 1 ] = 21 ;
332- c = imagediff . diff ( a , b ) ;
347+ c = imagediff . diff ( a , b , { lightness : 0 } ) ;
333348
334349 d = imagediff . createImageData ( 3 , 3 ) ;
335350 // 4 * (rowPos * imageWidth + columnPos) + rgbPos
@@ -348,7 +363,7 @@ describe('ImageUtils', function() {
348363 a = imagediff . createImageData ( 3 , 3 ) ,
349364 b = imagediff . createImageData ( 1 , 1 ) ,
350365 b . data [ 1 ] = 21 ;
351- c = imagediff . diff ( a , b , { align : 'top' } ) ;
366+ c = imagediff . diff ( a , b , { lightness : 0 , align : 'top' } ) ;
352367
353368 d = imagediff . createImageData ( 3 , 3 ) ;
354369 d . data [ 1 ] = 21 ;
@@ -361,6 +376,36 @@ describe('ImageUtils', function() {
361376
362377 expect ( c ) . toImageDiffEqual ( d ) ;
363378 } ) ;
379+
380+ it ( 'should optionally color differences' , function ( ) {
381+ a = imagediff . createImageData ( 1 , 1 ) ,
382+ b = imagediff . createImageData ( 1 , 1 ) ;
383+ // Fills a grey pixel and expects c to be tinted in light pink
384+ Array . prototype . forEach . call ( b . data , function ( value , i ) {
385+ b . data [ i ] = 125 ;
386+ } ) ;
387+ c = imagediff . diff ( a , b , { rgb : [ 255 , 0 , 255 ] } ) ;
388+
389+ d = imagediff . createImageData ( 1 , 1 ) ;
390+ d . data [ 0 ] = 255 ;
391+ d . data [ 1 ] = 125 ;
392+ d . data [ 2 ] = 255 ;
393+ d . data [ 3 ] = 255 ;
394+
395+ expect ( c ) . toImageDiffEqual ( d ) ;
396+ } ) ;
397+
398+ it ( 'should optionally show common pixels' , function ( ) {
399+ a = imagediff . createImageData ( 1 , 1 ) ;
400+ // Fills white pixels
401+ Array . prototype . forEach . call ( a . data , function ( value , i ) {
402+ a . data [ i ] = 255 ;
403+ } ) ;
404+ b = a ;
405+ c = imagediff . diff ( a , b , { stack : true } ) ;
406+
407+ expect ( c ) . toImageDiffEqual ( a ) ;
408+ } ) ;
364409 } ) ;
365410
366411 /*
0 commit comments