#!/usr/bin/perl
use strict;
use warnings;
use 5.010 ;
use Test:: More tests => 10 ;
my $src = q { $_ = q { print + ( $l = ( $~ =<> ) =~ y /// c
) % 4
? $~ : "\$ _=q{$_};eval" x
( $l / 4 ) } ; eval } ; my $cmd = qq { perl
- e
'$src' } ;
is
( qx ( echo
- n
| $cmd ) , '' , 'empty input -> empty output' ) ;
# Length is not a multiple of 4
foreach my $input ( qw ( a ab
123 foobar
- 1 ~!@ #$%^&* ) ) { is
( qx ( echo
- n
'$input' | $cmd ) , $input , "$input -> $input" ) ; }
# Length is a multiple of 4, 25% bonus
foreach my $length ( ( 4 , 8 , 12 ) ) {
my $input = 'a' x $length ;
is
( qx ( echo
- n
'$input' | $cmd ) , $src x
( $length / 4 ) , "length == $length -> source x " . $length / 4 ) ; }
IyEvdXNyL2Jpbi9wZXJsCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSA1LjAxMDsKCnVzZSBUZXN0OjpNb3JlIHRlc3RzID0+IDEwOwoKbXkgJHNyYyA9IHF7JF89cXtwcmludCsoJGw9KCR+PTw+KT1+eS8vL2MpJTQ/JH46IlwkXz1xeyRffTtldmFsIngoJGwvNCl9O2V2YWx9OwpteSAkY21kID0gcXF7cGVybCAtZSckc3JjJ307CgppcyggcXgoZWNobyAtbiB8ICRjbWQpLCAnJywgJ2VtcHR5IGlucHV0IC0+IGVtcHR5IG91dHB1dCcgKTsKCiMgTGVuZ3RoIGlzIG5vdCBhIG11bHRpcGxlIG9mIDQKZm9yZWFjaCBteSAkaW5wdXQgKCBxdyhhIGFiIDEyMyBmb29iYXIgLTEgfiFAIyQlXiYqICkgKSB7CiAgICBpcyggcXgoZWNobyAtbiAnJGlucHV0JyB8ICRjbWQpLCAkaW5wdXQsICIkaW5wdXQgLT4gJGlucHV0IiApOwp9CgojIExlbmd0aCBpcyBhIG11bHRpcGxlIG9mIDQsIDI1JSBib251cwpmb3JlYWNoIG15ICRsZW5ndGggKCAoNCwgOCwgMTIpICkgewogICAgbXkgJGlucHV0ID0gJ2EnIHggJGxlbmd0aDsKICAgIGlzKCBxeChlY2hvIC1uICckaW5wdXQnIHwgJGNtZCksICRzcmMgeCAoJGxlbmd0aC80KSwgImxlbmd0aCA9PSAkbGVuZ3RoIC0+IHNvdXJjZSB4ICIuICRsZW5ndGgvNCApOwp9