#QUALITY by cg
class: RegressionTests::ImageReaderTest
class definition
added:22 methods
class: RegressionTests::ImageReaderTest class
added:
#documentation
#version
#version_CVS
--- a/RegressionTests__ImageReaderTest.st Wed Aug 30 23:58:29 2017 +0200
+++ b/RegressionTests__ImageReaderTest.st Thu Aug 31 21:39:13 2017 +0200
@@ -462,6 +462,58 @@
self run:#test_png_02
self new test_png_02
"
+!
+
+test_save_1BitPaletteImage
+ |testImage readerImage
+ testView expectedImage gotFromReaderImage|
+
+ "/ a palette; with white at0, black at 1
+ testImage := (Depth1Image width:32 height:32)
+ bits:(ByteArray fromPackedString:'
+@@@@@P@@@@L@@@@G@@@@C00L@A<LC@@?C@0@_03L@O<L3@G?CL0C?0_8A?<G>@??@3@_?0L0O?<@@G??@@C??0@A??<@@???@@_0G0@O<A<@G?OO@C?330A?
+<A<@??@_@_?330O?<<<G??@_C??0G1????<?????_?????????<b')
+ colorMapFromArray:#[255 255 255 0 0 0];
+ yourself.
+
+ "/ generate the reference (expected)
+ testView := View new origin:10@10 corner:100@100.
+ testView viewBackground:Color red.
+ testView openAndWait.
+ testView clear.
+ testImage displayOpaqueOn:testView x:5 y:5.
+ expectedImage := Image fromView:testView.
+
+ "/ save in various formats
+ #( 'bmp' 'png' 'tiff' 'pbm' ) do:[:suffix |
+ testImage saveOn:('/tmp/test.',suffix).
+ "/ read - they all must generate the same...
+ readerImage := Image fromFile:('/tmp/test.',suffix).
+ "/ ...when drawn into a window
+ testView clear.
+ readerImage displayOpaqueOn:testView x:5 y:5.
+
+ "/ readout
+ gotFromReaderImage := Image fromView:testView.
+ (expectedImage bits = gotFromReaderImage bits) ifFalse:[
+ "/ expectedImage bits indexOfFirstDifferenceWith:gotFromReaderImage bits.
+
+ DiffTextView
+ openOn:(' ' split:expectedImage bits printString) label:'expected'
+ and:(' ' split:expectedImage bits printString) label:('from ',suffix).
+ self assert:false.
+ ].
+ ].
+
+self halt.
+
+ "
+ self run:#test_save_1BitPaletteImage
+ self new test_save_1BitPaletteImage
+ "
+
+ "Created: / 31-08-2017 / 19:09:35 / cg"
+ "Modified (format): / 31-08-2017 / 20:13:48 / cg"
! !
!ImageReaderTest class methodsFor:'documentation'!