mirror of
https://github.com/justinethier/cyclone.git
synced 2025-07-16 17:27:33 +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 file)
|
||||||
(scheme read)
|
(scheme read)
|
||||||
(scheme write)
|
(scheme write)
|
||||||
(scheme eval))
|
(scheme eval)
|
||||||
|
(srfi 9)
|
||||||
|
)
|
||||||
|
|
||||||
(define *num-passed* 0)
|
(define *num-passed* 0)
|
||||||
(define (assert:equal msg actual expected)
|
(define (assert:equal msg actual expected)
|
||||||
|
@ -318,6 +320,24 @@
|
||||||
(assert:equal "macro: eval test" (eval '(test 1 2 x)) x)
|
(assert:equal "macro: eval test" (eval '(test 1 2 x)) x)
|
||||||
;; END macros
|
;; 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
|
; TODO: use display, output without surrounding quotes
|
||||||
(write (list *num-passed* " tests passed with no errors"))
|
(write (list *num-passed* " tests passed with no errors"))
|
||||||
;;
|
;;
|
||||||
|
|
Loading…
Add table
Reference in a new issue