Lingua-EN-Nums2Words

 view release on metacpan or  search on metacpan

test.pl  view on Meta::CPAN

#!/usr/local/bin/perl

# Thanks to Graham Barr <gbarr@ti.com> for contributing this test script!

use strict;
use Lingua::EN::Nums2Words;

my $DBG=0;
my $tests=9;
my $variations=3;
my $loops=2;

print "1..",$tests*$variations*$loops,"\n";

$/ = "";
my $i = 1;
my $DATA_start=tell DATA;
foreach my $case (qw(upper lower)) {
  Lingua::EN::Nums2Words::set_case($case);
  seek DATA, $DATA_start, 0;
  while(<DATA>) {
    my($num,$word,$ord,$short_ord,$dollar) = split(/\n/,$_);
    my $ok;

    $ok=(case($case,$word) eq &num2word($num));
    if (! $ok) {  print "not ";
      print "$word vs " .  &num2word($num) . "\n" if ($DBG);
    }
    printf "ok %d\n",$i++;

    $ok=(case($case,$ord) eq &num2word_ordinal($num));
    if (! $ok) {  print "not ";
      print "$ord vs " .  &num2word_ordinal($num) . "\n" if ($DBG);
    }
    printf "ok %d\n",$i++;

    if ($short_ord ne '__SKIP__') {
      $ok=(case($case,$short_ord) eq &num2word_short_ordinal($num));
      if (! $ok) {  print "not ";
        print "$ord vs " .  &num2word_short_ordinal($num) . "\n" if ($DBG);
      }
      printf "ok %d\n",$i++;
    }

    $ok=(case($case,$dollar) eq &num2usdollars($num));
    if (! $ok) {  print "not ";
      print "$dollar vs " .  &num2usdollars($num) . "\n" if ($DBG);
    }
    printf "ok %d\n",$i++;
  }
}

sub case($$) {
  my $word_case=shift @_;
  my $str=shift @_;
  if ($word_case eq 'upper') {
    return uc($str);
  } elsif ($word_case eq 'lower') {
    return lc($str);
  } else {
    retrn $str;
  }
}


__DATA__
-3793.793
NEGATIVE THREE THOUSAND, SEVEN HUNDRED NINETY-THREE AND SEVEN HUNDRED NINETY-THREE THOUSANDTHS
NEGATIVE THREE THOUSAND, SEVEN HUNDRED NINETY-THIRD AND SEVEN HUNDRED NINETY-THREE THOUSANDTHS
__SKIP__
NEGATIVE THREE THOUSAND, SEVEN HUNDRED NINETY-THREE DOLLARS AND SEVENTY-NINE CENTS

3875.5798
THREE THOUSAND, EIGHT HUNDRED SEVENTY-FIVE AND FIVE THOUSAND, SEVEN HUNDRED NINETY-EIGHT TEN-THOUSANDTHS
THREE THOUSAND, EIGHT HUNDRED SEVENTY-FIFTH AND FIVE THOUSAND, SEVEN HUNDRED NINETY-EIGHT TEN-THOUSANDTHS



( run in 2.035 seconds using v1.01-cache-2.11-cpan-b301d465b3d )