diff --git a/test/cases/array.test b/test/cases/array.test index 145a795..c61363d 100644 --- a/test/cases/array.test +++ b/test/cases/array.test @@ -1 +1 @@ -[start_array, {string, "foo"}, {string, "bar"}, {string, "baz"}, start_array, {literal, true}, end_array, start_array, {literal, false}, end_array, start_array, {literal, null}, end_array, {literal, true}, {literal, false}, {literal, null}, {number, "0.7"}, start_object, {key, "key"}, {string, "value"}, end_object, start_array, start_object, end_object, {literal, null}, {literal, null}, {literal, null}, start_array, end_array, end_array, {string, "\n\r\\"}, start_array, {number, "-1"}, end_array, end_array]. \ No newline at end of file +[start_array, {string, "foo"}, {string, "bar"}, {string, "baz"}, start_array, {literal, true}, end_array, start_array, {literal, false}, end_array, start_array, {literal, null}, end_array, {literal, true}, {literal, false}, {literal, null}, {float, "0.7"}, start_object, {key, "key"}, {string, "value"}, end_object, start_array, start_object, end_object, {literal, null}, {literal, null}, {literal, null}, start_array, end_array, end_array, {string, "\n\r\\"}, start_array, {integer, "-1"}, end_array, end_array]. \ No newline at end of file diff --git a/test/cases/comments.test b/test/cases/comments.test index 1870be2..5702167 100644 --- a/test/cases/comments.test +++ b/test/cases/comments.test @@ -1,2 +1,3 @@ -[start_array, {string, "a string"}, {number, "1"}, start_object, {key, "key"}, start_array, end_array, {key, "another key"}, {number, "0"}, end_object, {literal, true}, end_array]. +[start_array, {string, "a string"}, {integer, "1"}, start_object, {key, "key"}, start_array, end_array, {key, "another key"}, {integer, "0"}, end_object, {literal, true}, end_array]. + [{comments, true}]. \ No newline at end of file diff --git a/test/cases/exp.test b/test/cases/exp.test index 48cb663..fafaef8 100644 --- a/test/cases/exp.test +++ b/test/cases/exp.test @@ -1,3 +1,3 @@ -[start_array, start_array, {number, "2.0e7"}, end_array, {number, "2.0e7"}, start_object, {key, "key"}, {number, "2.0e7"}, {key, "another key"}, {number, "2.0e7"}, end_object, {number, "4.2e70"}, end_array]. +[start_array, start_array, {float, "2.0e7"}, end_array, {float, "2.0e7"}, start_object, {key, "key"}, {float, "2.0e7"}, {key, "another key"}, {float, "2.0e7"}, end_object, {float, "4.2e70"}, end_array]. [{comments, true}]. \ No newline at end of file diff --git a/test/cases/fraction.test b/test/cases/fraction.test index 39e7cf9..2b28f00 100644 --- a/test/cases/fraction.test +++ b/test/cases/fraction.test @@ -1,3 +1,3 @@ -[start_array, start_array, {number, "2.0"}, end_array, {number, "2.0"}, start_object, {key, "key"}, {number, "2.0e7"}, {key, "another key"}, {number, "2.0e7"}, end_object, start_object, {key, "key"}, {number, "2.0"}, {key, "another key"}, {number, "2.0"}, end_object, {number, "4.2"}, end_array]. +[start_array, start_array, {float, "2.0"}, end_array, {float, "2.0"}, start_object, {key, "key"}, {float, "2.0e7"}, {key, "another key"}, {float, "2.0e7"}, end_object, start_object, {key, "key"}, {float, "2.0"}, {key, "another key"}, {float, "2.0"}, end_object, {float, "4.2"}, end_array]. [{comments, true}]. \ No newline at end of file diff --git a/test/cases/integer.test b/test/cases/integer.test index 008ca74..7258084 100644 --- a/test/cases/integer.test +++ b/test/cases/integer.test @@ -1 +1 @@ -[start_array, start_array, {number, "20"}, end_array, {number, "20"}, start_object, {key, "key"}, {number, "20"}, {key, "another key"}, {number, "20"}, end_object, {number, "42"}, end_array]. \ No newline at end of file +[start_array, start_array, {integer, "20"}, end_array, {integer, "20"}, start_object, {key, "key"}, {integer, "20"}, {key, "another key"}, {integer, "20"}, end_object, {integer, "42"}, end_array]. \ No newline at end of file diff --git a/test/cases/naked_false.test b/test/cases/naked_false.test index af4e022..dcce40f 100644 --- a/test/cases/naked_false.test +++ b/test/cases/naked_false.test @@ -1,2 +1 @@ -[{literal, false}]. -[{naked_values, true}]. \ No newline at end of file +[{literal, false}]. \ No newline at end of file diff --git a/test/cases/naked_null.test b/test/cases/naked_null.test index c28ebe9..83b40c1 100644 --- a/test/cases/naked_null.test +++ b/test/cases/naked_null.test @@ -1,2 +1 @@ -[{literal, null}]. -[{naked_values, true}]. \ No newline at end of file +[{literal, null}]. \ No newline at end of file diff --git a/test/cases/naked_number_a.test b/test/cases/naked_number_a.test index e165868..83581a2 100644 --- a/test/cases/naked_number_a.test +++ b/test/cases/naked_number_a.test @@ -1,2 +1 @@ -[{number, "42"}]. -[{naked_values, true}]. \ No newline at end of file +[{integer, "42"}]. \ No newline at end of file diff --git a/test/cases/naked_number_b.test b/test/cases/naked_number_b.test index 4f4d80f..11561a1 100644 --- a/test/cases/naked_number_b.test +++ b/test/cases/naked_number_b.test @@ -1,2 +1 @@ -[{number, "-42"}]. -[{naked_values, true}]. \ No newline at end of file +[{integer, "-42"}]. \ No newline at end of file diff --git a/test/cases/naked_number_c.test b/test/cases/naked_number_c.test index 1257b2b..b33efd4 100644 --- a/test/cases/naked_number_c.test +++ b/test/cases/naked_number_c.test @@ -1,2 +1 @@ -[{number, "-0.7"}]. -[{naked_values, true}]. \ No newline at end of file +[{float, "-0.7"}]. \ No newline at end of file diff --git a/test/cases/naked_number_d.test b/test/cases/naked_number_d.test index 69e7453..070cc44 100644 --- a/test/cases/naked_number_d.test +++ b/test/cases/naked_number_d.test @@ -1,2 +1 @@ -[{number, "0.7"}]. -[{naked_values, true}]. \ No newline at end of file +[{float, "0.7"}]. \ No newline at end of file diff --git a/test/cases/naked_number_e.test b/test/cases/naked_number_e.test index 8ac58d3..38db1c2 100644 --- a/test/cases/naked_number_e.test +++ b/test/cases/naked_number_e.test @@ -1,2 +1 @@ -[{number, "0"}]. -[{naked_values, true}]. \ No newline at end of file +[{integer, "0"}]. \ No newline at end of file diff --git a/test/cases/naked_number_f.test b/test/cases/naked_number_f.test index 66e8405..ce6e82b 100644 --- a/test/cases/naked_number_f.test +++ b/test/cases/naked_number_f.test @@ -1,2 +1 @@ -[{number, "1e100"}]. -[{naked_values, true}]. \ No newline at end of file +[{float, "1.0e100"}]. \ No newline at end of file diff --git a/test/cases/naked_string.test b/test/cases/naked_string.test index 1bc3e1d..73a42a4 100644 --- a/test/cases/naked_string.test +++ b/test/cases/naked_string.test @@ -1,2 +1 @@ -[{string, "this is a naked string"}]. -[{naked_values, true}]. \ No newline at end of file +[{string, "this is a naked string"}]. \ No newline at end of file diff --git a/test/cases/naked_true.test b/test/cases/naked_true.test index 7c44af2..73e4e09 100644 --- a/test/cases/naked_true.test +++ b/test/cases/naked_true.test @@ -1,2 +1 @@ -[{literal, true}]. -[{naked_values, true}]. \ No newline at end of file +[{literal, true}]. \ No newline at end of file diff --git a/test/cases/numbers.test b/test/cases/numbers.test index ac38c7a..84fab38 100644 --- a/test/cases/numbers.test +++ b/test/cases/numbers.test @@ -1 +1 @@ -[ start_array, {number, "1"}, {number, "2"}, {number, "3"}, {number, "4"}, {number, "5"}, {number, "6"}, {number, "7"}, {number, "8"}, {number, "9"}, {number, "42"}, {number, "127"}, {number, "99999999999999999999999999999"}, {number, "1e1"}, {number, "1e1"}, {number, "1.0e1"}, {number, "1.325e478534"}, {number, "-1"}, {number, "-1e-1"}, {number, "3.7e-57834235"}, end_array ]. \ No newline at end of file +[ start_array, {integer, "1"}, {integer, "2"}, {integer, "3"}, {integer, "4"}, {integer, "5"}, {integer, "6"}, {integer, "7"}, {integer, "8"}, {integer, "9"}, {integer, "42"}, {integer, "127"}, {integer, "99999999999999999999999999999"}, {float, "1.0e1"}, {float, "1.0e1"}, {float, "1.0e1"}, {float, "1.325e478534"}, {integer, "-1"}, {float, "-1.0e-1"}, {float, "3.7e-57834235"}, end_array ]. \ No newline at end of file diff --git a/test/cases/unicode_to_codepoint.test b/test/cases/unicode_to_codepoint.test index c257a0d..81b6280 100644 --- a/test/cases/unicode_to_codepoint.test +++ b/test/cases/unicode_to_codepoint.test @@ -1,2 +1,3 @@ [start_array, {string, "arabic letter alef: "}, {string, [16#0627]}, end_array]. + [{escaped_unicode, codepoint}]. \ No newline at end of file diff --git a/test/cases/unicode_unconverted.test b/test/cases/unicode_unconverted.test index 5525b73..3da1231 100644 --- a/test/cases/unicode_unconverted.test +++ b/test/cases/unicode_unconverted.test @@ -1,2 +1,3 @@ [start_array, {string, "arabic letter alef: "}, {string, "\\u0627"}, end_array]. + [{escaped_unicode, ascii}]. \ No newline at end of file diff --git a/test/cases/whitespace.test b/test/cases/whitespace.test index f200b42..e5fd3e2 100644 --- a/test/cases/whitespace.test +++ b/test/cases/whitespace.test @@ -1 +1 @@ -[start_array, {number, "0.3"}, end_array]. +[start_array, {float, "0.3"}, end_array]. diff --git a/test/cases/zero.test b/test/cases/zero.test index 4b0fff8..851ba90 100644 --- a/test/cases/zero.test +++ b/test/cases/zero.test @@ -1 +1 @@ -[start_array, start_array, {number, "0"}, end_array, {number, "0"}, start_object, {key, "key"}, {number, "0"}, {key, "another key"}, {number, "0"}, end_object, {number, "0"}, end_array]. \ No newline at end of file +integer[start_array, start_array, {integer, "0"}, end_array, {integer, "0"}, start_object, {key, "key"}, {integer, "0"}, {key, "another key"}, {integer, "0"}, end_object, {integer, "0"}, end_array]. \ No newline at end of file diff --git a/test/jsx_test.erl b/test/jsx_test.erl index e30468e..e612a7b 100644 --- a/test/jsx_test.erl +++ b/test/jsx_test.erl @@ -24,7 +24,7 @@ -module(jsx_test). -author("alisdairsullivan@yahoo.ca"). --export([test/1]). +-export([test/1, test_event/2, incremental_decode/2, decode/2]). -include_lib("eunit/include/eunit.hrl"). @@ -33,6 +33,17 @@ test(Dir) -> Tests = gen_tests(Dir), eunit:test(Tests, [verbose]). + +decoder(Flags) -> + jsx:decoder({jsx_test, test_event, []}, Flags). + +test_event(end_of_stream, Acc) -> + lists:reverse(Acc); +test_event(Event, Acc) -> + [Event] ++ Acc. + + + gen_tests(Dir) -> TestSpecs = filelib:wildcard("*.test", Dir), gen_tests(TestSpecs, Dir, []). @@ -65,7 +76,8 @@ incremental_decode(F, <<>>) -> {incomplete, G} -> G ; {Result, _} -> Result end; -incremental_decode(F, <>) -> +incremental_decode(F, <>) -> + io:fwrite("~p~n", [A]), {_, G} = F(<>), incremental_decode(G, Rest).