コード例 #1
0
 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()));
 }
コード例 #2
0
 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));
 }