Fix member record tests.

This commit is contained in:
Dominik Pantůček 2023-04-11 13:58:59 +02:00
parent 575c1cdb3d
commit cf2913fdea
2 changed files with 66 additions and 31 deletions

View file

@ -213,11 +213,25 @@
;; Returns true if both dictionaries contain the same keys and
;; values.
(define (ldict-equal? d1 d2)
(let ((k1 (list->lset (ldict-keys d1)))
(k2 (list->lset (ldict-keys d2))))
;; Compare key sets
#f))
(define (ldict-equal? d1 d2 . equality?)
(let ((e1 (ldict-equality? d1))
(e2 (ldict-equality? d2)))
(let ((equality? (if (null? equality?)
equal?
(car equality?))))
(if (not (eq? e1 e2))
#f
(let ((k1 (list->lset (ldict-keys d1)))
(k2 (list->lset (ldict-keys d2))))
(if (lset=? k1 k2)
(let loop ((keys (lset->list k1)))
(if (null? keys)
#t
(if (equality? (ldict-ref d1 (car keys))
(ldict-ref d2 (car keys)))
(loop (cdr keys))
#f)))
#f))))))
;; Performs self-tests of the dictionary module.
(define (ldict-tests!)