Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
test new arithmetic ops on intervals
  • Loading branch information
TimToady committed Sep 28, 2015
1 parent 1753a2b commit 139c10c
Showing 1 changed file with 36 additions and 1 deletion.
37 changes: 36 additions & 1 deletion S02-types/range.t
Expand Up @@ -2,7 +2,7 @@ use v6;

use Test;

plan 137;
plan 161;

# basic Range
# L<S02/Immutable types/A pair of Ordered endpoints>
Expand Down Expand Up @@ -270,6 +270,41 @@ is join(':',grep 1..3, 0..5), '1:2:3', "ranges itemize or flatten lazily";
lives-ok({'A'..'a'}, "A..a range completes");
lives-ok({"\0".."~"}, "low ascii range completes");

# shifting and scaling intervals
{
my $r = 1..10;
is ($r + 5).gist, '6..15', "can shift a left .. range up";
is (5 + $r).gist, '6..15', "can shift a right .. range up";
is ($r * 2).gist, '2..20', "can scale a left .. range up";
is (2 * $r).gist, '2..20', "can scale a right .. range up";
is ($r - 1).gist, '0..9', "can shift a .. range down";
is ($r / 2).gist, '0.5..5.0', "can scale a .. range down";

$r = 1..^10;
is ($r + 5).gist, '6..^15', "can shift a left ..^ range up";
is (5 + $r).gist, '6..^15', "can shift a right ..^ range up";
is ($r * 2).gist, '2..^20', "can scale a left ..^ range up";
is (2 * $r).gist, '2..^20', "can scale a right ..^ range up";
is ($r - 1).gist, '0..^9', "can shift a ..^ range down";
is ($r / 2).gist, '0.5..^5.0', "can scale a ..^ range down";

$r = 1^..10;
is ($r + 5).gist, '6^..15', "can shift a left ^.. range up";
is (5 + $r).gist, '6^..15', "can shift a right ^.. range up";
is ($r * 2).gist, '2^..20', "can scale a left ^.. range up";
is (2 * $r).gist, '2^..20', "can scale a right ^.. range up";
is ($r - 1).gist, '0^..9', "can shift a ^.. range down";
is ($r / 2).gist, '0.5^..5.0', "can scale a ^.. range down";

$r = 1^..^10;
is ($r + 5).gist, '6^..^15', "can shift a left ^..^ range up";
is (5 + $r).gist, '6^..^15', "can shift a right ^..^ range up";
is ($r * 2).gist, '2^..^20', "can scale a left ^..^ range up";
is (2 * $r).gist, '2^..^20', "can scale a right ^..^ range up";
is ($r - 1).gist, '0^..^9', "can shift a ^..^ range down";
is ($r / 2).gist, '0.5^..^5.0', "can scale a ^..^ range down";
}

# RT #125791
{
for 0,1 -> $i {
Expand Down

0 comments on commit 139c10c

Please sign in to comment.