From 94e70d8962b62c0aa45c2a863e9514bfa0ea202d Mon Sep 17 00:00:00 2001 From: Timo Paulssen Date: Fri, 5 Apr 2013 18:58:58 +0200 Subject: [PATCH] start reflecting hyperop recursion specchange. --- S03-metaops/hyper.t | 72 ++++++++++++++++++--------------------------------- 1 file changed, 25 insertions(+), 47 deletions(-) diff --git a/S03-metaops/hyper.t b/S03-metaops/hyper.t index 248f087..c0f90d8 100644 --- a/S03-metaops/hyper.t +++ b/S03-metaops/hyper.t @@ -265,72 +265,50 @@ my @e; is(~@r, ~@e, "hyper-method-call on list of user-defined objects"); }; -{ # distribution for unary prefix +{ # unary prefix: map semantics rather than recursive semantics my @r; @r = -« ([1, 2], [3, [4, 5]]); - my @e = ([-1, -2], [-3, [-4, -5]]); - is(~@r, ~@e, "distribution for unary prefix"); - is_deeply(@r, @e, "distribution for unary prefix, deep comparison"); - - @r = -<< ([1, 2], [3, [4, 5]]); - @e = ([-1, -2], [-3, [-4, -5]]); - is(~@r, ~@e, "distribution for unary prefix, ASCII"); - is_deeply(@r, @e, "distribution for unary prefix, ASCII, deep comparison"); -}; - -{ # distribution for unary postfix autoincrement - my @r; - @r = ([1, 2], [3, [4, 5]]); - is_deeply(@r, @e, "distribution for binary infix, same shape, ASCII, deep comparison"); + my @e = (5, 7, 4); + is(~@r, ~@e, "nondistribution for binary infix, same shape, ASCII"); + is_deeply(@r, @e, "nondistribution for binary infix, same shape, ASCII, deep comparison"); - @r = (1, 2, [3, 4]) >>+>> (5, 6, 7); - @e = (6, 8, [10, 11]); - is(~@r, ~@e, "distribution for binary infix, dimension upgrade, ASCII"); - is_deeply(@r, @e, "distribution for binary infix, dimension upgrade, ASCII, deep comparison"); + @r = (1, 2, [3, 4], [1, 2, 3]) >>+>> (5, 6, 7); + @e = (6, 8, 9, 8); + is(~@r, ~@e, "nondistribution for binary infix, deprecated dimension upgrade, ASCII"); + is_deeply(@r, @e, "nondistribution for binary infix, deprecated dimension upgrade, ASCII, deep comparison"); @r = ([1, 2], 3) <<+>> (4, [5, 6]); - @e = ([5, 6], [8, 9]); - is(~@r, ~@e, "distribution for binary infix, S03 cross-upgrade, ASCII"); - is_deeply(@r, @e, "distribution for binary infix, S03 cross-upgrade, ASCII, deep comparison"); + @e = (6, 5); + is(~@r, ~@e, "nondistribution for binary infix, S03 deprecated cross-upgrade, ASCII"); + is_deeply(@r, @e, "nondistribution for binary infix, S03 deprecated cross-upgrade, ASCII, deep comparison"); }; #?DOES 3 { # distribution for binary infix - unicode my @r; @r = (1, 2, [3, 4]) »+« (4, 5, [6, 7]); - my @e = (5, 7, [9, 11]); - is(~@r, ~@e, "distribution for binary infix, same shape"); - is_deeply(@r, @e, "distribution for binary infix, same shape, deep comparison"); + my @e = (5, 7, 4); + is(~@r, ~@e, "nondistribution for binary infix, same shape"); + is_deeply(@r, @e, "nondistribution for binary infix, same shape, deep comparison"); - @r = (1, 2, [3, 4]) »+» (5, 6, 7); - @e = (6, 8, [10, 11]); - is(~@r, ~@e, "distribution for binary infix, dimension upgrade"); - is_deeply(@r, @e, "distribution for binary infix, dimension upgrade, deep comparison"); + @r = (1, 2, [3, 4], [1, 2, 3]) »+» (5, 6, 7); + @e = (6, 8, 9, 8); + is(~@r, ~@e, "nondistribution for binary infix, deprecated dimension upgrade"); + is_deeply(@r, @e, "nondistribution for binary infix, deprecated dimension upgrade, deep comparison"); @r = ([1, 2], 3) «+» (4, [5, 6]); - @e = ([5, 6], [8, 9]); - is(~@r, ~@e, "distribution for binary infix, S03 cross-upgrade"); - is_deeply(@r, @e, "distribution for binary infix, S03 cross-upgrade, deep comparison"); + @e = (6, 5); + is(~@r, ~@e, "nondistribution for binary infix, S03 deprecated cross-upgrade"); + is_deeply(@r, @e, "nondistribution for binary infix, S03 deprecated cross-upgrade, deep comparison"); }; { # regression test, ensure that hyper works on arrays -- 1.7.10.4