def __init__(self, env, serializer): self._env = env self._serializer = serializer self._input_channel = channels.InputChannel(serializer) self._output_channel = channels.OutputChannel(serializer) self.cum_reward = 0 self.init()
def testInputSerialization(self): slzr = serializer.StandardSerializer() ic = channels.InputChannel(slzr) test_string = 'my message' serialized_test_string = slzr.to_binary(test_string) def all_good(input_message): self.assertEqual(test_string[:len(input_message)], input_message) ic.message_updated.register(all_good) for b in serialized_test_string: ic.consume(b)
def testConsistency(self): slzr = serializer.StandardSerializer() ic = channels.InputChannel(slzr) oc = channels.OutputChannel(slzr) test_string = 'my message' def all_good(input_message): self.assertEqual(test_string[:len(input_message)], input_message) oc.set_message(test_string) ic.message_updated.register(all_good) while not oc.is_empty(): b = oc.consume() ic.consume(b)
def testSilenceConsistency(self): slzr = serializer.StandardSerializer() ic = channels.InputChannel(slzr) oc = channels.OutputChannel(slzr) test_string = slzr.SILENCE_TOKEN * 10 something_read = [0] def all_good(input_message): something_read[0] = len(input_message) self.assertEqual(test_string[:len(input_message)], input_message) oc.set_message(test_string) ic.message_updated.register(all_good) while not oc.is_empty(): b = oc.consume() ic.consume(b) self.assertEqual(something_read[0], len(test_string))
def testOverwrittingConsistency(self): slzr = serializer.StandardSerializer() ic = channels.InputChannel(slzr) oc = channels.OutputChannel(slzr) test_string = 'my message' # array because Python's scoping rules are demented: # http://stackoverflow.com/questions/4851463/python-closure-write-to-variable-in-parent-scope something_read = [0] def all_good(input_message): something_read[0] = len(input_message) self.assertEqual(test_string[:len(input_message)], input_message) oc.set_message("this shouldn't matter") oc.set_message(test_string) ic.message_updated.register(all_good) while not oc.is_empty(): b = oc.consume_bit() ic.consume_bit(b) self.assertEqual(something_read[0], len(test_string))