[bcn-pm] dubte
Jose Luis Martinez
jlmartinez-lists-bcn-pm a capside.com
dij maig 28 23:59:41 PDT 2009
Jordi Delgado escribió:
> Hola,
>
> (...)
> given( $ARGV[0] ) {
> when( /^-?\d+\.\d+$/ ) { #smart
> say 'Not a number!' }
> when( $_ > 10 ) { #dumb
> say 'Number is greater than 10' }
> when( $_ < 10 ) { #dumb
> say 'Number is less than 10' }
> default { say 'Number is 10' }
> }
> (...)
>
Encierralo en una sub xxx, por ejemplo) y cambia los "say" por "die",
return 1, return -1, return 0 .
use Test::More;
use Test::Exception;
plan tests => 19;
cmp_ok(xxx('2.0'), '==', -1, '2.0 es menor que 10');
cmp_ok(xxx('+2.0'), '==', -1, '2.0 es menor que 10');
cmp_ok(xxx(2.0), '==', -1, '2.0 es menor que 10');
cmp_ok(xxx(2), '==', -1, '2 es menor que 10');
cmp_ok(xxx('12.0'), '==', 1, '12.0 es mayor que 10');
cmp_ok(xxx('+12.0'), '==', 1, '12.0 es mayor que 10');
cmp_ok(xxx(12.0), '==', 1, '12.0 es mayor que 10');
cmp_ok(xxx(12), '==', 1, '12 es mayor que 10');
cmp_ok(xxx('-2.0'), '==', -1, '-2.0 es menor que 10');
cmp_ok(xxx(-2.0), '==', -1, '-2.0 es menor que 10');
cmp_ok(xxx(-2), '==', -1, '-2 es menor que 10');
cmp_ok(xxx('10.0'), '==', 0, '10.0 == 10');
cmp_ok(xxx('+10.0'), '==', 0, '10.0 == 10');
cmp_ok(xxx(10.0), '==', 0, '10.0 == 10');
cmp_ok(xxx(10), '==', 0, '10 == 10');
dies_ok(sub {
xxx('NotANumber');
}, 'NotANumber dies');
dies_ok(sub {
xxx('10,0');
}, '10,0 dies');
dies_ok(sub {
xxx('10.dd');
}, '10.dd dies');
dies_ok(sub {
xxx('dd.20');
}, 'dd.20 dies');
Funciona como esperas? o realmente hay un bug?
Nota: he escrito el test sin probarlo... consideralo pseudo-codigo si no
funciona :p
Atentamente,
Jose Luis Martinez
jlmartinez a capside.com
Més informació sobre la llista de correu Barcelona-pm