public function testBadCreate() { $s1 = new State('s1'); $t1 = new Transition('t1', 's1', 's2'); $fsm1 = new Fsm('fsm1'); $fsm1->addState($s1)->addTransition($t1); $this->assertCount(1, $fsm1->getStates()); $this->assertCount(1, $fsm1->getTransitions()); $this->assertCount(0, $fsm1->getInitialStates()); $this->assertCount(0, $fsm1->getFinalStates()); $this->assertNull($fsm1->getStateByName('s4')); $this->assertNull($fsm1->getStateByName('')); $this->assertNotNull($fsm1->getTransitionByName('t1')); $this->assertNull($fsm1->getTransitionByName('t31')); $this->assertNull($fsm1->getTransitionByName('')); }
private function getNewValidFsm() { $s1 = new State('s1', true); $s2 = new State('s2'); $s3 = new State('s3'); $s4 = new State('s4'); $s5 = new State('s5'); $s6 = new State('s6'); $s7 = new State('s7', false, true); $s8 = new State('s8', false, true); $t1 = new Transition('t1', 's1', 's2'); $t2 = new Transition('t2', 's1', 's3'); $t3 = new Transition('t3', 's2', 's1'); $t4 = new Transition('t4', 's3', 's4'); $t5 = new Transition('t5', 's4', 's5'); $t6 = new Transition('t6', 's5', 's7'); $t7 = new Transition('t7', 's5', 's6'); $t8 = new Transition('t8', 's6', 's8'); $fsm1 = new Fsm('fsm1'); $fsm1->addState($s1)->addState($s2)->addState($s3)->addState($s4)->addState($s5)->addState($s6)->addState($s7)->addState($s8)->addTransition($t1)->addTransition($t2)->addTransition($t3)->addTransition($t4)->addTransition($t5)->addTransition($t6)->addTransition($t7)->addTransition($t8); return $fsm1; }