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).