;; input stream based on character list (require-extension test typeclass internet-timestamp) (require-library abnf) (import (only abnf CharLex->CoreABNF Input->Token Token->CharLex make- )) (define char-list- (make- null? car cdr)) (define char-list- (Input->Token char-list-)) (define char-list- (Token->CharLex char-list-)) (define char-list- (CharLex->CoreABNF char-list-)) (define char-list- (CoreABNF->InetTimestamp char-list- )) (define parser (parser char-list-)) (test-group "internet-timestamp test" (test `((date (1985 4 12)) (time (23 20 50 0.52)) (offset (Z))) (ts->list (parser "1985-04-12T23:20:50.52Z"))) (test `((date (1996 12 19)) (time (16 39 57)) (offset (- 8 0))) (ts->list (parser "1996-12-19T16:39:57-08:00"))) (test `((date (1990 12 31)) (time (23 59 60)) (offset (Z))) (ts->list (parser "1990-12-31T23:59:60Z"))) (test `((date (1990 12 31)) (time (15 59 60)) (offset (- 8 0))) (ts->list (parser "1990-12-31T15:59:60-08:00"))) (test `((date (1937 01 01)) (time (12 00 27 0.87)) (offset (+ 0 20))) (ts->list (parser "1937-01-01T12:00:27.87+00:20"))) ) (test-exit)