aboutsummaryrefslogtreecommitdiffstats
path: root/csc/hash-map-test.csc
diff options
context:
space:
mode:
Diffstat (limited to 'csc/hash-map-test.csc')
-rw-r--r--csc/hash-map-test.csc65
1 files changed, 35 insertions, 30 deletions
diff --git a/csc/hash-map-test.csc b/csc/hash-map-test.csc
index da58e69..10edc26 100644
--- a/csc/hash-map-test.csc
+++ b/csc/hash-map-test.csc
@@ -12,82 +12,87 @@
(csc hash-map))
-(define (alist->map->alist l)
- (map->alist (alist->map compare-symbols l)))
+(define transform-map
+ (list
+ (cons map? map->alist)
+ (cons list? (lambda (l) (sort (lambda (x y) (string<? (symbol->string (car x)) (symbol->string (car y)))) l)))))
-(test map->alist-singleton
+(test alist->map-singleton
(assert-equal
'((a . 1))
- (alist->map->alist '((a . 1)))))
+ (alist->map compare-symbols '((a . 1)))
+ transform-map))
-(test map->alist-two
+(test alist->map-two
(assert-equal
'((a . 1) (b . 2))
- (alist->map->alist '((a . 1) (b . 2))))
+ (alist->map compare-symbols '((a . 1) (b . 2)))
+ transform-map))
-(test map->alist-longer
+(test alist->map-longer
(assert-equal
'((a . 1) (b . 2) (c . 3) (d . 4) (e . 5) (f . 6))
- (alist->map->alist '((a . 1) (b . 2) (c . 3) (d . 4) (e . 5) (f . 6))))))
+ (alist->map compare-symbols '((a . 1) (b . 2) (c . 3) (d . 4) (e . 5) (f . 6)))
+ transform-map))
-(test map->alist-larger
+(test alist->map-larger
(assert-equal
'((f . 5) (m . 1) (n . 7) (q . 3) (x . 8))
- (alist->map->alist '((m . 1) (n . 2) (q . 3) (f . 5) (n . 7) (x . 8)))))
+ (alist->map compare-symbols '((m . 1) (n . 2) (q . 3) (f . 5) (n . 7) (x . 8)))
+ transform-map))
-(test map->alist-in-order
+(test alist->map-in-order
(assert-equal
'((a . ()) (b . ()) (c . ()) (d . ()) (e . ()) (f . ()) (g . ()) (h . ()))
- (alist->map->alist '((a . ()) (b . ()) (c . ()) (d . ()) (e . ()) (f . ()) (g . ()) (h . ())))))
+ (alist->map compare-symbols '((a . ()) (b . ()) (c . ()) (d . ()) (e . ()) (f . ()) (g . ()) (h . ())))
+ transform-map))
-(test map->alist-reversed
+(test alist->map-reversed
(assert-equal
'((h . ()) (g . ()) (f . ()) (e . ()) (d . ()) (c . ()) (b . ()) (a . ()))
- (alist->map->alist '((a . ()) (b . ()) (c . ()) (d . ()) (e . ()) (f . ()) (g . ()) (h . ())))))
+ (alist->map compare-symbols '((a . ()) (b . ()) (c . ()) (d . ()) (e . ()) (f . ()) (g . ()) (h . ())))
+ transform-map))
-(test map->alist-overwrite
+(test alist->map-overwrite
(assert-equal
'((a . 2))
- (alist->map->alist '((a . 1) (a . 2)))))
+ (alist->map compare-symbols '((a . 1) (a . 2)))
+ transform-map))
-(test map->alist-alternating
+(test alist->map-alternating
(assert-equal
'((h . ()) (g . ()) (i . ()) (f . ()) (j . ()) (e . ()) (k . ()) (d . ()) (l . ()) (c . ()))
- (alist->map->alist '((c . ()) (d . ()) (e . ()) (f . ()) (g . ()) (h . ()) (i . ()) (j . ()) (k . ()) (l . ())))))
+ (alist->map compare-symbols '((c . ()) (d . ()) (e . ()) (f . ()) (g . ()) (h . ()) (i . ()) (j . ()) (k . ()) (l . ())))
+ transform-map))
+
+
+(define (test-map . bindings)
+ (alist->map compare-symbols bindings))
(test lookup
(assert-equal
2
- (lookup (alist->map compare-symbols '((a . 1) (b . 2) (c . 3))) 'b)))
+ (lookup (test-map '(a . 1) '(b . 2) '(c . 3)) 'b)))
(test lookup-notfound
(assert-raises key-not-found-error?
- (lookup (alist->map compare-symbols '((a . 1) (b . 2) (c . 3))) 'd)))
+ (lookup (test-map '(a . 1) '(b . 2) '(c . 3)) 'd)))
(test lookup-default
(assert-equal
#f
- (lookup (alist->map compare-symbols '((a . #t) (b . #t))) 'c #f)))
-
-
-(define transform-map
- (list
- (cons map? map->alist)))
-
-
-(define (test-map . bindings)
- (alist->map compare-symbols bindings))
+ (lookup (test-map '(a . #t) '(b . #t)) 'c #f)))
(test merge