The Trunk: GraphicsTests-tpr.33.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: GraphicsTests-tpr.33.mcz

commits-2
tim Rowledge uploaded a new version of GraphicsTests to project The Trunk:
http://source.squeak.org/trunk/GraphicsTests-tpr.33.mcz

==================== Summary ====================

Name: GraphicsTests-tpr.33
Author: tpr
Time: 21 March 2013, 9:24:55.556 pm
UUID: 2e72384c-4a49-475d-a45e-2707a3cb5957
Ancestors: GraphicsTests-tpr.32

(second attemt to save this)
Add test for Form>pixelValueAt: primitive extension.
Add <timeout: > pragma to some slow running tests (on a Pi) so they get a chance to complete.

=============== Diff against GraphicsTests-nice.31 ===============

Item was changed:
  ----- Method: BitBltTest>>testAllAlphasRgbAdd (in category 'bugs') -----
  testAllAlphasRgbAdd
  "self run: #testAllAlphasRgbAdd"
  | sourceForm destForm blt correctAlphas |
+ <timeout: 15>
       correctAlphas := 0.
       0  to: 255 do: [:sourceAlpha |
           sourceForm := Form extent: 1 @ 1 depth: 32.
           sourceForm bits at: 1 put: sourceAlpha << 24 + (33 << 16) + (25 << 8) + 27.
           0 to: 255 do: [:destAlpha |
               destForm := Form extent: 1 @ 1 depth: 32.
               destForm bits at: 1 put: destAlpha << 24 + (255 << 16) + (255 << 8) + 255.
                blt := BitBlt new.
                blt sourceForm: sourceForm.
                blt sourceOrigin: 0 @ 0.
                blt setDestForm: destForm.
                blt destOrigin: 0 @ 0.
                blt combinationRule: 20. "rgbAdd"
                blt copyBits.
                correctAlphas := correctAlphas
                  + (((blt destForm bits at: 1) digitAt: 4) = (destAlpha + sourceAlpha min: 255)
                           ifTrue: [1]
                           ifFalse: [0])
        ]].
       self assert: 65536 equals: correctAlphas!

Item was changed:
  ----- Method: BitBltTest>>testAllAlphasRgbMax (in category 'bugs') -----
  testAllAlphasRgbMax
  "self run: #testAllAlphasRgbMax"
  | sourceForm destForm blt correctAlphas |
+ <timeout: 10>
       correctAlphas := 0.
       0  to: 255 do: [:sourceAlpha |
           sourceForm := Form extent: 1 @ 1 depth: 32.
           sourceForm bits at: 1 put: sourceAlpha << 24 + (33 << 16) + (25 << 8) + 27.
           0 to: 255 do: [:destAlpha |
               destForm := Form extent: 1 @ 1 depth: 32.
               destForm bits at: 1 put: destAlpha << 24 + (255 << 16) + (255 << 8) + 255.
                blt := BitBlt new.
                blt sourceForm: sourceForm.
                blt sourceOrigin: 0 @ 0.
                blt setDestForm: destForm.
                blt destOrigin: 0 @ 0.
                blt combinationRule: 27. "rgbMax"
                blt copyBits.
                correctAlphas := correctAlphas
                  + (((blt destForm bits at: 1) digitAt: 4) = (destAlpha max: sourceAlpha)
                           ifTrue: [1]
                           ifFalse: [0])
        ]].
       self assert: 65536 equals: correctAlphas!

Item was changed:
  ----- Method: BitBltTest>>testAllAlphasRgbMin (in category 'bugs') -----
  testAllAlphasRgbMin
  "self run: #testAllAlphasRgbMin"
  | sourceForm destForm blt correctAlphas |
