setName('searchengine:query:sample') ->setDescription('Generate sample queries from grammar') ; } protected function doExecute(InputInterface $input, OutputInterface $output) { $grammarPath = $this->container['query_parser.grammar_path']; $output->writeln(sprintf('Generating sample queries from %s', $grammarPath)); $output->writeln(str_repeat('-', 20)); $parser = $this->container['query_parser']; // UNIFORM // $sampler = new \Hoa\Compiler\Llk\Sampler\Uniform( // $parser, // new \Hoa\Regex\Visitor\Isotropic(new \Hoa\Math\Sampler\Random()), // 7 // ); // for($i = 0; $i < 10; ++$i) { // $output->writeln(sprintf('%d => %s', $i, $sampler->uniform())); // } // BOUNDED EXAUSTIVE $sampler = new \Hoa\Compiler\Llk\Sampler\BoundedExhaustive( $parser, new \Hoa\Regex\Visitor\Isotropic(new \Hoa\Math\Sampler\Random()), 6 ); // COVERAGE // $sampler = new \Hoa\Compiler\Llk\Sampler\Coverage( // $parser, // new \Hoa\Regex\Visitor\Isotropic(new \Hoa\Math\Sampler\Random()) // ); foreach($sampler as $i => $data) { $output->writeln(sprintf('%d => %s', $i, $data)); } $output->writeln(str_repeat('-', 20)); } }