From 498040c3d1532bb6de01dbbb55348f631c3745d6 Mon Sep 17 00:00:00 2001 From: Rose Hogenson Date: Sun, 24 Jul 2022 20:28:56 -0700 Subject: Fix some bugs in the compare library. --- csc/hash-map-test.csc | 65 +++++++++++++++++++++++++++------------------------ 1 file changed, 35 insertions(+), 30 deletions(-) (limited to 'csc/hash-map-test.csc') 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) (stringstring (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 -- cgit v1.3.1