# Before `make install' is performed this script should be runnable with # `make test'. After `make install' it should work as `perl Lingua-ES-Numbers.t' ######################### # change 'tests => 1' to 'tests => last_test_to_print'; use utf8; #use lib '/home/opr/W/Projects/Numeros/Lingua-ES-Numbers/lib/'; use Test::More tests => 499; BEGIN { use_ok('Lingua::ES::Numeros') } ######################### require "t/CardinalsTest.pm"; #my $cardinal = CardinalsTest->init; my %t_fraccion; { my $num = "1"; for my $f (qw/ décim centésim milésim diezmilésim cienmilésim /) { $t_fraccion{$num} = "un " . $f; $num = "0" . $num; } for my $ll ( CardinalsTest::llones() ) { $t_fraccion{$num} = "un " . $ll . "illonésim"; $num = "0" . $num; for my $f (qw/ diez cien mil diezmil cienmil /) { $t_fraccion{$num} = "un " . $f . $ll . "illonésim"; $num = "0" . $num; } } } sub t_fraccion { my $genre = ""; while ( my ( $k, $v ) = each %t_fraccion ) { my $t = join( " ", Lingua::ES::Numeros::fraccion_simple( $k, 0, 1, $genre ) ); is( $t, $v, "t_fraccion_simple" ); $t = join( " ", Lingua::ES::Numeros::fraccion_simple( $k, 0, 0, $genre ) ); is( $t, $v, "t_fraccion_simple" ); } for ( my $i = 0; $i < 125; $i++ ) { my $k = ( 0 x $i ) . 1; my $t = join( " ", Lingua::ES::Numeros::fraccion_simple( 1, -$i, 0, $genre ) ); my $v = join( " ", Lingua::ES::Numeros::fraccion_simple( $k, 0, 0, $genre ) ); is( $t, $v, "t_fraccion_exp" ); if ( length $k > 8 ) { $t = join( " ", Lingua::ES::Numeros::fraccion_simple( "00000001", -$i + 7, 0, $genre ) ); $v = join( " ", Lingua::ES::Numeros::fraccion_simple( substr( $k, 7 ), -7, 0, $genre ) ); is( $t, $v, "t_fraccion_exp2" ); } } for my $i ( 125, 126 ) { my $k = ( 0 x $i ) . 1; eval { Lingua::ES::Numeros::fraccion_simple( 1, -$i, 0, $genre ) }; ok( $@ =~ /^Fuera de rango/, "t_fraccion_range" ); eval { Lingua::ES::Numeros::fraccion_simple( $k, 0, 0, $genre ) }; ok( $@ =~ /^Fuera de rango/, "t_fraccion_range" ); eval { Lingua::ES::Numeros::fraccion_simple( substr( $k, 7 ), -7, 0, $genre ) }; ok( $@ =~ /^Fuera de rango/, "t_fraccion_range" ); } } t_fraccion;