(module keyword-test mzscheme
(require "test.ss"
"keyword.ss")
(provide keyword-tests)
(define keyword-tests
(test-suite
"All Keyword tests"
(test-case
"get-keyword-arg default cases"
(begin
(check-equal?
#f
(get-keyword-arg 'foo '(a 1 b 2)))
(check-equal?
'bar
(get-keyword-arg 'foo '(a 1 foo bar zed 2)))
(check-equal?
#f
(get-keyword-arg 'foo '(a 1 bar)))
(check-equal?
'bar
(get-keyword-arg 'foo '(1 foo bar)))))
(test-case
"get-keyword-arg w/ missing value cases"
(begin
(check-equal?
'missing
(get-keyword-arg 'foo '(a 1 b 2) 'missing))
(check-equal?
'bar
(get-keyword-arg 'foo '(a 1 foo bar zed 2) 'missing))
(check-equal?
'missing
(get-keyword-arg 'foo '(a 1 bar) 'missing))
(check-equal?
'bar
(get-keyword-arg 'foo '(1 foo bar) 'missing))))
(test-case
"get-positional-args"
(begin
(check-equal?
'(1 2 3 4)
(get-positional-args '(foo bar) '(1 2 3 4)))
(check-equal?
'()
(get-positional-args '(foo bar) '(foo 1 bar 2)))
(check-equal?
'(2 4)
(get-positional-args '(foo bar) '(bar 1 2 foo 3 4)))))
(test-case
"get-positional-args w/ missing value"
(begin
(check-equal?
'baz
(get-positional-args '(foo bar) '(foo 1 bar 2) 'baz))))
))
)