#!/usr/local/bin/perl5.8.8
use strict;
use warnings;
use Test::More;
use lib '../blib/lib';
use lib 'blib/lib';
use Text::ASCIIMathML;
use lib 't';
use Entities;
use vars qw($opt_l);
use Getopt::Long;
Getopt::Long::config('no_ignore_case');
exit unless GetOptions qw(l);
@ARGV = <*.math t/*.math> unless @ARGV;
my @lines = <>;
my $lines = join '', grep(! /^\s*\#/, @lines);
my @tests = split /^\?[ \t]*/m, $lines;
shift @tests;
my @latex_tests = grep /\$/, @tests;
plan tests => @tests+@latex_tests;
my @attr = (mathcolor=>"red", displaystyle=>"true", fontfamily=>"serif");
# Do the tests
my $parser = new Text::ASCIIMathML;
$parser->SetAttribute(ForMoz=>1);
TEST:
foreach my $test (@tests) {
my ($input, $outputs) = split /\n/, $test, 2;
my ($mathml, $latex) = $outputs =~ /(.*?)(\$.*)?$/s;
$mathml =~ s/\n *//g;
$mathml = MathML::Entities::name2numbered($mathml);
$mathml =~ s/(&\#x)0([\da-f]{4};)/$1$2/ig;
is ($parser->TextToMathML($input, [title=>$input], \@attr),
$mathml, qq(mathml "$input"));
if ($latex) {
$latex =~ s/\n+$//;
my $t = $parser->TextToMathMLTree($input, undef, \@attr);
is ($t->latex($parser), $latex, qq(latex "$input"));
}
elsif ($opt_l) {
my $t = $parser->TextToMathMLTree($input, undef, \@attr);
print STDERR qq($input\n);
print STDERR $t->latex(),"\n" if $t;
}
}