68 lines
1.1 KiB
Nim
68 lines
1.1 KiB
Nim
|
# SPDX-License-Identifier: ISC
|
||
|
|
||
|
import json, streams, unittest
|
||
|
|
||
|
import preserves
|
||
|
|
||
|
let testVectors = [
|
||
|
"""
|
||
|
{
|
||
|
"Image": {
|
||
|
"Width": 800,
|
||
|
"Height": 600,
|
||
|
"Title": "View from 15th Floor",
|
||
|
"Thumbnail": {
|
||
|
"Url": "http://www.example.com/image/481989943",
|
||
|
"Height": 125,
|
||
|
"Width": 100
|
||
|
},
|
||
|
"Animated": false,
|
||
|
"IDs": [
|
||
|
116,
|
||
|
943,
|
||
|
234,
|
||
|
38793
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
""",
|
||
|
"""
|
||
|
[
|
||
|
{
|
||
|
"precision": "zip",
|
||
|
"Latitude": 37.7668,
|
||
|
"Longitude": -122.3959,
|
||
|
"Address": "",
|
||
|
"City": "SAN FRANCISCO",
|
||
|
"State": "CA",
|
||
|
"Zip": "94107",
|
||
|
"Country": "US"
|
||
|
},
|
||
|
{
|
||
|
"precision": "zip",
|
||
|
"Latitude": 37.371991,
|
||
|
"Longitude": -122.02602,
|
||
|
"Address": "",
|
||
|
"City": "SUNNYVALE",
|
||
|
"State": "CA",
|
||
|
"Zip": "94085",
|
||
|
"Country": "US"
|
||
|
}
|
||
|
]
|
||
|
"""
|
||
|
]
|
||
|
|
||
|
for i, jsText in testVectors:
|
||
|
test $i:
|
||
|
let
|
||
|
control = parseJson jsText
|
||
|
x = control.toPreserve
|
||
|
var stream = newStringStream()
|
||
|
stream.write(x)
|
||
|
stream.setPosition(0)
|
||
|
let
|
||
|
y = stream.parsePreserve()
|
||
|
test = y.toJson
|
||
|
check(y == x)
|
||
|
check(test == control)
|