📄 unit.t.svn-base
字号:
#: unit.t#: unit tests for re::DFA::Minuse strict;use warnings;use Set::Scalar;use re::Graph;use Test::More tests => 8;BEGIN { use_ok('re::DFA::Min'); }*split_set = \&re::DFA::Min::split_set;sub fmt { my @s; for my $set (@_) { push @s, '(' . join(' ',sort @$set) . ')'; } @s = sort @s; local $" = " "; "@s";}###################my $g = re::Graph->build( <<_EOC_ );entry: 1exit: 41,5: a2,5: a3,6: a1,2: b2,3: b3,1: b_EOC_my $alph = $g->weight_list;my $set1 = [1,2,3];my $set2 = [5,6];my $set3 = [4];my $level = [$set1, $set2, $set3];my @sets = split_set($set1, $level, $g, $alph);is( fmt(@sets), '(1 2 3)', 'no split happened' );###################$g = re::Graph->build( <<_EOC_ );entry: 1exit: 41,5: a2,5: a3,6: a1,2: b2,3: b3,5: b_EOC_@sets = split_set($set1, $level, $g, $alph);is fmt(@sets), "(1 2) (3)", '(1 2 3) splits to (1 2) and (3)';###################$g = re::Graph->build( <<_EOC_ );entry: 1exit: 41,5: a2,5: a3,6: a_EOC_@sets = split_set($set1, $level, $g, $alph);is fmt(@sets), "(1 2 3)", 'no splits happen';###################$g = re::Graph->build( <<_EOC_ );entry: 1exit: 41,5: a2,5: a3,6: a1,4: b2,3: b3,5: b_EOC_@sets = split_set($set1, $level, $g, $alph);is fmt(@sets), "(1) (2) (3)", '(1 2 3) splits to (1), (2) and (3)';###################$g = re::Graph->build( <<_EOC_ );entry: 1exit: 41,5: a2,5: a3,6: a5,6: b_EOC_@sets = split_set($set1, $level, $g, $alph);is fmt(@sets), "(1 2 3)", 'no splits happen';###################$g = re::Graph->build( <<_EOC_ );entry: 1exit: 41,5: a2,5: a3,6: a1,3: b3,3: b_EOC_@sets = split_set($set1, $level, $g, $alph);is fmt(@sets), "(1 3) (2)", '(1 2 3) splits to (1 3) and (2) (error state distinguishes';$g = re::Graph->build( <<_EOC_ );entry: 1exit: 1_EOC_@sets = split_set([1], [[],[1]], $g, []);is fmt(@sets), "(1)", '(1) remains';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -