use Test::More qw(no_plan); use App::RecordStream::Test::OperationHelper; use strict; use warnings; BEGIN { use_ok( 'App::RecordStream::Operation::collate' ) }; my $stream = <do_match( 'collate', [qw(--a count)], $stream, $solution, ); my $solution2 = <do_match( 'collate', [qw(--key element --a count)], $stream, $solution2, ); my $solution2b = <do_match( 'collate', [qw(--key element --a count --nobucket)], $stream, $solution2b, ); my $solution3 = <do_match( 'collate', ['--key', 'element,foo', qw(--cube --a count)], $stream, $solution3, ); # Test KeySpecs App::RecordStream::Test::OperationHelper->do_match( 'collate', ['--key', '!element|foo!s', qw(--cube --a count)], $stream, $solution3, ); my $solution4 = <do_match( 'collate', ['--key', 'element', '--dlkey', 'foo=sub{shift->{foo}}', '--dlaggregator', 'sweet=uconcat(",", val(sub{$_[0]->{foo}.$_[0]->{bar};}))'], $stream, $solution4 ); my $solution5 = <do_match( 'collate', ['--key', 'element', '--a', 'count'], $stream2, $solution5 ); my $stream3 = <do_match( 'collate', ['--mr-agg', 'a', '{{z}}', '$a+$b', '$a'], $stream3, $solution6 ); App::RecordStream::Test::OperationHelper->do_match( 'collate', ['--ii-agg', 'a', '0', '$a+{{z}}', '$a'], $stream3, $solution6 );