use warnings; use strict; use Math::GMPq qw(:mpq); print "1..2\n"; print "# Using gmp version ", Math::GMPq::gmp_v(), "\n"; my $str = Math::GMPq->new('3579' x 6 . '/' . '123' x 7); my $ok = ''; my $ret = Rmpq_out_str($str, 16); if($ret == 38) {$ok .= 'a'} else {print "\nReturned: ", $ret, "\n"} print "\n"; $ret = Rmpq_out_str($str, 16, " \n"); if($ret == 38) {$ok .= 'b'} else {print "Returned: ", $ret, "\n"} $ret = Rmpq_out_str("hello world ", $str, 16); if($ret == 38) {$ok .= 'c'} else {print "Returned: ", $ret, "\n"} print "\n"; $ret = Rmpq_out_str("hello world ", $str, 16, " \n"); if($ret == 38) {$ok .= 'd'} else {print "Returned: ", $ret, "\n"} if($ok eq 'abcd') {print "ok 1 \n"} else {print "not ok 1 $ok\n"} $ok = ''; eval{$ret = Rmpq_out_str($str);}; $ok .= 'a' if $@ =~ /Wrong number of arguments/; eval{$ret = Rmpq_out_str($str, 16, 0, 7, 10);}; $ok .= 'b' if $@ =~ /Wrong number of arguments/; if($ok eq 'ab') {print "ok 2 \n"} else {print "not ok 2 $ok\n"}