Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

55 рядки
1.2 KiB

13 роки тому
13 роки тому
  1. % This file is part of Jiffy released under the MIT license.
  2. % See the LICENSE file for more information.
  3. -module(jiffy_05_array_tests).
  4. -include_lib("eunit/include/eunit.hrl").
  5. -include("jiffy_util.hrl").
  6. array_success_test_() ->
  7. [gen(ok, Case) || Case <- cases(ok)].
  8. array_failure_test_() ->
  9. [gen(error, Case) || Case <- cases(error)].
  10. gen(ok, {J, E}) ->
  11. gen(ok, {J, E, J});
  12. gen(ok, {J1, E, J2}) ->
  13. {msg("~s", [J1]), [
  14. {"Decode", ?_assertEqual(E, dec(J1))},
  15. {"Encode", ?_assertEqual(J2, enc(E))}
  16. ]};
  17. gen(error, J) ->
  18. {msg("Error: ~s", [J]), [
  19. ?_assertThrow({error, _}, dec(J))
  20. ]}.
  21. cases(ok) ->
  22. [
  23. {<<"[]">>, []},
  24. {<<"[\t[\n]\r]">>, [[]], <<"[[]]">>},
  25. {<<"[\t123, \r true\n]">>, [123, true], <<"[123,true]">>},
  26. {<<"[1,\"foo\"]">>, [1, <<"foo">>]},
  27. {<<"[11993444355.0,1]">>, [11993444355.0,1]},
  28. {
  29. <<"[\"\\u00A1\",\"\\u00FC\"]">>,
  30. [<<194, 161>>, <<195, 188>>],
  31. <<"[\"", 194, 161, "\",\"", 195, 188, "\"]">>
  32. }
  33. ];
  34. cases(error) ->
  35. [
  36. <<"[">>,
  37. <<"]">>,
  38. <<"[,]">>,
  39. <<"[123">>,
  40. <<"[123,]">>,
  41. <<"[32 true]">>
  42. ].