use Roman2; use warnings; use strict; sub test { my ($r, $value)= @_; my $result= $r->toRoman ($value); print "$value produces $result\n"; } sub testset1 ($) { my $r1= shift; foreach (1..12) { test ($r1, $_); } test ($r1, 123); test ($r1, 2000); test ($r1, 1999); test ($r1, 4567); test ($r1, 9876); test ($r1, 1000001); test ($r1, 90001); } sub test1 { print "run with ASCII\n"; my $r1= new Roman2:: ; testset1 ($r1); print "change X to *\n"; $r1->set (X=>'*'); testset1 ($r1); print "change to lower-case\n"; $r1->set ('ascii'); testset1 ($r1); print "change to Phi usage\n"; $r1->set ("Phi"); testset1 ($r1); print "change to Unicode ROMAN digits\n"; $r1->set ("ROMAN"); testset1 ($r1); } sub test2 { my $parser= new Roman2::parse:: ; $parser->fromRoman ('((I))(I)Mxvi'); $parser->fromRoman ('xvii'); } #main program test1; test2;