Initial checkin of Pika from heckimp
This commit is contained in:
110
plug-ins/script-fu/test/tests/PDB/layer/layer-mask.scm
Normal file
110
plug-ins/script-fu/test/tests/PDB/layer/layer-mask.scm
Normal file
@ -0,0 +1,110 @@
|
||||
; tests of methods re masks on layers
|
||||
|
||||
; masks are a separate class in Pika PikaLayerMask
|
||||
; but the methods are named strangely,
|
||||
; e.g. there is no pika-layer-mask-get-layer
|
||||
|
||||
|
||||
; setup
|
||||
;
|
||||
(define testImage (car (pika-image-new 21 22 RGB)))
|
||||
|
||||
(define
|
||||
testLayer (car (pika-layer-new
|
||||
testImage
|
||||
21
|
||||
22
|
||||
RGB-IMAGE
|
||||
"LayerNew"
|
||||
50.0
|
||||
LAYER-MODE-NORMAL)))
|
||||
; assert layer is not inserted in image
|
||||
|
||||
; assert layerMask not on the layer yet!!!
|
||||
(define
|
||||
testLayerMask (car (pika-layer-create-mask
|
||||
testLayer
|
||||
ADD-MASK-WHITE)))
|
||||
|
||||
|
||||
; mask is not on layer until added.
|
||||
; Getting the mask for the layer yields -1.
|
||||
(assert `(= (car (pika-layer-mask ,testLayer))
|
||||
-1))
|
||||
|
||||
; add layerMask created on a layer to that layer succeeds
|
||||
(assert `(pika-layer-add-mask
|
||||
,testLayer
|
||||
,testLayerMask))
|
||||
|
||||
; add layerMask to layer was effective:
|
||||
; Getting the mask for the layer yields layerMask ID
|
||||
(assert `(= (car (pika-layer-mask ,testLayer))
|
||||
,testLayerMask))
|
||||
|
||||
; and vice versa
|
||||
(assert `(= (car (pika-layer-from-mask ,testLayerMask))
|
||||
,testLayer))
|
||||
|
||||
|
||||
|
||||
; creating and adding second mask
|
||||
|
||||
; creating a second mask from layer succeeds
|
||||
(define
|
||||
testLayerMask2
|
||||
(car (pika-layer-create-mask
|
||||
testLayer
|
||||
ADD-MASK-WHITE)))
|
||||
|
||||
|
||||
; adding a second layerMask fails
|
||||
(assert-error `(pika-layer-add-mask
|
||||
,testLayer
|
||||
,testLayerMask2)
|
||||
(string-append
|
||||
"Procedure execution of pika-layer-add-mask failed: "
|
||||
"Unable to add a layer mask since the layer already has one."))
|
||||
|
||||
|
||||
|
||||
; mask removal
|
||||
|
||||
; remove-mask fails if the layer is not on image
|
||||
(assert-error `(pika-layer-remove-mask
|
||||
,testLayer
|
||||
MASK-APPLY) ; removal mode
|
||||
"Procedure execution of pika-layer-remove-mask failed on invalid input arguments: ")
|
||||
; "Item 'LayerNew' (12) cannot be used because it has not been added to an image"))
|
||||
|
||||
; adding layer to image succeeds
|
||||
(assert `(pika-image-insert-layer
|
||||
,testImage
|
||||
,testLayer
|
||||
0 ; parent
|
||||
0 )) ; position within parent
|
||||
|
||||
; remove-mask succeeds
|
||||
; when layer is in image
|
||||
(assert `(pika-layer-remove-mask
|
||||
,testLayer
|
||||
MASK-APPLY)) ; removal mode
|
||||
|
||||
; and is effective
|
||||
; layer no longer has a mask
|
||||
(assert `(= (car (pika-layer-mask ,testLayer))
|
||||
-1))
|
||||
|
||||
; and now we can add the second mask
|
||||
(assert `(pika-layer-add-mask
|
||||
,testLayer
|
||||
,testLayerMask2))
|
||||
|
||||
|
||||
; fails when mask different size from layer?
|
||||
|
||||
; fails create layerMask when ADD-CHANNEL-MASK and no active channel
|
||||
|
||||
; create layerMask ADD-ALPHA-MASK works even when no alpha channel
|
||||
|
||||
; TODO many variations of create
|
120
plug-ins/script-fu/test/tests/PDB/layer/layer-new.scm
Normal file
120
plug-ins/script-fu/test/tests/PDB/layer/layer-new.scm
Normal file
@ -0,0 +1,120 @@
|
||||
; test Layer methods of PDB
|
||||
|
||||
|
||||
; setup
|
||||
|
||||
|
||||
(define testImage (car (pika-image-new 21 22 RGB)))
|
||||
|
||||
(define testLayer
|
||||
(car (pika-layer-new
|
||||
testImage
|
||||
21
|
||||
22
|
||||
RGB-IMAGE
|
||||
"LayerNew"
|
||||
50.0
|
||||
LAYER-MODE-NORMAL)))
|
||||
|
||||
|
||||
|
||||
|
||||
; new layer is not in the image until inserted
|
||||
(assert `(= (car (pika-image-get-layers ,testImage))
|
||||
0))
|
||||
|
||||
|
||||
|
||||
; attributes of new layer
|
||||
|
||||
; defaulted attributes
|
||||
|
||||
; apply-mask default false
|
||||
(assert `(=
|
||||
(car (pika-layer-get-apply-mask ,testLayer))
|
||||
0))
|
||||
|
||||
; blend-space default LAYER-COLOR-SPACE-AUTO
|
||||
(assert `(=
|
||||
(car (pika-layer-get-blend-space ,testLayer))
|
||||
LAYER-COLOR-SPACE-AUTO))
|
||||
|
||||
; composite-mode default LAYER-COMPOSITE-AUTO
|
||||
(assert `(=
|
||||
(car (pika-layer-get-composite-mode ,testLayer))
|
||||
LAYER-COMPOSITE-AUTO))
|
||||
|
||||
; composite-space default LAYER-COLOR-SPACE-AUTO
|
||||
(assert `(=
|
||||
(car (pika-layer-get-composite-space ,testLayer))
|
||||
LAYER-COLOR-SPACE-AUTO))
|
||||
|
||||
; edit-mask default false
|
||||
(assert `(=
|
||||
(car (pika-layer-get-edit-mask ,testLayer))
|
||||
0))
|
||||
|
||||
; lock-alpha default false
|
||||
; deprecated? pika-layer-get-preserve-trans
|
||||
(assert `(=
|
||||
(car (pika-layer-get-lock-alpha ,testLayer))
|
||||
0))
|
||||
|
||||
; mask not exist, ID -1
|
||||
; deprecated? pika-layer-mask
|
||||
(assert `(=
|
||||
(car (pika-layer-get-mask ,testLayer))
|
||||
-1))
|
||||
|
||||
; mode default LAYER-MODE-NORMAL
|
||||
(assert `(=
|
||||
(car (pika-layer-get-mode ,testLayer))
|
||||
LAYER-MODE-NORMAL))
|
||||
|
||||
; show-mask default false
|
||||
(assert `(=
|
||||
(car (pika-layer-get-show-mask ,testLayer))
|
||||
0))
|
||||
|
||||
; visible default true
|
||||
; FIXME doc says default false
|
||||
(assert `(=
|
||||
(car (pika-layer-get-visible ,testLayer))
|
||||
1))
|
||||
|
||||
; is-floating-sel default false
|
||||
(assert `(=
|
||||
(car (pika-layer-is-floating-sel ,testLayer))
|
||||
0))
|
||||
|
||||
; !!! No get-offsets
|
||||
|
||||
|
||||
|
||||
|
||||
; attributes are as given when created
|
||||
|
||||
; name is as given
|
||||
(assert `(string=? (car (pika-layer-get-name ,testLayer))
|
||||
"LayerNew"))
|
||||
|
||||
; opacity is as given
|
||||
(assert `(=
|
||||
(car (pika-layer-get-opacity ,testLayer))
|
||||
50.0))
|
||||
|
||||
|
||||
; generated attributes
|
||||
|
||||
; tattoo
|
||||
; tattoo is generated unique within image?
|
||||
(assert `(=
|
||||
(car (pika-layer-get-tattoo ,testLayer))
|
||||
2))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
88
plug-ins/script-fu/test/tests/PDB/layer/layer-ops.scm
Normal file
88
plug-ins/script-fu/test/tests/PDB/layer/layer-ops.scm
Normal file
@ -0,0 +1,88 @@
|
||||
; test Layer methods of PDB
|
||||
; where methods are operations
|
||||
|
||||
|
||||
; setup
|
||||
|
||||
(define testImage (car (pika-image-new 21 22 RGB)))
|
||||
|
||||
(define
|
||||
testLayer (car (pika-layer-new
|
||||
testImage
|
||||
21
|
||||
22
|
||||
RGB-IMAGE
|
||||
"LayerNew#2"
|
||||
50.0
|
||||
LAYER-MODE-NORMAL)))
|
||||
; assert layer is not inserted in image
|
||||
|
||||
|
||||
; errors when layer not in image
|
||||
|
||||
; resize fails
|
||||
(assert-error `(pika-layer-resize ,testLayer 23 24 0 0)
|
||||
(string-append
|
||||
"Procedure execution of pika-layer-resize failed on invalid input arguments: "))
|
||||
;"Item 'LayerNew#2' (10) cannot be used because it has not been added to an image"))
|
||||
|
||||
; scale fails
|
||||
(assert-error `(pika-layer-scale ,testLayer
|
||||
23 24 ; width height
|
||||
0) ; is local origin?
|
||||
(string-append
|
||||
"Procedure execution of pika-layer-scale failed on invalid input arguments: "))
|
||||
;"Item 'LayerNew#2' (10) cannot be used because it has not been added to an image"))
|
||||
|
||||
; pika-layer-resize-to-image-size fails
|
||||
; TODO
|
||||
|
||||
; pika-layer-remove-mask fails when layer has no mask
|
||||
(assert-error `(pika-layer-remove-mask
|
||||
,testLayer
|
||||
MASK-APPLY)
|
||||
(string-append
|
||||
"Procedure execution of pika-layer-remove-mask failed on invalid input arguments: "))
|
||||
; "Item 'LayerNew#2' (10) cannot be used because it has not been added to an image"))
|
||||
|
||||
|
||||
|
||||
; alpha operations
|
||||
|
||||
; add-alpha succeeds
|
||||
(assert `(pika-layer-add-alpha ,testLayer))
|
||||
|
||||
; and is effective
|
||||
; Note method on superclass Drawable
|
||||
(assert `(= (car (pika-drawable-has-alpha ,testLayer))
|
||||
1))
|
||||
|
||||
; flatten succeeds
|
||||
(assert `(pika-layer-flatten ,testLayer))
|
||||
|
||||
; flatten was effective: no longer has alpha
|
||||
; flatten a layer means "remove alpha"
|
||||
(assert `(= (car (pika-drawable-has-alpha ,testLayer))
|
||||
0))
|
||||
|
||||
|
||||
|
||||
|
||||
; delete
|
||||
|
||||
; delete succeeds
|
||||
(assert `(pika-layer-delete ,testLayer))
|
||||
|
||||
; delete second time fails
|
||||
(assert-error `(pika-layer-delete ,testLayer)
|
||||
"runtime: invalid item ID")
|
||||
|
||||
; Error for flatten:
|
||||
; "Procedure execution of pika-layer-delete failed on invalid input arguments: "
|
||||
; "Procedure 'pika-layer-delete' has been called with an invalid ID for argument 'layer'. "
|
||||
; "Most likely a plug-in is trying to work on a layer that doesn't exist any longer."))
|
||||
|
||||
; delete layer when image already deleted fails
|
||||
; TODO
|
||||
|
||||
|
Reference in New Issue
Block a user