|
| 1 | +#lang racket |
| 2 | +(require rackunit |
| 3 | + (rename-in "../read.rkt" [read read-stdin])) |
| 4 | + |
| 5 | +(define (p s) |
| 6 | + (with-input-from-string s |
| 7 | + (lambda () |
| 8 | + (read-stdin)))) |
| 9 | + |
| 10 | +(check-equal? (p "") eof) |
| 11 | +(check-equal? (p " ") eof) |
| 12 | +(check-equal? (p ";123") eof) |
| 13 | +(check-equal? (p "#;123 ") eof) |
| 14 | +(check-equal? (p "#;123") eof) |
| 15 | +(check-equal? (p "#|123|# ") eof) |
| 16 | +(check-equal? (p "#;#|123|#1 ") eof) |
| 17 | +(check-equal? (p "#;#;1 2") eof) |
| 18 | +(check-equal? (p "123") 123) |
| 19 | +(check-equal? (p "#t") #t) |
| 20 | +(check-equal? (p "#f") #f) |
| 21 | +(check-equal? (p "#T") #t) |
| 22 | +(check-equal? (p "#F") #f) |
| 23 | +(check-equal? (p "#b0") 0) |
| 24 | +(check-equal? (p "#b1") 1) |
| 25 | +(check-equal? (p "#b101") #b101) |
| 26 | +(check-equal? (p "#B101") #b101) |
| 27 | +(check-equal? (p "#o0") 0) |
| 28 | +(check-equal? (p "#o1") 1) |
| 29 | +(check-equal? (p "#o701") #o701) |
| 30 | +(check-equal? (p "#O701") #o701) |
| 31 | +(check-equal? (p "#d0") 0) |
| 32 | +(check-equal? (p "#d1") 1) |
| 33 | +(check-equal? (p "#d901") 901) |
| 34 | +(check-equal? (p "#D901") 901) |
| 35 | +(check-equal? (p "#x0") 0) |
| 36 | +(check-equal? (p "#x1") 1) |
| 37 | +(check-equal? (p "#xF01") #xF01) |
| 38 | +(check-equal? (p "#XF01") #xF01) |
| 39 | +(check-equal? (p ";123\n1") 1) |
| 40 | +(check-equal? (p "()") '()) |
| 41 | +(check-equal? (p "[]") '()) |
| 42 | +(check-equal? (p "{}") '()) |
| 43 | +(check-equal? (p "(#t)") '(#t)) |
| 44 | +(check-equal? (p "[#t]") '(#t)) |
| 45 | +(check-equal? (p "{#t}") '(#t)) |
| 46 | +(check-equal? (p "((#t))") '((#t))) |
| 47 | +(check-equal? (p "#\\u ") #\u) |
| 48 | +(check-equal? (p "#\\p\n") #\p) |
| 49 | +(check-equal? (p "(1 . 2)") '(1 . 2)) |
| 50 | +#| |
| 51 | +(check-pred err? (p (string-append "#" "|"))) |
| 52 | +(check-pred err? (p "#;")) |
| 53 | +(check-pred err? (p "(}")) |
| 54 | +(check-pred err? (p "(]")) |
| 55 | +(check-pred err? (p "[)")) |
| 56 | +(check-pred err? (p "(x}")) |
| 57 | +(check-pred err? (p "(x]")) |
| 58 | +(check-pred err? (p "[x)")) |
| 59 | +(check-pred err? (p "(x . y}")) |
| 60 | +(check-pred err? (p "(x . y]")) |
| 61 | +(check-pred err? (p "[x . y)"))) |
| 62 | +|# |
0 commit comments