def test_limit(self): r = RPN() assert r.calc('1 1 10 LIMIT') == 1 assert r.calc('10 1 10 LIMIT') == 10 assert r.calc('0 1 10 LIMIT') is None assert r.calc('-1 1 10 LIMIT') is None assert r.calc('100 1 10 LIMIT') is None
def test_basic_vars(self): r = RPN() assert r.calc('foo bar +', { 'foo': 2, 'bar': 3 }) == 5
def test_multiple(self): r = RPN() assert r.calc('2 3 + 4 *') == 20
def test_complex(self): r = RPN() assert r.calc('3 4 2 * 1 5 - 2 3 ^ ^ / +') == 3.0001220703125
def test_less_than(self): r = RPN() self._assert_result(r.calc('1 2 LT')) self._assert_result(r.calc('2 2 LT'), False) self._assert_result(r.calc('3 2 LT'), False)
def test_if(self): r = RPN() assert r.calc('1 2 3 IF') == 2 assert r.calc('0 2 3 IF') == 3
def test_not_equal(self): r = RPN() self._assert_result(r.calc('2 1 NE')) self._assert_result(r.calc('2 2 NE'), False)
def test_equal(self): r = RPN() self._assert_result(r.calc('2 2 EQ')) self._assert_result(r.calc('2 1 EQ'), False)
def test_greater_than_or_equal(self): r = RPN() self._assert_result(r.calc('2 1 GE')) self._assert_result(r.calc('2 2 GE')) self._assert_result(r.calc('2 3 GE'), False)
def test_greater_than(self): r = RPN() self._assert_result(r.calc('2 1 GT')) self._assert_result(r.calc('2 2 GT'), False) self._assert_result(r.calc('2 3 GT'), False)
def test_less_than_or_equal(self): r = RPN() self._assert_result(r.calc('1 2 LE')) self._assert_result(r.calc('2 2 LE')) self._assert_result(r.calc('3 2 LE'), False)
def test_min(self): r = RPN() assert r.calc('1 2 MIN') == 1 assert r.calc('3 2 MIN') == 2
def test_max(self): r = RPN() assert r.calc('1 2 MAX') == 2 assert r.calc('3 2 MAX') == 3