; 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