From f06966df463bdba5912b999bcb6ab0badb83a561 Mon Sep 17 00:00:00 2001 From: Rose Hogenson Date: Sun, 9 Jan 2022 16:20:43 -0800 Subject: Redo the testing framework. We can lean more on the power of scheme to make the testing framework a little less verbose. --- format-test.csc | 61 ++++++++++++++++++--------------------------------------- 1 file changed, 19 insertions(+), 42 deletions(-) (limited to 'format-test.csc') diff --git a/format-test.csc b/format-test.csc index b7b2c99..6efaa87 100644 --- a/format-test.csc +++ b/format-test.csc @@ -1,47 +1,24 @@ (import (scheme base) (only (csc strings) str-quote) - (only (csc testing) define-test errorf subtest) + (only (csc testing) assert-equal test) (csc format)) -(define-test (test-vsprintf t) - (define-record-type - (test-case name fmt args want) - test-case? - (name name) - (fmt fmt) - (args args) - (want want)) - (let ((tests (list - (test-case - "single-string" - "test-string" - '() - "test-string") - (test-case - "list" - "{}" - '((1 2 3)) - "(1 2 3)") - (test-case - "complex" - "this {} is {} a {} test" - '((1 2 3) 1 "bbb") - "this (1 2 3) is 1 a bbb test") - (test-case - "escape open" - "{{" - '() - "{") - (test-case - "escape close" - "}}" - '() - "}")))) - (for-each - (lambda (tc) - (subtest t (name tc) - (let ((got (vsprintf (fmt tc) (args tc)))) - (unless (equal? got (want tc)) - (errorf t "(vsprintf {} {}) = {}, want {}." (str-quote fmt) (args tc) got (want tc)))))) - tests))) +(test sprintf-single-string + (assert-equal "test-string" (sprintf "test-string"))) + + +(test sprintf-list + (assert-equal "(1 2 3)" (sprintf "{}" '(1 2 3)))) + + +(test sprintf-complex + (assert-equal "this (1 2 3) is 1 a bbb test" (sprintf "this {} is {} a {} test" '(1 2 3) 1 "bbb"))) + + +(test sprintf-escape-open + (assert-equal "{" (sprintf "{{"))) + + +(test sprintf-escape-close + (assert-equal "}" (sprintf "}}"))) -- cgit v1.3.1