+ <timeout: 10>
       correctAlphas := 0.
       0  to: 255 do: [:sourceAlpha |
           sourceForm := Form extent: 1 @ 1 depth: 32.
           sourceForm bits at: 1 put: sourceAlpha << 24 + (33 << 16) + (25 << 8) + 27.
           0 to: 255 do: [:destAlpha |
               destForm := Form extent: 1 @ 1 depth: 32.
               destForm bits at: 1 put: destAlpha << 24 + (255 << 16) + (255 << 8) + 255.
                blt := BitBlt new.
                blt sourceForm: sourceForm.
                blt sourceOrigin: 0 @ 0.
                blt setDestForm: destForm.
                blt destOrigin: 0 @ 0.
                blt combinationRule: 28. "rgbMin"
                blt copyBits.
                correctAlphas := correctAlphas
                  + (((blt destForm bits at: 1) digitAt: 4) = (destAlpha min: sourceAlpha)
                           ifTrue: [1]
                           ifFalse: [0])
        ]].
       self assert: 65536 equals: correctAlphas!

Item was changed:
  ----- Method: BitBltTest>>testAllAlphasRgbMinInvert (in category 'bugs') -----
  testAllAlphasRgbMinInvert
  "self run: #testAllAlphasRgbMinInvert"
  | sourceForm destForm blt correctAlphas |
+ <timeout: 10>
       correctAlphas := 0.
       0  to: 255 do: [:sourceAlpha |
           sourceForm := Form extent: 1 @ 1 depth: 32.
           sourceForm bits at: 1 put: sourceAlpha << 24 + (33 << 16) + (25 << 8) + 27.
           0 to: 255 do: [:destAlpha |
               destForm := Form extent: 1 @ 1 depth: 32.
               destForm bits at: 1 put: destAlpha << 24 + (255 << 16) + (255 << 8) + 255.
                blt := BitBlt new.
                blt sourceForm: sourceForm.
                blt sourceOrigin: 0 @ 0.
                blt setDestForm: destForm.
                blt destOrigin: 0 @ 0.
                blt combinationRule: 29. "rgbMinInvert"
                blt copyBits.
                correctAlphas := correctAlphas
                  + (((blt destForm bits at: 1) digitAt: 4) = (destAlpha min: 255-sourceAlpha)
                           ifTrue: [1]
                           ifFalse: [0])
        ]].
       self assert: 65536 equals: correctAlphas!

Item was changed:
  ----- Method: BitBltTest>>testAllAlphasRgbMul (in category 'bugs') -----
  testAllAlphasRgbMul
  "self run: #testAllAlphasRgbMul"
  | sourceForm destForm blt correctAlphas |
+ <timeout: 10>
       correctAlphas := 0.
       0  to: 255 do: [:sourceAlpha |
           sourceForm := Form extent: 1 @ 1 depth: 32.
           sourceForm bits at: 1 put: sourceAlpha << 24 + (33 << 16) + (25 << 8) + 27.
           0 to: 255 do: [:destAlpha |
               destForm := Form extent: 1 @ 1 depth: 32.
               destForm bits at: 1 put: destAlpha << 24 + (255 << 16) + (255 << 8) + 255.
                blt := BitBlt new.
                blt sourceForm: sourceForm.
                blt sourceOrigin: 0 @ 0.
                blt setDestForm: destForm.
                blt destOrigin: 0 @ 0.
                blt combinationRule: 37. "rgbMul"
                blt copyBits.
                correctAlphas := correctAlphas
                  + (((blt destForm bits at: 1) digitAt: 4) = ((destAlpha+1) * (sourceAlpha+1)- 1 // 256)
                           ifTrue: [1]
                           ifFalse: [0])
        ]].
       self assert: 65536 equals: correctAlphas!

Item was changed:
  ----- Method: BitBltTest>>testAllAlphasRgbSub (in category 'bugs') -----
  testAllAlphasRgbSub
  "self run: #testAllAlphasRgbSub"
  | sourceForm destForm blt correctAlphas |
+ <timeout: 10>
       correctAlphas := 0.
       0  to: 255 do: [:sourceAlpha |
           sourceForm := Form extent: 1 @ 1 depth: 32.
           sourceForm bits at: 1 put: sourceAlpha << 24 + (33 << 16) + (25 << 8) + 27.
           0 to: 255 do: [:destAlpha |
               destForm := Form extent: 1 @ 1 depth: 32.
               destForm bits at: 1 put: destAlpha << 24 + (255 << 16) + (255 << 8) + 255.
                blt := BitBlt new.
                blt sourceForm: sourceForm.
                blt sourceOrigin: 0 @ 0.
                blt setDestForm: destForm.
                blt destOrigin: 0 @ 0.
                blt combinationRule: 21. "rgbSub"
                blt copyBits.
                correctAlphas := correctAlphas
                  + (((blt destForm bits at: 1) digitAt: 4) = (destAlpha - sourceAlpha) abs
                           ifTrue: [1]
                           ifFalse: [0])
        ]].
       self assert: 65536 equals: correctAlphas!

Item was changed:
  ----- Method: BitBltTest>>testAlphaCompositing2Simulated (in category 'bugs') -----
  testAlphaCompositing2Simulated
  "self run: #testAlphaCompositing2Simulated"
 
+ <timeout: 60>
  Smalltalk at: #BitBltSimulation ifPresent: [:bitblt|
  | bb f1 f2 mixColor result eps |
  f1 := Form extent: 1@1 depth: 32.
  f2 := Form extent: 1@1 depth: 32.
  eps := 0.5 / 255.
  0 to: 255 do:[:i|
  f1 colorAt: 0@0 put: Color transparent.
  mixColor := Color red alpha: i / 255.0.
  f2 colorAt: 0@0 put: mixColor.
  mixColor := f2 colorAt: 0@0.
  bb := BitBlt toForm: f1.
  bb sourceForm: f2.
  bb combinationRule: Form blend.
  bb copyBitsSimulated.
  result := f1 colorAt: 0@0.
  self assert: (result red - mixColor alpha) abs < eps.
  self assert: result alpha = mixColor alpha.
  ].]!

