|
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.
|