diff test/range.tst @ 30418:c32b6a3805e7 stable

test: Consolidate tests for integer ranges. * test/range.tst: Consolidate tests for integer ranges.
author Markus Mützel <markus.muetzel@gmx.de>
date Thu, 02 Dec 2021 18:53:37 +0100
parents 4736bc8e9804
children 796f54d4ddbf
line wrap: on
line diff
--- a/test/range.tst	Tue Nov 30 18:19:20 2021 +0100
+++ b/test/range.tst	Thu Dec 02 18:53:37 2021 +0100
@@ -497,7 +497,7 @@
 %!error <colon operator upper bound invalid> (uint8(1):-1:-6)
 
 ## Extreme integer values.
-%!test <61132>
+%!test <*61132>
 %! types = {"int8", "int16", "int32", "int64", ...
 %!          "uint8", "uint16", "uint32", "uint64"};
 %! for i = 1:numel (types)
@@ -515,50 +515,38 @@
 
 ## Test that ranges do not exceed limits for integer types
 
-## Ascending ranges, signed
+## Ascending ranges, signed and unsigned
 %!test <*61300>
-%! int_types = {@int8, @int16, @int32, @int64};
-%! for i_type = 1:numel (int_types)
-%!   for i_start = 0:4
-%!     assert ((int_types{i_type} (i_start) : 6 : 100)([1,end]), ...
-%!             [int_types{i_type}(i_start), int_types{i_type}(96+i_start)]);
+%! types = {@int8, @int16, @int32, @int64, @uint8, @uint16, @uint32, @uint64};
+%! start = 0:5;
+%! finish = start + 6 * floor ((100 - start) / 6);
+%! for i_type = 1:numel (types)
+%!   for i_start = 1:numel(start)
+%!     assert ((types{i_type} (start(i_start)) : 6 : 100)([1,end]), ...
+%!             [types{i_type}(start(i_start)), types{i_type}(finish(i_start))]);
 %!   endfor
-%!   assert ((int_types{i_type} (5) : 6 : 100)([1,end]), ...
-%!           [int_types{i_type}(5), int_types{i_type}(95)]);
-%! endfor
-
-## Ascending ranges, unsigned
-%!test <*61300>
-%! int_types = {@uint8, @uint16, @uint32, @uint64};
-%! for i_type = 1:numel (int_types)
-%!   for i_start = 0:4
-%!     assert ((int_types{i_type} (i_start) : 6 : 100)([1,end]), ...
-%!             [int_types{i_type}(i_start), int_types{i_type}(96+i_start)]);
-%!   endfor
-%!   assert ((int_types{i_type} (5) : 6 : 100)([1,end]), ...
-%!           [int_types{i_type}(5), int_types{i_type}(95)]);
 %! endfor
 
 ## Descending ranges, signed
 %!test <*61300>
-%! int_types = {@int8, @int16, @int32, @int64};
-%! for i_type = 1:numel (int_types)
-%!   for i_start = 0:4
-%!     assert ((int_types{i_type} (100-i_start) : -6 : 0)([1,end]), ...
-%!             [int_types{i_type}(100-i_start), int_types{i_type}(4-i_start)]);
+%! types = {@int8, @int16, @int32, @int64};
+%! start = 100:-1:95;
+%! finish = start - 6 * floor (start / 6);
+%! for i_type = 1:numel (types)
+%!   for i_start = 1:numel(start)
+%!     assert ((types{i_type} (start(i_start)) : -6 : 0)([1,end]), ...
+%!             [types{i_type}(start(i_start)), types{i_type}(finish(i_start))]);
 %!   endfor
-%!   assert ((int_types{i_type} (95) : -6 : 0)([1,end]), ...
-%!           [int_types{i_type}(95), int_types{i_type}(5)]);
 %! endfor
 
 ## Descending ranges, unsigned
 %!test <*61132>
-%! int_types = {@uint8, @uint16, @uint32, @uint64};
-%! for i_type = 1:numel (int_types)
-%!   for i_start = 0:4
-%!     assert ((int_types{i_type} (100-i_start) : -6 : 0)([1,end]), ...
-%!             [int_types{i_type}(100-i_start), int_types{i_type}(4-i_start)]);
+%! types = {@uint8, @uint16, @uint32, @uint64};
+%! start = 100:-1:95;
+%! finish = start - 6 * floor (start / 6);
+%! for i_type = 1:numel (types)
+%!   for i_start = 1:numel(start)
+%!     assert ((types{i_type} (start(i_start)) : -6 : 0)([1,end]), ...
+%!             [types{i_type}(start(i_start)), types{i_type}(finish(i_start))]);
 %!   endfor
-%!   assert ((int_types{i_type} (95) : -6 : 0)([1,end]), ...
-%!           [int_types{i_type}(95), int_types{i_type}(5)]);
 %! endfor