/** * @test */ public function toArray() { $variant = new Variant(); $variant->setVariant('Variant1'); $variant->setPrOtvet(true); $arr_v = $variant->toArray(); $this->assertFalse(isset($arr_v['pr_otvet'])); $arr_v2 = $variant->toArray(false); $this->assertTrue(isset($arr_v2['pr_otvet'])); }
/** * @test */ public function import_arr() { $test = new Test(); $test->setAsk('Ask test'); $variant_1 = new Variant(); $variant_1->setVariant('Variant1'); $variant_1->setPrOtvet(true); $test->addVariant($variant_1); $variant_2 = new Variant(); $variant_2->setVariant('Variant2'); $variant_2->setPrOtvet(true); $test->addVariant($variant_2); $variant_3 = new Variant(); $variant_3->setVariant('Variant3'); $variant_3->setPrOtvet(false); $test->addVariant($variant_3); $arr = [$test, $test]; $test_xml = new TestImporter(); $xml = $test_xml->import_arr($arr); //print_r($xml); }
private function parseHTML($text, $start_line) { $arr = []; preg_match_all('/\\<p>(\\/?[^\\>]+)<\\/p\\>/', $text, $arr); $temp_line = 1; $start_test = 1; $flag = ''; $test_arr = []; foreach ($arr[1] as $key => $value) { $line = trim($value); if ($line) { if ($temp_line++ > $start_line) { if ($start_test == $line) { $start_test++; $flag = 'test'; $test = new Test(); array_push($test_arr, $test); } elseif ($line == "A" || $line == "B" || $line == "C" || $line == "D" || $line == "E") { $flag = 'variant'; $variant = new Variant(); } else { $line = str_replace(['’ ', '–', 'α'], ["'", '-', 'a'], $line); if ($flag == 'test') { $test->setAsk($test->getAsk() . ' ' . $line); } elseif ($flag == 'variant') { if ($line[0] == '*') { $line = substr($line, 1); $variant->setPrOtvet(true); } if ($line) { $variant->setVariant($line); $test->addVariant($variant); } } } } } } return $test_arr; }
public function removeVariant(Variant $variant) { $this->variants->removeElement($variant); }
public function testIsNotEquivalent() { $parserController = new ParserController(); $test1 = new Test(); $test1->setAsk('Ask test'); $variant1_1 = new Variant(); $variant1_1->setVariant('Variant1'); $variant1_1->setPrOtvet(true); $test1->addVariant($variant1_1); $variant1_2 = new Variant(); $variant1_2->setVariant('Variant2'); $variant1_2->setPrOtvet(true); $test1->addVariant($variant1_2); $variant1_3 = new Variant(); $variant1_3->setVariant('Variant3'); $variant1_3->setPrOtvet(false); $test1->addVariant($variant1_3); $test2 = new Test(); $test2->setAsk('Ask test'); $variant2_3 = new Variant(); $variant2_3->setVariant('Variant31'); $variant2_3->setPrOtvet(false); $test2->addVariant($variant2_3); $variant2_1 = new Variant(); $variant2_1->setVariant('Variant11'); $variant2_1->setPrOtvet(true); $test2->addVariant($variant2_1); $variant2_2 = new Variant(); $variant2_2->setVariant('Variant21'); $variant2_2->setPrOtvet(true); $test2->addVariant($variant2_2); $this->assertFalse($parserController->testIsEquivalent($test1, $test2)); }
public function createTestObj($html) { $test = new Test(); $test->setAsk($this->getAsk($html)); $variants = $this->getVariants($html); $right_id = $this->getRightVariantPos($html); foreach ($variants as $key => $value) { $variant = new Variant(); $variant->setVariant($value); if ($key == $right_id) { $variant->setPrOtvet(true); } $test->addVariant($variant); } return $test; }
private function parsePage(Crawler $crawler) { $questions = $crawler->filter('table.question'); $testsArr = $questions->each(function (Crawler $node, $i) { $test = new Test(); //1 set Ask $ask = utf8_decode($node->filter('div.question')->text()); $ask = preg_replace('/\\s+/', ' ', $ask); $ask = trim(preg_replace('/^[\\s]?[0-9]*/', '', $ask)); $test->setAsk($ask); $variants = $node->filter('.new_answer')->each(function (Crawler $node, $i) { $variant = new Variant(); $varStr = utf8_decode($node->text()); $varStr = preg_replace('/\\s+/', ' ', $varStr); $varStr = trim($varStr); $varStr = substr($varStr, 2); $varStr = trim($varStr); $variant->setVariant($varStr); $right = $node->attr('style'); if (!empty($right)) { $variant->setPrOtvet(true); } return $variant; }); $test->setVariants($variants); return $test; }); return $testsArr; }
/** * @test */ public function toArray() { $test = new Test(); $test->setAsk('Ask test'); $variant_1 = new Variant(); $variant_1->setVariant('Variant1'); $variant_1->setPrOtvet(true); $test->addVariant($variant_1); $variant_2 = new Variant(); $variant_2->setVariant('Variant2'); $variant_2->setPrOtvet(true); $test->addVariant($variant_2); $variant_3 = new Variant(); $variant_3->setVariant('Variant3'); $variant_3->setPrOtvet(false); $test->addVariant($variant_3); $arr_t2 = $test->toArray(false); $this->assertTrue($arr_t2['variants'][0]['variant'] == 'Variant1'); }