aboutsummaryrefslogtreecommitdiffstats
path: root/csc/compare-test.csc
diff options
context:
space:
mode:
Diffstat (limited to 'csc/compare-test.csc')
-rw-r--r--csc/compare-test.csc82
1 files changed, 82 insertions, 0 deletions
diff --git a/csc/compare-test.csc b/csc/compare-test.csc
new file mode 100644
index 0000000..6df177f
--- /dev/null
+++ b/csc/compare-test.csc
@@ -0,0 +1,82 @@
+(import (scheme base)
+ (only (csc match)
+ define-match-record-type)
+ (only (csc testing)
+ assert-equal
+ test)
+ (csc compare))
+
+
+(test diff-list
+ (assert-equal
+ " (
+ 1
+ -2
+ 3
+ +3.5
+ 4
+ )
+"
+ (diff '(1 2 3 4) '(1 3 3.5 4))))
+
+
+(define-match-record-type <test-type>
+ (make-test-type a b)
+ test-type?
+ %test-type
+ (a test-type-a)
+ (b test-type-b))
+
+
+(test diff-record
+ (assert-equal
+ " (
+ (a .
+ 5
+ )
+ (b .
+ -5
+ +6
+ )
+ (type .
+ <test-type>
+ )
+ )
+"
+ (diff (make-test-type 5 5) (make-test-type 5 6) (cons test-type? %test-type))))
+
+
+(test diff-multiline-string
+ (assert-equal
+ " (
+ (type .
+ string
+ )
+ (value .
+ (
+ line-one
+ -line-two
+ line-three
+ )
+ )
+ )
+"
+ (diff "line-one\nline-two\nline-three" "line-one\nline-three")))
+
+
+(test diff-vector
+ (assert-equal
+ " (
+ (type .
+ vector
+ )
+ (value .
+ (
+ 1
+ -2
+ 3
+ )
+ )
+ )
+"
+ (diff #(1 2 3) #(1 3))))