/**
  * Loads rules
  *
  * @return array
  */
 protected function getRules()
 {
     if ($this->compiledRules === null) {
         $rules = array();
         foreach ($this->ruleFiles as $file) {
             $rules = array_merge($rules, $this->parser->parse($file));
         }
         $this->compiledRules = $this->compiler->compile($rules);
     }
     return $this->compiledRules;
 }
 /**
  * @dataProvider getTestFiles
  */
 public function testParse($file)
 {
     $parser = new Search\TransformationProcessor\DefinitionBased\Parser(self::getInstallationDir());
     $fixture = (include $file . '.result');
     $this->assertEquals($fixture, $parser->parse(str_replace(self::getInstallationDir(), '', $file)));
 }
 public function testCompileModuloTranspose()
 {
     $parser = new Search\TransformationProcessor\DefinitionBased\Parser(self::getInstallationDir());
     $compiler = new Search\TransformationProcessor\PcreCompiler(new Search\Utf8Converter());
     $rules = $compiler->compile($parser->parseString("transpose_modulo_test:\n" . "U+00e0 - U+00e6 % 02 - 01"));
     $this->assertSame('ßááããååçè', $this->applyTransformations($rules, 'àáâãäåæçè'));
 }