예제 #1
0
 public function testCalculate()
 {
     $rpn = new RPN();
     $expression = array('2', '1', '+', '3', '*', '4', '7', '4', '+', '*', '-');
     $result = $rpn->calculate($expression);
     $this->assertEquals(-35, $result);
     $expression = array('3', '4', '+', '8', '3', '2', '*', '*', '+');
     $result = $rpn->calculate($expression);
     $this->assertEquals(55, $result);
     $expression = array('2', '3', '+', '5', '1', '*', '-');
     $result = $rpn->calculate($expression);
     $this->assertEquals(0, $result);
     $expression = array('1', '3', '*', '5', '2', '*', '+', '3', '-');
     $result = $rpn->calculate($expression);
     $this->assertEquals(10, $result);
     $expression = array('2', '3', '+', '2', '1', '-', '*', '3', '+');
     $result = $rpn->calculate($expression);
     $this->assertEquals(8, $result);
     $expression = array('3', '5', '-');
     $result = $rpn->calculate($expression);
     $this->assertEquals(-2, $result);
     $expression = array('0', '1', '-', '2', '1', '-', '*');
     $result = $rpn->calculate($expression);
     $this->assertEquals(-1, $result);
 }
예제 #2
0
 private function calculateRPN($rpnData)
 {
     $rpn = new RPN();
     return $rpn->calculate($rpnData);
 }