summaryrefslogtreecommitdiffstats
path: root/srfi-228-test.scm
diff options
context:
space:
mode:
authorGravatar Peter McGoron 2025-04-02 13:53:58 -0400
committerGravatar Peter McGoron 2025-04-02 13:53:58 -0400
commit7bc1c947c94ba4d17b01abfffb0bd5bdb57ae387 (patch)
tree7157b4cc3a22488b3c513169486ae685d754bea6 /srfi-228-test.scm
parentAdd library name per DPK's request. (diff)
port to chicken
Diffstat (limited to 'srfi-228-test.scm')
-rw-r--r--srfi-228-test.scm83
1 files changed, 0 insertions, 83 deletions
diff --git a/srfi-228-test.scm b/srfi-228-test.scm
deleted file mode 100644
index f6a984d..0000000
--- a/srfi-228-test.scm
+++ /dev/null
@@ -1,83 +0,0 @@
-(cond-expand
- (chibi
- (import (chibi test)
- (scheme base)
- (srfi 1)
- (srfi 128)
- (only (srfi 132) list-sort))))
-
-(define-record-type Person
- (make-person first-name last-name)
- person?
- (first-name person-first-name)
- (last-name person-last-name))
-
-(define person-name-comparator
- (make-product-comparator
- (make-wrapper-comparator person? person-last-name string-ci-comparator)
- (make-wrapper-comparator person? person-first-name string-ci-comparator)))
-
-(test-group "simple"
- (test-equal eq?
- #t
- (<? person-name-comparator
- (make-person "John" "Cowan")
- (make-person "Daphne" "Preston-Kendal")))
-
- (test-equal eq?
- #t
- (>? person-name-comparator
- (make-person "Tom" "Smith")
- (make-person "John" "Smith"))))
-
-(define-record-type Book
- (make-book author title)
- book?
- (author book-author)
- (title book-title))
-
-(define book-comparator
- (make-product-comparator
- (make-wrapper-comparator book? book-author person-name-comparator)
- (make-wrapper-comparator book? book-title string-ci-comparator)))
-
-(define-record-type CD
- (make-cd artist title)
- cd?
- (artist cd-artist)
- (title cd-title))
-
-(define cd-comparator
- (make-product-comparator
- (make-wrapper-comparator cd? cd-artist person-name-comparator)
- (make-wrapper-comparator cd? cd-title string-ci-comparator)))
-
-(define item-comparator
- (make-sum-comparator book-comparator cd-comparator))
-
-(test-group "nested"
- (let* ((beatles (make-person "The" "Beatles"))
- (abbey-road (make-cd beatles "Abbey Road"))
- (deutsche-grammatik
- (make-book (make-person "Jacob" "Grimm") "Deutsche Grammatik"))
- (sonnets (make-book (make-person "William" "Shakespeare") "Sonnets"))
- (mnd (make-book (make-person "William" "Shakespeare")
- "A Midsummer Night’s Dream"))
- (bob (make-cd (make-person "Bob" "Dylan") "Blonde on Blonde"))
- (revolver (make-cd (make-person "The" "Beatles") "Revolver")))
- (test-equal
- equal?
- (list deutsche-grammatik
- mnd
- sonnets
- abbey-road
- revolver
- bob)
- (list-sort
- (lambda (a b) (<? item-comparator a b))
- (list abbey-road
- deutsche-grammatik
- sonnets
- mnd
- bob
- revolver)))))