Add json parser
This commit is contained in:
26
test.scm
26
test.scm
@@ -1,5 +1,6 @@
|
||||
(use-modules (d-)
|
||||
(d- test)
|
||||
(d- json)
|
||||
(srfi srfi-1))
|
||||
|
||||
(define-test-suite "~>"
|
||||
@@ -100,3 +101,28 @@
|
||||
(amb-require (or (= mary 4) (= betty 1)))
|
||||
(list betty ethel joan kitty mary)))
|
||||
(assert-equal '(3 5 2 1 4) (liars))))
|
||||
|
||||
(define-test-suite "json"
|
||||
(define-test "boolean"
|
||||
(assert-equal #t (json "true"))
|
||||
(assert-equal #f (json "false")))
|
||||
(define-test "number"
|
||||
(assert-equal 1.1 (json "1.1"))
|
||||
(assert-equal 0.1 (json ".1"))
|
||||
(assert-equal 1.0 (json "1.")))
|
||||
(define-test "string"
|
||||
(assert-equal "hello" (json "\"hello\""))
|
||||
(assert-equal "\\\"hello\\\"" (json "\"\\\"hello\\\"\"")))
|
||||
(define-test "array"
|
||||
(assert-equal '() (json "[]"))
|
||||
(assert-equal '(1 "two" #f) (json "[1, \"two\", false]"))
|
||||
(assert-equal '(() (())) (json "[[], [[]]]")))
|
||||
(define-test "object"
|
||||
(assert-equal '() (json "{}"))
|
||||
(assert-equal '((cat . 1)
|
||||
(bat . #t)
|
||||
(rat . "yessir"))
|
||||
(json "{\"cat\": 1, \"bat\": true, \"rat\": \"yessir\"}"))
|
||||
(assert-equal '((butter . 1)
|
||||
(brownie))
|
||||
(json "{\"butter\": 1, \"brownie\": {}}"))))
|
||||
|
||||
Reference in New Issue
Block a user