def test_push_decimal_2(self):
     source = s.push_decimal(-3.5)
     sim = BfSim(source)
     while not sim.is_stopped():
         sim.run(10000)
     self.assertAlmostEqual(self.getFloat(sim, 0), -3.5)
     self.assertEqual(sim.pointer, 4)
 def test_sub_byte_1(self):
     source = c.block_of(s.push_byte(3), s.push_byte(2), s.sub_byte())
     sim = BfSim(source)
     while not sim.is_stopped():
         sim.run(10000)
     self.assertAlmostEqual(self.getByte(sim, 0), 1)
     self.assertEqual(sim.pointer, 4)
 def test_push_byte_1(self):
     source = s.push_byte(3)
     sim = BfSim(source)
     while not sim.is_stopped():
         sim.run(10000)
     self.assertEqual(self.getByte(sim, 0), 3)
     self.assertEqual(sim.pointer, 4)
 def test_sub_decimal_2(self):
     source = c.block_of(s.push_decimal(3.5), s.push_decimal(-4.25),
                         s.sub_decimal())
     sim = BfSim(source)
     while not sim.is_stopped():
         sim.run(10000)
     self.assertAlmostEqual(self.getFloat(sim, 0), 7.75)
     self.assertEqual(sim.pointer, 4)
 def test_add_decimal_6(self):
     source = c.block_of(s.push_decimal(-4.5), s.push_decimal(4.5),
                         s.add_decimal())
     sim = BfSim(source)
     while not sim.is_stopped():
         sim.run(10000)
     self.assertAlmostEqual(self.getFloat(sim, 0), 0.0)  # TODO -0.0
     self.assertAlmostEqual(self.getFloat(sim, 4), 0.0)
     self.assertEqual(sim.pointer, 4)
 def test_top_minus_second_1(self):
     source = c.block_of(s.push_decimal(-0.5), s.push_decimal(2.25),
                         s._top_minus_second())
     sim = BfSim(source)
     while not sim.is_stopped():
         sim.run(10000)
     self.assertAlmostEqual(self.getFloat(sim, 0), 1.75)
     self.assertAlmostEqual(self.getFloat(sim, 4), 0.0)
     self.assertEqual(sim.pointer, 8)
 def test_if_top_decimal_is_nz_then_override_2(self):
     source = c.block_of(s.push_decimal(0.5), s.push_decimal(0.0),
                         s._if_top_decimal_is_nz_then_override())
     sim = BfSim(source)
     while not sim.is_stopped():
         sim.run(10000)
     self.assertAlmostEqual(self.getFloat(sim, 0), 0.5)
     self.assertAlmostEqual(self.getFloat(sim, 4), 0.0)
     self.assertEqual(sim.pointer, 8)
 def test_if_nz_int_swap_2(self):
     source = c.block_of(s.push_decimal(-0.5), s.push_decimal(2.25),
                         s._if_nz_int_swap())
     sim = BfSim(source)
     while not sim.is_stopped():
         sim.run(10000)
     self.assertAlmostEqual(self.getFloat(sim, 0), -0.5)
     self.assertAlmostEqual(self.getFloat(sim, 4), 2.25)
     self.assertEqual(sim.pointer, 8)
 def test_dec_both_abs_decimal_3(self):
     source = c.block_of(s.push_decimal(0.5), s.push_decimal(0.5),
                         s._dec_both_abs_decimal())
     sim = BfSim(source)
     while not sim.is_stopped():
         sim.run(10000)
     self.assertAlmostEqual(self.getFloat(sim, 0), 0.0)
     self.assertAlmostEqual(self.getFloat(sim, 4), 0.0)
     self.assertEqual(sim.pointer, 8)
 def test_multi_decimal_1(self):
     source = c.block_of(s.push_decimal(2.0), s.push_decimal(-4.25),
                         s.multi_decimal())
     sim = BfSim(source)
     while not sim.is_stopped():
         sim.run(10000)
     self.assertAlmostEqual(self.getFloat(sim, 0), -8.5)
     self.assertAlmostEqual(self.getFloat(sim, 4), 0.0)
     self.assertAlmostEqual(self.getFloat(sim, 8), 0.0)
     self.assertEqual(sim.pointer, 4)
 def test_multi_data_tricky_1(self):
     source = c.multi_data_tricky(source1=1, source2=3, pos=5, digit=2)
     sim = BfSim(source)
     sim.memory[1] = 100
     sim.memory[3] = 100
     sim.memory[4] = 0
     sim.memory[5] = 0
     while not sim.is_stopped():
         sim.run(10000)
     self.assertEqual(sim.memory[4], 39)
     self.assertEqual(sim.memory[5], 16)
 def test_xor_sign_4(self):
     source = c.block_of(s.push_decimal(2.0), s.push_decimal(4.25),
                         s._xor_sign())
     sim = BfSim(source)
     while not sim.is_stopped():
         sim.run(10000)
     self.assertEqual(sim.memory[8 + s.IDX_DMY], 0)
     self.assertEqual(sim.memory[8 + s.IDX_INT], 0)
     self.assertEqual(sim.memory[8 + s.IDX_DEC], 0)
     self.assertEqual(sim.memory[8 + s.IDX_SGN], 0)
     self.assertEqual(sim.memory[12], 0)
     self.assertEqual(sim.pointer, 8)
 def test_if_nz_decimal_3(self):
     source = c.block_of(
         s.push_decimal(0.0),
         s.if_nz_decimal(
             then_statement=s.push_byte(ord('N')) + s.put_char(),
             else_statement=s.push_byte(ord('Z')) + s.put_char()))
     out = io.StringIO()
     sim = BfSim(source, stdout=out)
     while not sim.is_stopped():
         sim.run(10000)
     self.assertEqual(out.getvalue(), "Z")
     self.assertAlmostEqual(self.getFloat(sim, 0), 0.0)
     self.assertAlmostEqual(self.getFloat(sim, 4), 0.0)
     self.assertEqual(sim.pointer, 0)