Initial checkin of Pika from heckimp

This commit is contained in:
2023-09-25 15:35:21 -07:00
commit 891e999216
6761 changed files with 5240685 additions and 0 deletions

View File

@ -0,0 +1,42 @@
; test getters and setters of PikaContext
; (sic its not an object or class)
; set-line-dash-pattern
; tests binding of FloatArray
; Default is no pattern
; Even if user has stroked already and chosen a stroke>line>pattern
(assert `(= (car (pika-context-get-line-dash-pattern))
0))
; setter succeeds
(assert `(pika-context-set-line-dash-pattern 2 #(5.0 11.0)))
; setter effective
(assert `(= (car (pika-context-get-line-dash-pattern))
2))
(assert `(equal? (cadr (pika-context-get-line-dash-pattern))
#(5.0 11.0)))
; get-line-dash-offset
;tests binding of float i.e. gdouble
; defaults to 0.0 until set
; FIXME why doesn't it persist in settings?
(assert `(= (car (pika-context-get-line-dash-offset))
0.0))
; setter succeeds
(assert `(pika-context-set-line-dash-offset 3.3 ))
; setter effective
(assert `(= (car (pika-context-get-line-dash-offset))
3.3))

View File

@ -0,0 +1,113 @@
; test resource methods of Context
; function to test methods on Resource
; for a valid Resource ID
(define (test-resource-methods resource)
; a resource is an int ID in ScriptFu
(assert `(integer? ,resource))
; get-name returns a string
(assert `(string? (car (pika-resource-get-name ,resource))))
; id-is-valid returns truth
; (1) FUTURE #t
(assert `(car (pika-resource-id-is-valid ,resource)))
; pika-resource-get-identifiers succeeds
; it returns a triplet
(assert `(pika-resource-get-identifiers ,resource))
; pika-resource-get-identifiers returns numeric for is-internal
; Some of the fresh pika active resource are internal, some not !!!
(assert `(number? (car (pika-resource-get-identifiers ,resource))))
; name from get-identifiers is same as from pika-resource-get-name
; name is second field of triplet i.e. cadr
(assert `(string=? (cadr (pika-resource-get-identifiers ,resource))
(car (pika-resource-get-name ,resource))))
; pika-resource-is-editable succeeds
; Returns a wrapped boolean
(assert `(pika-resource-is-editable ,resource))
; The fresh pika active resources are all system resources i.e. not editable
; returns 0 for #f
(assert `(= (car(pika-resource-is-editable ,resource))
0))
)
; "Test Parasite") ; name
; "Procedure execution of pika-resource-get-parasite failed")
; test context-get-resource returns active resource of given className
; Setup. Not assert.
(define testBrush (car (pika-context-get-resource "PikaBrush")))
(define testFont (car (pika-context-get-resource "PikaFont")))
(define testGradient (car (pika-context-get-resource "PikaGradient")))
(define testPalette (car (pika-context-get-resource "PikaPalette")))
(define testPattern (car (pika-context-get-resource "PikaPattern")))
; FUTURE Dynamics and other Resource subclasses
; test methods on active resource ID's
(test-resource-methods testBrush)
(test-resource-methods testFont)
(test-resource-methods testGradient)
(test-resource-methods testPalette)
(test-resource-methods testPattern)
; test more specific context methods return same result
; as the general context-get-resource
; test equality of numeric IDs
(assert `(= (car(pika-context-get-brush))
,testBrush))
(assert `(= (car(pika-context-get-font))
,testFont))
(assert `(= (car(pika-context-get-gradient))
,testGradient))
(assert `(= (car(pika-context-get-palette))
,testPalette))
(assert `(= (car(pika-context-get-pattern))
,testPattern))
; test resource-id-is-foo methods
; the resource IDs from setup work with the specific id-is-foo methods
(assert `(= (car(pika-resource-id-is-brush ,testBrush))
1))
(assert `(= (car(pika-resource-id-is-font ,testFont))
1))
(assert `(= (car(pika-resource-id-is-gradient ,testGradient))
1))
(assert `(= (car(pika-resource-id-is-palette ,testPalette))
1))
(assert `(= (car(pika-resource-id-is-pattern ,testPattern))
1))
; test errors
; invalid type name
(assert-error `(pika-context-get-resource "InvalidTypeName")
"Procedure execution of pika-context-get-resource failed")
; invalid numeric ID
; -1 is out of range
(assert-error `(pika-resource-get-name -1)
"Procedure execution of pika-resource-get-name failed on invalid input arguments:")
; 12345678 is in range but invalid
(assert-error `(pika-resource-get-name 12345678)
"Procedure execution of pika-resource-get-name failed on invalid input arguments:")