diff options
| author | 2024-12-26 12:35:51 -0500 | |
|---|---|---|
| committer | 2024-12-26 12:35:51 -0500 | |
| commit | 370de2b95743b91b3d15fe0d93d84e06f1864ee4 (patch) | |
| tree | 2ba1940baa7a6580c61ee224bda45036dfec3836 /mcgoron.cond-thunk.test.scm | |
cond-thunk
Diffstat (limited to 'mcgoron.cond-thunk.test.scm')
| -rw-r--r-- | mcgoron.cond-thunk.test.scm | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/mcgoron.cond-thunk.test.scm b/mcgoron.cond-thunk.test.scm new file mode 100644 index 0000000..53973d9 --- /dev/null +++ b/mcgoron.cond-thunk.test.scm @@ -0,0 +1,74 @@ +#| Copyright 2024 Peter McGoron + | + | Licensed under the Apache License, Version 2.0 (the "License"); + | + | you may not use this file except in compliance with the License. + | You may obtain a copy of the License at + | + | http://www.apache.org/licenses/LICENSE-2.0 + | + | Unless required by applicable law or agreed to in writing, software + | distributed under the License is distributed on an "AS IS" BASIS, + | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + | See the License for the specific language governing permissions and + | limitations under the License. + |# + +(cond-expand + (chicken (import test r7rs)) + (else (import (srfi 64)))) + +(load "mcgoron.cond-thunk.sld") +(import (mcgoron cond-thunk)) + +(test-assert + "cond-thunk basic" + (cond-thunk + (if #t + (lambda () + #t) + #f) + (else #f))) + +(test-assert + "when-ct true" + (cond-thunk + (when-ct #t #t) + (else #f))) + +(test + "cond-thunk multiple branches" + 'two + (cond-thunk + (when-ct (pair? #f) 'one) + (when-ct (boolean? #f) 'two) + (when-ct (boolean? #f) 'three) + (else #f))) + +(let ((on-pair + (lambda-ct (x) (pair? x) + 'pair)) + (on-boolean + (lambda-ct (x) (boolean? x) + 'boolean))) + (test + "lambda-ct basic" + 'boolean + (cond-thunk + (on-pair #f) + (on-boolean #f) + (else #f)))) + +(let () + (define-ct (on-pair x) (pair? x) + 'pair) + (define-ct (on-boolean x) (boolean? x) + 'boolean) + (test + "define-ct basic" + 'boolean + (cond-thunk + (on-pair #f) + (on-boolean #f) + (else #f)))) + |
