guile-commits
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]