26 lines
1.5 KiB
Python
26 lines
1.5 KiB
Python
|
|
from gerbonara.cad.kicad.sexp import parse_sexp, build_sexp
|
|
|
|
def test_sexp_round_trip():
|
|
test_sexp = '''(()() (foo) (23)\t(foo 23) (foo 23 bar baz) (foo bar baz) ("foo bar") (" foo " bar) (23 " baz ")
|
|
(foo ( bar ( baz 23) 42) frob) (() (foo) ()()) foo 23 23.0 23.000001 "foo \\"( ))bar" "foo\\"bar\\"baz" "23" "23foo"
|
|
"" "" ("") ("" 0 0.0)
|
|
"lots of data" "lots of data" "lots of data" "lots of data" "lots of data" "lots of data"
|
|
"lots of data" "lots of data" "lots of data" "lots of data" "lots of data" "lots of data"
|
|
"lots of data" "lots of data" "lots of data" "lots of data" "lots of data" "lots of data"
|
|
"lots of data" "lots of data" "lots of data" "lots of data" "lots of data" "lots of data"
|
|
"lots of data" "lots of data" "lots of data" "lots of data" "lots of data" "lots of data"
|
|
"lots of data" "lots of data" "lots of data" "lots of data" "lots of data" "lots of data"
|
|
"lots of data" "lots of data" "lots of data" "lots of data" "lots of data" "lots of data"
|
|
"lots of data" "lots of data" "lots of data" "lots of data" "lots of data" "lots of data"
|
|
"lots of data" "lots of data" "lots of data" "lots of data" "lots of data" "lots of data"
|
|
"lots of data" "lots of data" "lots of data" "lots of data" "lots of data" "lots of data")
|
|
'''
|
|
parsed = parse_sexp(test_sexp)
|
|
sexp1 = build_sexp(parsed)
|
|
re_parsed = parse_sexp(sexp1)
|
|
sexp2 = build_sexp(parsed)
|
|
|
|
assert re_parsed == parsed
|
|
assert sexp1 == sexp2
|
|
|