# HG changeset patch # User Markus Mützel # Date 1647705330 -3600 # Node ID 82c1554c4a643716c54a52aecade370fb8432f53 # Parent cb0a54576eb024307639cec1708b2b3c9b470abe * test/range.tst: Avoid issues with double precision floating point numbers. diff -r cb0a54576eb0 -r 82c1554c4a64 test/range.tst --- a/test/range.tst Sat Mar 19 15:37:13 2022 +0100 +++ b/test/range.tst Sat Mar 19 16:55:30 2022 +0100 @@ -611,17 +611,30 @@ %!test # ascending ranges %! types = {"int8", "int16", "int32", "int64"}; %! for i_type = 1:numel (types) -%! assert (intmin (types{i_type}) : double (intmax (types{i_type})) + 1 : intmax (types{i_type}), ... +%! assert (intmin (types{i_type}) : -double (intmin (types{i_type})) : intmax (types{i_type}), ... %! [intmin(types{i_type}), 0]); +%! ## FIXME: This test leads to a deadlock for "int64". +%! ## assert (intmin (types{i_type}) : -2*double (intmin (types{i_type})) : intmax (types{i_type}), ... +%! ## intmin (types{i_type})); +%! if (! strcmp (types, "int64")) +%! ## The increment cannot be represented in double precision for "int64" +%! assert (intmin (types{i_type}) : 2*double (intmax (types{i_type})) : intmin (types{i_type}), ... +%! [intmin(types{i_type}), intmax(types{i_type})-1]); +%! endif %! endfor %!test # descending ranges %! types = {"int8", "int16", "int32", "int64"}; %! for i_type = 1:numel (types) %! assert (intmax (types{i_type}) : double (intmin (types{i_type})) : intmin (types{i_type}), ... %! [intmax(types{i_type}), -1]); -%! ## FIXME: This leads to a deadlock for "int64". -%! ## assert (intmax (types{i_type}) : -2*double (intmax (types{i_type})) : intmin (types{i_type}), ... -%! ## [intmax(types{i_type}), -intmax(types{i_type})]); +%! ## FIXME: This test leads to a deadlock for "int64". +%! ## assert (intmax (types{i_type}) : 2*double (intmin (types{i_type})) : intmin (types{i_type}), ... +%! ## intmax (types{i_type})); +%! if (! strcmp (types, "int64")) +%! ## The increment cannot be represented in double precision for "int64" +%! assert (intmax (types{i_type}) : -2*double (intmax (types{i_type})) : intmin (types{i_type}), ... +%! [intmax(types{i_type}), -intmax(types{i_type})]); +%! endif %! endfor ## integer range near intmax