[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] GNU Guile branch, master, updated. release_1-9-13-95-g01
From: |
Julian Graham |
Subject: |
[Guile-commits] GNU Guile branch, master, updated. release_1-9-13-95-g015a4aa |
Date: |
Sun, 21 Nov 2010 20:38:25 +0000 |
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Guile".
http://git.savannah.gnu.org/cgit/guile.git/commit/?id=015a4aaedb9e8dd839b481bc83ac5b9f88e63a81
The branch, master has been updated
via 015a4aaedb9e8dd839b481bc83ac5b9f88e63a81 (commit)
from a653d32a8d02c90a426232de5b432e60fc33c1da (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 015a4aaedb9e8dd839b481bc83ac5b9f88e63a81
Author: Julian Graham <address@hidden>
Date: Sun Nov 21 15:35:44 2010 -0500
Enumeration set universe comparisons should be done with `equal?'
* module/rnrs/enums.scm (enum-set-union, enum-set-intersection,
enum-set-difference): Compare enum-set universes with `equal?' to support
sets generated using constructor syntax bound by `define-enumeration'.
* test-suite/tests/r6rs-enums.test (enum-set-union, enum-set-intersection,
enum-set-difference): New test cases for syntactically-generated sets.
-----------------------------------------------------------------------
Summary of changes:
module/rnrs/enums.scm | 12 ++++++------
test-suite/tests/r6rs-enums.test | 24 +++++++++++++++++++++---
2 files changed, 27 insertions(+), 9 deletions(-)
diff --git a/module/rnrs/enums.scm b/module/rnrs/enums.scm
index 79d3417..e97be46 100644
--- a/module/rnrs/enums.scm
+++ b/module/rnrs/enums.scm
@@ -82,8 +82,8 @@
(enum-set-subset? enum-set-2 enum-set-1)))
(define (enum-set-union enum-set-1 enum-set-2)
- (if (eq? (enum-set-universe enum-set-1)
- (enum-set-universe enum-set-2))
+ (if (equal? (enum-set-universe enum-set-1)
+ (enum-set-universe enum-set-2))
(make-enum-set (enum-set-universe enum-set-1)
(lset-union eq?
(enum-set-set enum-set-1)
@@ -91,8 +91,8 @@
(raise (make-assertion-violation))))
(define (enum-set-intersection enum-set-1 enum-set-2)
- (if (eq? (enum-set-universe enum-set-1)
- (enum-set-universe enum-set-2))
+ (if (equal? (enum-set-universe enum-set-1)
+ (enum-set-universe enum-set-2))
(make-enum-set (enum-set-universe enum-set-1)
(lset-intersection eq?
(enum-set-set enum-set-1)
@@ -100,8 +100,8 @@
(raise (make-assertion-violation))))
(define (enum-set-difference enum-set-1 enum-set-2)
- (if (eq? (enum-set-universe enum-set-1)
- (enum-set-universe enum-set-2))
+ (if (equal? (enum-set-universe enum-set-1)
+ (enum-set-universe enum-set-2))
(make-enum-set (enum-set-universe enum-set-1)
(lset-difference eq?
(enum-set-set enum-set-1)
diff --git a/test-suite/tests/r6rs-enums.test b/test-suite/tests/r6rs-enums.test
index d91de1c..4b7d1d7 100644
--- a/test-suite/tests/r6rs-enums.test
+++ b/test-suite/tests/r6rs-enums.test
@@ -146,7 +146,13 @@
(set1 ((enum-set-constructor universe) '(a b c)))
(set2 ((enum-set-constructor universe) '(d e f)))
(union (enum-set-union set1 set2)))
- (equal? (enum-set->list union) '(a b c d e f)))))
+ (equal? (enum-set->list union) '(a b c d e f))))
+
+ (pass-if "enum-set-union operates on syntactically-generated sets"
+ (let* ((set1 (make-foo-set foo))
+ (set2 (make-foo-set bar))
+ (union (enum-set-union set1 set2)))
+ (equal? (enum-set->list union) '(foo bar)))))
(with-test-prefix "enum-set-intersection"
(pass-if "&assertion raised on different universes"
@@ -170,7 +176,13 @@
(set1 ((enum-set-constructor universe) '(a b c)))
(set2 ((enum-set-constructor universe) '(d e f)))
(intersection (enum-set-intersection set1 set2)))
- (null? (enum-set->list intersection)))))
+ (null? (enum-set->list intersection))))
+
+ (pass-if "enum-set-intersection on syntactically-generated sets"
+ (let* ((set1 (make-foo-set foo bar))
+ (set2 (make-foo-set bar baz))
+ (intersection (enum-set-intersection set1 set2)))
+ (equal? (enum-set->list intersection) '(bar)))))
(with-test-prefix "enum-set-difference"
(pass-if "&assertion raised on different universes"
@@ -194,7 +206,13 @@
(set1 ((enum-set-constructor universe) '(a b c)))
(set2 ((enum-set-constructor universe) '(a b c d)))
(difference (enum-set-difference set1 set2)))
- (null? (enum-set->list difference)))))
+ (null? (enum-set->list difference))))
+
+ (pass-if "enum-set-difference on syntactically-generated sets"
+ (let* ((set1 (make-foo-set foo bar baz))
+ (set2 (make-foo-set foo baz))
+ (difference (enum-set-difference set1 set2)))
+ (equal? (enum-set->list difference) '(bar)))))
(with-test-prefix "enum-set-complement"
(pass-if "complement of empty set is universe"
hooks/post-receive
--
GNU Guile
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Guile-commits] GNU Guile branch, master, updated. release_1-9-13-95-g015a4aa,
Julian Graham <=