您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

35 行
937 B

  1. -module(util).
  2. -export([test_good/1, test_errors/1]).
  3. test_good(Cases) ->
  4. lists:foreach(fun(Case) -> check_good(Case) end, Cases).
  5. test_errors(Cases) ->
  6. lists:foreach(fun(Case) -> check_error(Case) end, Cases).
  7. ok_dec(J, _E) ->
  8. lists:flatten(io_lib:format("Decoded ~p.", [J])).
  9. ok_enc(E, _J) ->
  10. lists:flatten(io_lib:format("Encoded ~p", [E])).
  11. do_encode(E) ->
  12. {ok, Data} = jiffy:encode(E),
  13. {ok, iolist_to_binary(Data)}.
  14. error_mesg(J) ->
  15. lists:flatten(io_lib:format("Decoding ~p returns an error.", [J])).
  16. check_good({J, E}) ->
  17. etap:is(jiffy:decode(J), {ok, E}, ok_dec(J, E)),
  18. etap:is(do_encode(E), {ok, J}, ok_enc(E, J));
  19. check_good({J, E, J2}) ->
  20. etap:is(jiffy:decode(J), {ok, E}, ok_dec(J, E)),
  21. etap:is(do_encode(E), {ok, J2}, ok_enc(E, J2)).
  22. check_error(J) ->
  23. etap:fun_is(
  24. fun({error, _}) -> true; (_) -> false end,
  25. jiffy:decode(J),
  26. error_mesg(J)
  27. ).