From d00fea566004e67161ee45246b239fff5d416b0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Tue, 21 Dec 2021 16:17:28 +0100 Subject: Cleanup modules. Primarly this moves all vcompenent input and output code to clearly labeled modules, instead of being spread out. At the same time it also removes a handfull of unused procedures. --- tests/vcomponent-formats-common-types.scm | 115 ++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 tests/vcomponent-formats-common-types.scm (limited to 'tests/vcomponent-formats-common-types.scm') diff --git a/tests/vcomponent-formats-common-types.scm b/tests/vcomponent-formats-common-types.scm new file mode 100644 index 00000000..d9c80ff9 --- /dev/null +++ b/tests/vcomponent-formats-common-types.scm @@ -0,0 +1,115 @@ +(((vcomponent formats common types) + get-parser) + ((datetime) date time datetime)) + + + +(define parse-binary (get-parser 'BINARY)) +;; TODO + + + +(define parse-boolean (get-parser 'BOOLEAN)) + +(test-equal #t (parse-boolean #f "TRUE")) +(test-equal #f (parse-boolean #f "FALSE")) + +(test-error 'warning (parse-boolean #f "ANYTHING ELSE")) + + + +(define parse-cal-address (get-parser 'CAL-ADDRESS)) + +(test-equal "Test uri is passthrough" 74 (parse-cal-address #f 74)) + + + +(define parse-date (get-parser 'DATE)) + +(test-equal #2021-12-02 (parse-date #f "20211202")) +;; TODO negative test here + + + +(define parse-datetime (get-parser 'DATE-TIME)) + +(test-equal #2021-12-02T10:20:30 + (parse-datetime (make-hash-table) "20211202T102030")) + +;; TODO tests with timezones here +;; TODO test -X-HNH-ORIGINAL here + +;; TODO negative test here + + + +(define parse-duration (get-parser 'DURATION)) + +;; assume someone else tests this one +;; (test-eq (@ (vcomponent duration) parse-duration) +;; parse-duration) + + + +(define parse-float (get-parser 'FLOAT)) + +(test-equal 1.0 (parse-float #f "1.0")) +(test-equal 1 (parse-float #f "1")) +(test-equal 1/2 (parse-float #f "1/2")) + +;; TODO negative test here? + + + +(define parse-integer (get-parser 'INTEGER)) + +(test-equal "parse integer" 123456 (parse-integer #f "123456")) +(test-equal "parse bigint" 123451234512345123456666123456 + (parse-integer #f "123451234512345123456666123456")) + +;; TODO is this expected behaivour? +(test-error 'warning (parse-integer #f "failure")) + +(test-error + "Non-integers aren't integers" + 'warning (parse-integer #f "1.1")) + +(test-equal "But exact floats are" + 1.0 (parse-integer #f "1.0")) + + + +(define parse-period (get-parser 'PERIOD)) + +;; TODO + + + +(define parse-recur (get-parser 'RECUR)) + +;; (test-eq (@ (vcomponent recurrence parse) parse-recurrence-rule)) + + + +(define parse-text (get-parser 'TEXT)) + +;; TODO + + + +(define parse-time (get-parser 'TIME)) + +(test-equal #10:20:30 (parse-time #f "102030")) +;; TODO negative test here + + + +(define parse-uri (get-parser 'URI)) + +(test-equal "Test uri is passthrough" 74 (parse-uri #f 74)) + + + +(define parse-utc-offset (get-parser 'UTC-OFFSET)) + +;; TODO -- cgit v1.2.3