Initial commit
This commit is contained in:
90
elpa/geiser-20171010.1610/scheme/chez/geiser/test.ss
Normal file
90
elpa/geiser-20171010.1610/scheme/chez/geiser/test.ss
Normal file
@@ -0,0 +1,90 @@
|
||||
(import (geiser)
|
||||
(chezscheme))
|
||||
|
||||
|
||||
(define-syntax get-result
|
||||
(syntax-rules ()
|
||||
((_ form)
|
||||
(with-output-to-string
|
||||
(lambda ()
|
||||
(geiser:eval #f form))))))
|
||||
|
||||
(define-syntax do-test
|
||||
(syntax-rules ()
|
||||
((_ form result)
|
||||
(assert
|
||||
(equal?
|
||||
(get-result form)
|
||||
result)))))
|
||||
|
||||
;; (something-doesnot-exist)
|
||||
;;=> Error: Exception: variable something-doesnot-exist is not bound
|
||||
(do-test
|
||||
'(something-doesnot-exist)
|
||||
"((result \"\") (output . \"\") (error (key . \"Exception: variable something-doesnot-exist is not bound\")))\n"
|
||||
)
|
||||
|
||||
;; (make-violation)
|
||||
;;=> #<condition &violation>
|
||||
(do-test
|
||||
'(make-violation)
|
||||
"((result \"#<condition &violation>\\n\") (output . \"\"))\n")
|
||||
|
||||
;; (values 1 2 3)
|
||||
;;==> (1 2 3)
|
||||
(do-test
|
||||
'(values 1 2 3)
|
||||
"((result \"(1 2 3)\\n\") (output . \"\"))\n")
|
||||
|
||||
;; 1
|
||||
;;=> 1
|
||||
(do-test '1 "((result \"1\\n\") (output . \"\"))\n")
|
||||
|
||||
|
||||
;; '(case-lambda
|
||||
;; [(x1 x2) (+ x1 x2)]
|
||||
;; [(x1 x2 x3) (+ (+ x1 x2) x3)]
|
||||
;; [(x1 x2 . rest)
|
||||
;; ((letrec ([loop (lambda (x1 x2 rest)
|
||||
;; (let ([x (+ x1 x2)])
|
||||
;; (if (null? rest)
|
||||
;; x
|
||||
;; (loop x (car rest) (cdr rest)))))])
|
||||
;; loop)
|
||||
;; x1
|
||||
;; x2
|
||||
;; rest)]
|
||||
;; [(x1) (+ x1)]
|
||||
;; [() (+)])
|
||||
#|=> (case-lambda
|
||||
[(x1 x2) (+ x1 x2)]
|
||||
[(x1 x2 x3) (+ (+ x1 x2) x3)]
|
||||
[(x1 x2 . rest)
|
||||
((letrec ([loop (lambda (x1 x2 rest)
|
||||
(let ([x (+ x1 x2)])
|
||||
(if (null? rest)
|
||||
x
|
||||
(loop x (car rest) (cdr rest)))))])
|
||||
loop)
|
||||
x1
|
||||
x2
|
||||
rest)]
|
||||
[(x1) (+ x1)]
|
||||
[() (+)])
|
||||
|#
|
||||
(do-test (quote '(case-lambda
|
||||
[(x1 x2) (+ x1 x2)]
|
||||
[(x1 x2 x3) (+ (+ x1 x2) x3)]
|
||||
[(x1 x2 . rest)
|
||||
((letrec ([loop (lambda (x1 x2 rest)
|
||||
(let ([x (+ x1 x2)])
|
||||
(if (null? rest)
|
||||
x
|
||||
(loop x (car rest) (cdr rest)))))])
|
||||
loop)
|
||||
x1
|
||||
x2
|
||||
rest)]
|
||||
[(x1) (+ x1)]
|
||||
[() (+)])) "((result \"(case-lambda\\n [(x1 x2) (+ x1 x2)]\\n [(x1 x2 x3) (+ (+ x1 x2) x3)]\\n [(x1 x2 . rest)\\n ((letrec ([loop (lambda (x1 x2 rest)\\n (let ([x (+ x1 x2)])\\n (if (null? rest)\\n x\\n (loop x (car rest) (cdr rest)))))])\\n loop)\\n x1\\n x2\\n rest)]\\n [(x1) (+ x1)]\\n [() (+)])\\n\") (output . \"\"))\n")
|
||||
|
||||
Reference in New Issue
Block a user