def test_basic(self): src = inline_src("<< 1 2 3; PEEKN << 0 3") c = parse(src) vm = exe(c) self.assertEqual(vm.data, [1, 2, 3, 1, 2, 3]) src = inline_src("<< 1 2 3; PEEKN << 0 3; POKEN << 1 3") c = parse(src) vm = exe(c) self.assertEqual(vm.data, [1, 1, 2, 3])
def test_simple(self): src = inline_src("AND << 1 1") self.assertEqual(get_result(src), 1) src = inline_src("AND << 1 0") self.assertEqual(get_result(src), 0) src = inline_src("AND << 0 1") self.assertEqual(get_result(src), 0) src = inline_src("AND << 0 0") self.assertEqual(get_result(src), 0) src = inline_src("OR << 1 1") self.assertEqual(get_result(src), 1) src = inline_src("OR << 1 0") self.assertEqual(get_result(src), 1) src = inline_src("OR << 0 1") self.assertEqual(get_result(src), 1) src = inline_src("OR << 0 0") self.assertEqual(get_result(src), 0)
def test_ints(self): src = inline_src("ADD << 1 2") self.assertEqual(get_result(src), 3) src = inline_src("MINUS << 3 2") self.assertEqual(get_result(src), 1) src = inline_src("MUL << 2 3") self.assertEqual(get_result(src), 6) src = inline_src("DIV << 6 3") self.assertEqual(get_result(src), 2) src = inline_src("DIV << 5 3") self.assertEqual(get_result(src), 1) src = inline_src("MOD << 5 3") self.assertEqual(get_result(src), 2) src = inline_src("ABS << -2") self.assertEqual(get_result(src), 2) src = inline_src("ABS << 2") self.assertEqual(get_result(src), 2)
def test_decimals(self): src = inline_src("ADD << 1.1 2.2") self.assertEqual(get_result(src), Decimal('3.3')) src = inline_src("MINUS << 3.3 2.2") self.assertEqual(get_result(src), Decimal('1.1')) src = inline_src("MUL << 0.5 2.0") self.assertEqual(get_result(src), Decimal('1.0')) src = inline_src("DIV << 2.0 0.5") self.assertEqual(get_result(src), 4) self.assertIsInstance(get_result(src), int) src = inline_src("MOD << 5.0 3.0") self.assertEqual(get_result(src), Decimal('2.0')) self.assertIsInstance(get_result(src), Decimal) src = inline_src("ABS << -2.1") self.assertEqual(get_result(src), Decimal('2.1')) src = inline_src("ABS << 2.1") self.assertEqual(get_result(src), Decimal('2.1'))
def test_simple(self): src = inline_src("BAND << 1 1") self.assertEqual(get_result(src), 1) src = inline_src("BAND << 1 0") self.assertEqual(get_result(src), 0) src = inline_src("BAND << 0 1") self.assertEqual(get_result(src), 0) src = inline_src("BAND << 0 0") self.assertEqual(get_result(src), 0) src = inline_src("BOR << 1 1") self.assertEqual(get_result(src), 1) src = inline_src("BOR << 1 0") self.assertEqual(get_result(src), 1) src = inline_src("BOR << 0 1") self.assertEqual(get_result(src), 1) src = inline_src("BOR << 0 0") self.assertEqual(get_result(src), 0) src = inline_src("BXOR << 0 0") self.assertEqual(get_result(src), 0) src = inline_src("BXOR << 0 1") self.assertEqual(get_result(src), 1) src = inline_src("BXOR << 1 0") self.assertEqual(get_result(src), 1) src = inline_src("BXOR << 1 1") self.assertEqual(get_result(src), 0) src = inline_src("BNOT << 1") self.assertEqual(get_result(src), -2) src = inline_src("BNOT << 0") self.assertEqual(get_result(src), -1) src = inline_src("BNOT << -3") self.assertEqual(get_result(src), 2)