mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-16 09:17:35 +02:00
Added record type tests
This commit is contained in:
parent
dc3d55cc7d
commit
786ce36c49
2 changed files with 21 additions and 1 deletions
|
@ -3,7 +3,9 @@
|
|||
(scheme file)
|
||||
(scheme read)
|
||||
(scheme write)
|
||||
(scheme eval))
|
||||
(scheme eval)
|
||||
(srfi 9)
|
||||
)
|
||||
|
||||
(define *num-passed* 0)
|
||||
(define (assert:equal msg actual expected)
|
||||
|
@ -318,6 +320,24 @@
|
|||
(assert:equal "macro: eval test" (eval '(test 1 2 x)) x)
|
||||
;; END macros
|
||||
|
||||
;; Record types
|
||||
(define-record-type <pare>
|
||||
(kons x y)
|
||||
pare?
|
||||
(x kar set-kar!)
|
||||
(y kdr))
|
||||
|
||||
(assert:equal "Records predicate (t)" (pare? (kons 1 2)) #t)
|
||||
(assert:equal "Records predicate (f)" (pare? (cons 1 2)) #f)
|
||||
(assert:equal "Records kar" (kar (kons 1 2)) 1)
|
||||
(assert:equal "Records kdr" (kdr (kons 1 2)) 2)
|
||||
(assert:equal "Records setter"
|
||||
(let ((k (kons 1 2)))
|
||||
(set-kar! k 3)
|
||||
(kar k))
|
||||
3)
|
||||
;; END records
|
||||
|
||||
; TODO: use display, output without surrounding quotes
|
||||
(write (list *num-passed* " tests passed with no errors"))
|
||||
;;
|
||||
|
|
Loading…
Add table
Reference in a new issue