aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorGravatar Peter McGoron 2025-02-17 20:06:55 -0500
committerGravatar Peter McGoron 2025-02-17 20:06:55 -0500
commit02f6e9ed6b6415d6b7bcddd660ba76f79556f165 (patch)
tree00aa633269a85e219aaee29cec59fe116d597480 /tests
parentreorganized srfi 113 sets tests (diff)
add superset tests
Diffstat (limited to '')
-rw-r--r--tests/srfi-113-sets.scm75
1 files changed, 75 insertions, 0 deletions
diff --git a/tests/srfi-113-sets.scm b/tests/srfi-113-sets.scm
index 0a34272..8bee9ed 100644
--- a/tests/srfi-113-sets.scm
+++ b/tests/srfi-113-sets.scm
@@ -24,6 +24,8 @@
(define test-set= #f)
(define test-set<= #f)
(define test-set< #f)
+(define test-set>= #t)
+(define test-set> #t)
(define test-set-intersection #t)
(define cmp (make-default-comparator))
@@ -554,6 +556,42 @@
(> (set-size set) 4))
(set-generator))))))
+;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; set>=?
+;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(when test-set>=
+ (test-group "all sets are >= to themselves"
+ (define (self-set>= set)
+ (set>=? set set))
+ (test-property self-set>= (list (set-generator))))
+ (test-group "all sets are >= to permutations of themselves"
+ (define (random-set>= vec)
+ (let* ((set (vector->set vec))
+ (set2 (vector->set (shuffle-vector! vec))))
+ (set>=? set set2))))
+ (test-group "deleting an element from a set makes it >="
+ (define (delete-set>= set)
+ (let ((set- (set-delete set (find-some-element set))))
+ (set>=? set set-)))
+ (test-property delete-set>= (list (filter-non-empty-sets
+ (set-generator)))))
+ (test-group "adding an element to a set makes it >="
+ (define (adjoin-set>= set)
+ (let ((set+ (set-adjoin set (cons #f #f))))
+ (set>=? set+ set)))
+ (test-property adjoin-set>= (list (set-generator))))
+ (test-group "nary >="
+ (define (nary-set>= set)
+ (let* ((set- (delete-some-element set))
+ (set-- (delete-some-element set-))
+ (set--- (delete-some-element set--)))
+ (set>=? set set- set-- set---)))
+ (test-property nary-set>= (list
+ (gfilter (lambda (set)
+ (> (set-size set) 4))
+ (set-generator))))))
+
;;; ;;;;;;;;;;;;;;;;;;;;;;
;;; set<?
;;; ;;;;;;;;;;;;;;;;;;;;;;
@@ -591,6 +629,43 @@
(> (set-size set) 4))
(set-generator))))))
+;;; ;;;;;;;;;;;;;;;;;;;;;;;
+;;; set>?
+;;; ;;;;;;;;;;;;;;;;;;;;;;;
+
+(when test-set>
+ (test-group "no set is > to itself"
+ (define (not-set> set)
+ (not (set>? set set)))
+ (test-property not-set> (list (set-generator))))
+ (test-group "no set is > to a permutation of itself"
+ (define (random-not-set> vec)
+ (let* ((set1 (vector->set vec))
+ (set2 (vector->set (shuffle-vector! vec))))
+ (not (set>? set1 set2)))))
+ (test-group "deleting an element from a set makes it >"
+ (define (delete-set> set)
+ (let ((set- (set-delete set (find-some-element set))))
+ (set>? set- set)))
+ (test-property delete-set> (list (filter-non-empty-sets
+ (set-generator)))))
+ (test-group "adjoining an element to a set makes it >"
+ (define (adjoin-set> set)
+ (let ((set+ (set-adjoin set (cons #f #f))))
+ (set>? set set+)))
+ (test-property adjoin-set> (list (filter-non-empty-sets
+ (set-generator)))))
+ (test-group "nary >"
+ (define (nary-set> set)
+ (let* ((set- (delete-some-element set))
+ (set-- (delete-some-element set-))
+ (set--- (delete-some-element set--)))
+ (set>? set set- set-- set---)))
+ (test-property nary-set> (list
+ (gfilter (lambda (set)
+ (> (set-size set) 4))
+ (set-generator))))))
+
;;; ;;;;;;;;;;;;;;;;;;;;;;;;
;;; Set-intersection
;;; ;;;;;;;;;;;;;;;;;;;;;;;;