Item was changed:
  ----- Method: BitBltTest>>testAlphaCompositingSimulated (in category 'bugs') -----
  testAlphaCompositingSimulated
  "self run: #testAlphaCompositingSimulated"
 
+ <timeout: 60>
  Smalltalk at: #BitBltSimulation ifPresent:[:bitblt|
  | bb f1 f2 mixColor result eps |
  f1 := Form extent: 1@1 depth: 32.
  f2 := Form extent: 1@1 depth: 32.
  eps := 0.5 / 255.
  0 to: 255 do:[:i|
  f1 colorAt: 0@0 put: Color blue.
  mixColor := Color red alpha: i / 255.0.
  f2 colorAt: 0@0 put: mixColor.
  mixColor := f2 colorAt: 0@0.
  bb := BitBlt toForm: f1.
  bb sourceForm: f2.
  bb combinationRule: Form blend.
  bb copyBitsSimulated.
  result := f1 colorAt: 0@0.
  self assert: (result red - mixColor alpha) abs < eps.
  self assert: (result blue - (1.0 - mixColor alpha)) abs < eps.
  self assert: result alpha = 1.0.
  ]].!

Item was added:
+ ----- Method: BitBltTest>>testPivelValueAt (in category 'bugs') -----
+ testPivelValueAt
+ "tests for the pixel peeking extension to bitBlt"
+ " self run: #testPixelValueAt"
+ |formList pixels |
+ "make a Form of each depth"
+ formList := #(1 2 4 8 16 32) collect:[:d| Form extent: 17@7 depth: d].
+ pixels := Dictionary new.
+ pixels at: 1 put: 1; at: 2 put: 3; at:4 put: 7; at: 8 put: 16rFF; at: 16 put: 16rFFFF ; at: 32 put: 16rFFFFFFFF.
+
+ "poke pixels to
+ topleft (to test handling 0)
+ bottomright (to test limits)
+ middle (just because)
+ peek at each location (to make sure it matches expectations)"
+ formList do:[:f| |d pixval|
+ d := f depth.
+ pixval := pixels at: d.
+ f pixelValueAt: 0@0 put: pixval.
+ f pixelValueAt: 16@6 put: pixval.
+ f pixelValueAt: 7@3 put: pixval.
+ self assert: (f pixelValueAt: 0@0) = pixval.
+ self assert: (f pixelValueAt: 1@0) = 0.
+ self assert: (f pixelValueAt: 16@6) = pixval.
+ self assert:(f pixelValueAt: 15@6) = 0.
+ self assert: (f pixelValueAt: 7@3) = pixval.
+ self assert: (f pixelValueAt: 6@3) = 0.
+ ]!