Просмотр исходного кода

Add tests from double-conversion library

I pulled in a lot of tests from the double-conversion test suite to make
sure we don't accidentally break behavior in the future.
pull/44/head 0.8.0
Paul J. Davis 12 лет назад
Родитель
Сommit
56dfd50c6a
3 измененных файлов: 100077 добавлений и 1 удалений
  1. +48
    -1
      test/003-numbers.t
  2. +29
    -0
      test/010-short-doubles.t
  3. +100000
    -0
      test/cases/short-doubles.txt

+ 48
- 1
test/003-numbers.t Просмотреть файл

@ -6,11 +6,22 @@ main([]) ->
code:add_pathz("ebin"),
code:add_pathz("test"),
etap:plan(59),
etap:plan(59 + 2 * length(double_conversion_tests())),
util:test_good(good()),
util:test_errors(errors()),
run_double_conversion_tests(),
etap:end_tests().
run_double_conversion_tests() ->
lists:foreach(fun(Double) ->
Descr = io_lib:format("~f", [Double]),
etap:is(jiffy:decode(jiffy:encode(Double)), Double, Descr),
NegDouble = -1.0 * Double,
NegDescr = io_lib:format("~f", [NegDouble]),
etap:is(jiffy:decode(jiffy:encode(NegDouble)), NegDouble, NegDescr)
end, double_conversion_tests()).
good() ->
[
{<<"0">>, 0},
@ -55,6 +66,7 @@ good() ->
{<<"-0.325E+2">>, -32.5, <<"-32.5">>}
].
errors() ->
[
<<"02">>,
@ -69,3 +81,38 @@ errors() ->
<<"2E +3">>,
<<"1EA">>
].
double_conversion_tests() ->
[
0.0,
0.00000001,
0.000000012,
0.0000000123,
0.0000001,
0.00000012,
0.000000123,
0.000001,
0.00001,
0.01,
0.0123,
0.1,
0.3,
1.0,
1.0e20,
1.0e21,
9.0,
10.0,
90.0,
90.12,
10000.0,
12345.0,
12345.0e23,
100000.0,
100000000000000000000.0,
111111111111111111111.0,
1111111111111111111111.0,
11111111111111111111111.0
].

+ 29
- 0
test/010-short-doubles.t Просмотреть файл

@ -0,0 +1,29 @@
#! /usr/bin/env escript
% This file is part of Jiffy released under the MIT license.
% See the LICENSE file for more information.
filename() -> "test/cases/short-doubles.txt".
main([]) ->
code:add_pathz("ebin"),
code:add_pathz("test"),
etap:plan(100000),
etap:diag("Loading test cases..."),
{ok, Cases} = file:consult(filename()),
etap:diag("Running tests..."),
ok = run_tests(Cases),
etap:end_tests().
run_tests([]) ->
ok;
run_tests([{Double, _, _} | Rest]) ->
RoundTrip = jiffy:decode(jiffy:encode(Double)),
Desc = lists:flatten(io_lib:format("~e", [Double])),
etap:is(RoundTrip, Double, "Roundtrip: " ++ Desc),
run_tests(Rest).

+ 100000
- 0
test/cases/short-doubles.txt
Разница между файлами не показана из-за своего большого размера
Просмотреть файл


Загрузка…
Отмена
Сохранить