public function testBuilder() { $pb = new \Fieg\PC\PropositionBuilder(); $a = new Atomic('a'); $b = new Atomic('b'); $c = new Atomic('c'); $d = new Atomic('d'); $e = new Atomic('e'); $f = new Atomic('f'); $g = new Atomic('g'); $kb = new \Fieg\PC\KnowledgeBase(); $kb->addProposition($pb->implies($a, $pb->andX($b, $c))); $kb->addProposition($b); $kb->addProposition($pb->andX($b, $c)); $kb->addProposition($pb->implies($pb->orX($pb->notX($a), $pb->andX($b, $c)), $pb->orX($pb->andX($d, $pb->notX($e)), $f))); $expected = array('a <- (b ^ c)', 'b', '(b ^ c)', '(¬(a) v (b ^ c)) <- ((d ^ ¬(e)) v f)'); $this->assertEquals($expected, array_map('strval', $kb->getPropositions())); }
public function testBuilder() { $pb = new \Fieg\PC\PropositionBuilder(); $a = new \Fieg\PC\Proposition\Atomic('a'); $b = new \Fieg\PC\Proposition\Atomic('b'); $this->assertInstanceOf('Fieg\\PC\\Proposition\\Implies', $pb->implies($a, $b)); $this->assertInstanceOf('Fieg\\PC\\Proposition\\AndX', $pb->andX($a, $b)); $this->assertInstanceOf('Fieg\\PC\\Proposition\\OrX', $pb->orX($a, $b)); $this->assertInstanceOf('Fieg\\PC\\Proposition\\Atomic', $pb->atom('thingy')); $this->assertInstanceOf('Fieg\\PC\\Proposition\\NotX', $pb->notX($a)); }