def test_unload(self): "Test unload of architecture" interface = Interface() retMsg = interface.load({'filepath':TEST_ARCH_PATH}) self.assertEqual(retMsg,{'status':True}) retMsg = interface.unload() self.assertEqual(retMsg,{'status':True})
def test_program(self): "Test program function for a valid architecture" interface = Interface() retMsg = interface.load({'filepath':TEST_ARCH_PATH}) self.assertEqual(retMsg,{'status':True}) retMsg = interface.handle_component_msg({'inspect':['memory']}) self.assertEqual(len(retMsg['memory']['state']),0) retMsg = interface.program({'filepath':TEST_PROGRAM_PATH,'memory':'memory'}) self.assertTrue(retMsg['memory']['success']) retMsg = interface.handle_component_msg({'inspect':['memory']}) self.assertNotEqual(len(retMsg['memory']['state']),0)
def test_step(self): "Test architecture clock step" interface = Interface() retMsg = interface.load({'filepath':TEST_ARCH_PATH}) self.assertEqual(retMsg,{'status':True}) retMsg = interface.handle_component_msg({'inspect':['q']}) value_1 = retMsg['q']['state'] retMsg = interface.step({'type':'logic'}) self.assertEqual(retMsg,({'status':True})) retMsg = interface.handle_component_msg({'inspect':['q']}) value_2 = retMsg['q']['state'] self.assertNotEqual(value_1,value_2)
def test_handle_component_msg(self): "Test architecture hook API router" interface = Interface() retMsg = interface.load({'filepath':TEST_ARCH_PATH}) self.assertEqual(retMsg,{'status':True}) retMsg = interface.handle_component_msg({'inspect':['q']}) self.assertIn('q',retMsg) retMsg = interface.handle_component_msg({ 'modify' : { 'name' : 'memory', 'parameters' : { 'start' : 0, 'data' : [10,20,30,40,50,60,70,80] } } }) self.assertTrue(retMsg['memory']['success']) retMsg = interface.handle_component_msg({'inspect':['memory']}) self.assertEqual(retMsg['memory']['state'][7],80) retMsg = interface.handle_component_msg({'clear' : ['memory']}) self.assertTrue(retMsg['memory']['success']) retMsg = interface.handle_component_msg({'inspect':['memory']}) self.assertEqual(len(retMsg['memory']['state']),0) retMsg = interface.handle_component_msg({'inspect':['const']}) value_1 = retMsg['const']['state'] retMsg = interface.handle_component_msg({ 'generate' : { 'name' : 'const', 'parameters' : { 'state' : value_1 + 1 } } }) self.assertTrue(retMsg['const']['success']) retMsg = interface.handle_component_msg({'inspect':['const']}) value_2 = retMsg['const']['state'] self.assertNotEqual(value_1,value_2)