From bcb098e8eb18637b6999789585a38ff9168de9d5 Mon Sep 17 00:00:00 2001 From: Rose Hogenson Date: Sun, 3 Jul 2022 14:37:10 -0700 Subject: Add a diff library. I was hesitant to add a diff library, but it was surprisingly easy. A straightforward application of dynamic programming. --- csc/testing.csc | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'csc/testing.csc') diff --git a/csc/testing.csc b/csc/testing.csc index ecf5547..e46d300 100644 --- a/csc/testing.csc +++ b/csc/testing.csc @@ -6,6 +6,7 @@ test test-main) (import (scheme base) + (only (csc compare) diff) (only (csc format) printf sprintf)) @@ -59,11 +60,12 @@ (define-syntax assert-equal (syntax-rules () - ((assert-equal cmp left right) - (let ((x left) - (y right)) - (unless (cmp x y) - (fatalf "Fatal:\n {}\nis not equal to\n {}.\nleft is\n {}\nright is\n {}" 'left 'right x y)))) + ((assert-equal left right transformers ...) + (let* ((x left) + (y right) + (d (diff x y transformers ...))) + (unless (string=? "" d) + (fatalf "Fatal:\n {}\nis not equal to\n {}.\nleft is\n {}\nright is\n {}\ndiff (-left +right):\n{}" 'left 'right x y d)))) ((assert-equal left right) (assert-equal equal? left right)))) -- cgit v1.3.1