From: notifies s. of c. c. <per...@li...> - 2006-12-14 01:54:48
|
Revision: 83 http://svn.sourceforge.net/perl-flat/?rev=83&view=rev Author: estrabd Date: 2006-12-13 17:54:44 -0800 (Wed, 13 Dec 2006) Log Message: ----------- added some tests Modified Paths: -------------- trunk/perl-flat/dev-scripts/bdetest.pl trunk/perl-flat/dev-scripts/pre_compare.pl trunk/perl-flat/dev-scripts/test.sh trunk/perl-flat/t/03-pregex-pfa.t Modified: trunk/perl-flat/dev-scripts/bdetest.pl =================================================================== --- trunk/perl-flat/dev-scripts/bdetest.pl 2006-10-07 12:52:05 UTC (rev 82) +++ trunk/perl-flat/dev-scripts/bdetest.pl 2006-12-14 01:54:44 UTC (rev 83) @@ -4,11 +4,26 @@ use lib qw(../lib); use FLAT; use FLAT::NFA; -use FLAT::Regex; +use FLAT::PFA; +use FLAT::Regex::WithExtraOps; use Data::Dumper; # This is mainly my test script for FLAT::FA::PFA.pm -my $DFA = FLAT::Regex->new('ab+ba')->as_nfa->as_min_dfa; +#my $DFA = FLAT::Regex->new('ab+ba')->as_nfa->as_min_dfa; +#print $DFA->as_gdl; -print $DFA->as_gdl; +my $PFA1 = FLAT::Regex::WithExtraOps->new('(abc)*dx&(efg)*hy')->as_pfa(); #<--! +my $PFA2 = FLAT::Regex::WithExtraOps->new('(abc+efg)*( + dx&(efg)*hy+ + hy&(abc)*dx+ + a(((bca)*bcdx)&((efg)*hy))+ + a(((bca)*)&((efg)*hy))bcdx+ + e(((fge)*fghy)&((abc)*dx))+ + e(((fge)*)&((abc)*dx))fghy + )')->as_pfa(); + +my $DFA1 = $PFA1->as_nfa->as_min_dfa; +my $DFA2 = $PFA2->as_nfa->as_min_dfa; + +print $DFA1->equals($DFA2); Modified: trunk/perl-flat/dev-scripts/pre_compare.pl =================================================================== --- trunk/perl-flat/dev-scripts/pre_compare.pl 2006-10-07 12:52:05 UTC (rev 82) +++ trunk/perl-flat/dev-scripts/pre_compare.pl 2006-12-14 01:54:44 UTC (rev 83) @@ -19,31 +19,3 @@ } else { print "No Match"; } - -__END__ -open(GDL,">pfa.gdl"); - print GDL $PFA->as_gdl,"\n"; -close(GDL); - -my $NFA = $PFA->as_nfa(); - -open(GDL,">nfa.gdl"); - print GDL $NFA->as_gdl,"\n"; -close(GDL); - -my $DFA = $NFA->as_dfa(); - -open(GDL,">dfa.gdl"); - print GDL $DFA->as_gdl,"\n"; -close(GDL); - -open(GDL,">mindfa.gdl"); - print GDL $DFA->as_min_dfa->trim_sinks->as_gdl,"\n"; -close(GDL); - -my $dot = $DFA->as_min_dfa->as_graphviz; -open my $fh, "|-", "circo -Tpng -o output.png" - or die "Couldn't run dot: $!\n"; - -print $fh $dot; -close $fh; Modified: trunk/perl-flat/dev-scripts/test.sh =================================================================== --- trunk/perl-flat/dev-scripts/test.sh 2006-10-07 12:52:05 UTC (rev 82) +++ trunk/perl-flat/dev-scripts/test.sh 2006-12-14 01:54:44 UTC (rev 83) @@ -1,10 +1,5 @@ perl pregex-to-pfa.pl "${1}" -rm *.gdl *.png ~/distfiles/aiSee/bin/aisee.bin -pngoutput pfa.png pfa.gdl ~/distfiles/aiSee/bin/aisee.bin -pngoutput nfa.png nfa.gdl ~/distfiles/aiSee/bin/aisee.bin -pngoutput dfa.png dfa.gdl ~/distfiles/aiSee/bin/aisee.bin -pngoutput mindfa.png mindfa.gdl -#qiv pfa.png& -#qiv nfa.png& -#qiv dfa.png& -qiv mindfa.png& Modified: trunk/perl-flat/t/03-pregex-pfa.t =================================================================== --- trunk/perl-flat/t/03-pregex-pfa.t 2006-10-07 12:52:05 UTC (rev 82) +++ trunk/perl-flat/t/03-pregex-pfa.t 2006-12-14 01:54:44 UTC (rev 83) @@ -1,10 +1,16 @@ -use Test::More tests => 2; +use Test::More 'no_plan'; + +use strict; + +use lib qw(../lib); use FLAT; +use FLAT::DFA; use FLAT::NFA; use FLAT::PFA; -use FLAT::DFA; use FLAT::Regex::WithExtraOps; +diag("This test will take a while.."); + # w&w my $PFA1 = FLAT::Regex::WithExtraOps->new('abc&def')->as_pfa(); my $PFA2 = FLAT::Regex::WithExtraOps->new('a(b(c&def)+d(ef&bc))+d(ef&abc)')->as_pfa(); @@ -12,24 +18,49 @@ my $DFA1 = $PFA1->as_nfa->as_min_dfa; my $DFA2 = $PFA2->as_nfa->as_min_dfa; -ok( ($DFA1->equals($DFA2)) ); +is( ($DFA1->equals($DFA2)), 1 ); # w&w* $PFA1 = FLAT::Regex::WithExtraOps->new('abc&(def)*')->as_pfa(); -$PFA2 = FLAT::Regex::WithExtraOps->new('(def)*(a(bc&(def)*)+d((efd)*ef&(abc))+d((efd)*&(abc))ef)')->as_pfa(); +$PFA2 = FLAT::Regex::WithExtraOps->new('(def)*( + a(bc&(def)*)+ + d((efd)*ef&(abc))+ + d((efd)*&(abc))ef + )')->as_pfa(); $DFA1 = $PFA1->as_nfa->as_min_dfa; $DFA2 = $PFA2->as_nfa->as_min_dfa; -ok( ($DFA1->equals($DFA2)) ); +is( ($DFA1->equals($DFA2)), 1); -__END__ # w*&w* -# throws some weird warning from FA.pm, but passes still -$PFA1 = FLAT::Regex::WithExtraOps->new('(abc)*&(def)*')->as_pfa(); -$PFA2 = FLAT::Regex::WithExtraOps->new('((abc+def)*(a((bca)*bc&(def)*)+a((bca)*&(def)*)bc+d((efd)*ef&(abc)*)+d((efd)*&(abc)*)ef)*)*')->as_pfa(); +# throws some weird warning from FA.pm when mimimizing, but passes still +#$PFA1 = FLAT::Regex::WithExtraOps->new('(abc)*&(def)*')->as_pfa(); +#$PFA2 = FLAT::Regex::WithExtraOps->new('((abc+def)*( +# a((bca)*bc&(def)*)+ +# a((bca)*&(def)*)bc+ +# d((efd)*ef&(abc)*)+ +# d((efd)*&(abc)*)ef +# )*)*')->as_pfa(); +#$DFA1 = $PFA1->as_nfa->as_min_dfa; +#$DFA2 = $PFA2->as_nfa->as_min_dfa; +# is( ($DFA1->equals($DFA2)), 1); + +# w*x&w*y +$PFA1 = FLAT::Regex::WithExtraOps->new('(abc)*dx&(efg)*hy')->as_pfa(); #<--! +$PFA2 = FLAT::Regex::WithExtraOps->new('(abc+efg)*( + dx&(efg)*hy+ + hy&(abc)*dx+ + a(((bca)*bcdx)&((efg)*hy))+ + a(((bca)*)&((efg)*hy))bcdx+ + e(((fge)*fghy)&((abc)*dx))+ + e(((fge)*)&((abc)*dx))fghy + )')->as_pfa(); + $DFA1 = $PFA1->as_nfa->as_min_dfa; $DFA2 = $PFA2->as_nfa->as_min_dfa; -ok( ($DFA1->equals($DFA2)) ); +is( ($DFA1->equals($DFA2)), 1); + +__END__ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |