Пример #1
0
 def test_emit_mass_stored_3(self):
     """
     Corner case: emitting 0 mass does not affect mass stored.
     """
     emitter = MarbleEmitter(self.__mock_prototype, 0, stored_mass=13)
     emitter.emit()
     self.assertEqual(emitter._Emitter__stored_mass.item(), 13)
Пример #2
0
 def test_emit_mass_stored_2(self):
     """
     Base case: emitting negative mass increases mass stored.
     """
     emitter = MarbleEmitter(MockPrototype(-1), 0, stored_mass=-1)
     emitter.emit()
     self.assertEqual(emitter._Emitter__stored_mass.item(), 0)
Пример #3
0
 def test_delay_2(self):
     """
     Base case: cannot emit right after previous emit, when delay > 0.
     """
     delay = 10
     emitter = MarbleEmitter(self.__mock_prototype, delay)
     emitter.register_time_passed(delay)
     emitter.emit()
     self.assertFalse(emitter.can_emit())
Пример #4
0
 def test_emit_mass_stored_1(self):
     """
     Base case: emitting positive mass decreases mass stored.
     """
     emitter = MarbleEmitter(self.__massfull_prototype,
                             0,
                             stored_mass=self.__mass)
     emitter.emit()
     self.assertEqual(emitter._Emitter__stored_mass.item(), 0)
Пример #5
0
 def test_delay_3(self):
     """
     Base case: can emit second time after enough time passed.
     """
     delay = 10
     emitter = MarbleEmitter(self.__mock_prototype, delay)
     emitter.register_time_passed(delay)
     emitter.emit()
     emitter.register_time_passed(delay)
     self.assertTrue(emitter.can_emit())
Пример #6
0
 def test_emit_massfull_3(self):
     """
     Base case: can emit negative massfull Marble when negative mass stored.
     (Should not raise any errors)
     """
     neg_mass_prototype = MockPrototype(-1)
     emitter = MarbleEmitter(neg_mass_prototype, 0, stored_mass=-1)
     try:
         emitter.emit()
     except:
         self.fail("Operation should not raise errors")
Пример #7
0
 def test_emit_massfull_2(self):
     """
     Base case: can emit massfull Marble when sufficient mass stored.
     """
     emitter = MarbleEmitter(self.__massfull_prototype,
                             0,
                             stored_mass=self.__mass)
     try:
         emitter.emit()
     except:
         self.fail("Operation should not raise errors")
Пример #8
0
 def test_emit_1(self):
     """
     Corner case: throw error when trying to emit 
     too early after previous emit.
     """
     delay = 10
     emitter = MarbleEmitter(self.__mock_prototype, delay)
     emitter.register_time_passed(delay)
     emitter.emit()
     emitter.register_time_passed(delay / 2)
     self.assertRaises(RuntimeError, emitter.emit)
Пример #9
0
 def test_emit_output_type(self):
     """
     Output should be a EmittedMarble, not just a normal Marble.
     """
     prototype = Marble(ZERO, ZERO, ZERO, 0, None, None)
     delay = 0
     emitter = MarbleEmitter(prototype, delay)
     output = emitter.emit()
     self.assertIsInstance(output, EmittedMarble)