| % This file is part of Jiffy released under the MIT license. |
| % See the LICENSE file for more information. |
| |
| -module(jiffy_05_array_tests). |
| |
| |
| -include_lib("eunit/include/eunit.hrl"). |
| -include("jiffy_util.hrl"). |
| |
| |
| array_success_test_() -> |
| [gen(ok, Case) || Case <- cases(ok)]. |
| |
| |
| array_failure_test_() -> |
| [gen(error, Case) || Case <- cases(error)]. |
| |
| |
| gen(ok, {J, E}) -> |
| gen(ok, {J, E, J}); |
| gen(ok, {J1, E, J2}) -> |
| {msg("~s", [J1]), [ |
| {"Decode", ?_assertEqual(E, dec(J1))}, |
| {"Encode", ?_assertEqual(J2, enc(E))} |
| ]}; |
| |
| gen(error, J) -> |
| {msg("Error: ~s", [J]), [ |
| ?_assertThrow({error, _}, dec(J)) |
| ]}. |
| |
| |
| cases(ok) -> |
| [ |
| {<<"[]">>, []}, |
| {<<"[\t[\n]\r]">>, [[]], <<"[[]]">>}, |
| {<<"[\t123, \r true\n]">>, [123, true], <<"[123,true]">>}, |
| {<<"[1,\"foo\"]">>, [1, <<"foo">>]}, |
| {<<"[11993444355.0,1]">>, [11993444355.0,1]}, |
| { |
| <<"[\"\\u00A1\",\"\\u00FC\"]">>, |
| [<<194, 161>>, <<195, 188>>], |
| <<"[\"", 194, 161, "\",\"", 195, 188, "\"]">> |
| } |
| ]; |
| |
| cases(error) -> |
| [ |
| <<"[">>, |
| <<"]">>, |
| <<"[,]">>, |
| <<"[123">>, |
| <<"[123,]">>, |
| <<"[32 true]">> |
| ]. |