public function testConvertPaperExample()
 {
     // Example 2. Let W = {abccde, cccad, bfegg, bfehi}.
     $automaton = new slCountingSingleOccurenceAutomaton();
     $automaton->learn(array('a', 'b', 'c', 'c', 'd', 'e'));
     $automaton->learn(array('c', 'c', 'c', 'a', 'd'));
     $automaton->learn(array('b', 'f', 'e', 'g', 'g'));
     $automaton->learn(array('b', 'f', 'e', 'h', 'i'));
     $converter = new slChareConverter();
     $regexp = $converter->convertAutomaton($automaton);
     $this->assertEquals(new slRegularExpressionSequence(new slRegularExpressionRepeatedAtLeastOnce(new slRegularExpressionChoice(new slRegularExpressionElement('a'), new slRegularExpressionElement('b'), new slRegularExpressionElement('c'))), new slRegularExpressionChoice(new slRegularExpressionElement('d'), new slRegularExpressionElement('f')), new slRegularExpressionOptional(new slRegularExpressionElement('e')), new slRegularExpressionRepeated(new slRegularExpressionElement('g')), new slRegularExpressionOptional(new slRegularExpressionElement('h')), new slRegularExpressionOptional(new slRegularExpressionElement('i'))), $regexp);
 }
 public function testLearnAll()
 {
     $automaton = new slCountingSingleOccurenceAutomaton();
     $automaton->learn(array('a', 'b', 'c'));
     $automaton->learn(array('a', 'c', 'b'));
     $automaton->learn(array('b', 'a', 'c'));
     $automaton->learn(array('b', 'c', 'a'));
     $automaton->learn(array('c', 'a', 'b'));
     $automaton->learn(array('c', 'b', 'a'));
     $converter = new slEChareConverter();
     $regexp = $converter->convertAutomaton($automaton);
     $this->assertEquals(new slRegularExpressionAll(new slRegularExpressionElement('a'), new slRegularExpressionElement('b'), new slRegularExpressionElement('c')), $regexp);
 }