Package teamwork :: Package test :: Package action :: Module testDecisionSpace
[hide private]
[frames] | no frames]

Source Code for Module teamwork.test.action.testDecisionSpace

  1  from teamwork.action.PsychActions import * 
  2  from teamwork.action.DecisionSpace import * 
  3  import unittest 
  4   
5 -class TestDecisionSpace(unittest.TestCase):
6 - def setUp(self):
7 self.typeList = ['hold','inspect','pass']
8
9 - def testSpaces(self):
10 shippers = ['shipperA','shipperB'] 11 subSpace = DecisionSpace('type', 12 map(lambda x:DecisionSpace('type',[x], 13 branchType='literal'), 14 self.typeList), 15 branchType='XOR', 16 ) 17 actionList = subSpace.getOptions() 18 self.assertEqual(len(actionList),len(self.typeList)) 19 for value in self.typeList: 20 self.assert_([Action({'type':value})] in actionList) 21 22 space = DecisionSpace('object',map(lambda x:DecisionSpace('object',[x], 23 branchType='literal'),shippers),subSpace,'AND') 24 actionList = space.getOptions(True) 25 self.assertEqual(len(actionList),pow(len(self.typeList),len(shippers)))
26
27 - def verifySpace(self,space):
28 self.assertEqual(len(space.getOptions()),len(self.typeList)) 29 for action in space.getOptions(): 30 self.assertEqual(len(action),1) 31 for value in self.typeList: 32 for action in space.getOptions(): 33 if action[0]['type'] == value: 34 break 35 else: 36 self.fail()
37
38 - def DONTtestExtract(self):
39 self.typeList = ['hold','inspect','pass'] 40 values = map(lambda x:{'type':'literal','value':x},self.typeList) 41 parsedSpace = extractSpace({'type':'AND', 42 'key':'object', 43 'values':[{'type':'generic', 44 'value':'Shipper'}], 45 'base':{'type':'XOR', 46 'key':'type', 47 'values':values}}) 48 self.verifySpace(parsedSpace) 49 doc = parsedSpace.__xml__() 50 space = parseSpace(doc.documentElement) 51 self.verifySpace(space)
52
53 - def DONTtestOR(self):
54 space = DecisionSpace() 55 space.directAdd([Action({'actor':'Allies', 56 'type':'DenyUseAction', 57 'object':'Iraq'})]) 58 spec = {'type':'OR', 59 'values':[{'type':'decision', 60 'value':{'type':'XOR', 61 'key':'object', 62 'values':[{'type':'generic','value':'US'}], 63 'base': {'type':'XOR', 64 'key':'type', 65 'values':[{'type':'literal','value':'requestgiveMoneyTo'}, 66 {'type':'literal','value':'offernotax'}, 67 {'type':'literal','value':'reject'}, 68 {'type':'literal','value':'accept'}], 69 }, 70 }, 71 }, 72 {'type':'decision', 73 'value':{'type':'AND', 74 'key':'object', 75 'values':[{'type':'relationship','value':'ownMarket'}], 76 'base':{'type':'XOR', 77 'key':'type', 78 'values':[{'type':'literal','value':'tax'}, 79 {'type':'literal','value':'notax'}], 80 }, 81 }, 82 }, 83 ], 84 } 85 space = extractSpace(spec) 86 self.assertEqual(len(space.getOptions()),6)
87
88 - def DONTtestELECT(self):
89 space = extractSpace({'type':'OR', 90 'values':[{'type':'decision', 91 'value':{'type':'XOR', 92 'key':'object', 93 'values':[{'type':'generic','value':'US'}], 94 'base': {'type':'XOR', 95 'key':'type', 96 'values':[{'type':'literal','value':'requestgiveMoneyTo'}, 97 {'type':'literal','value':'offernotax'}, 98 {'type':'literal','value':'reject'}, 99 {'type':'literal','value':'accept'}], 100 }, 101 }, 102 }, 103 {'type':'decision', 104 'value':{'type':'AND', 105 'key':'object', 106 'values':[{'type':'relationship','value':'ownMarket'}], 107 'base':{'type':'XOR', 108 'key':'type', 109 'values':[{'type':'literal','value':'tax'}, 110 {'type':'literal','value':'notax'}], 111 }, 112 }, 113 }, 114 ], 115 }) 116 count = len(space.getOptions()) 117 doc = space.__xml__() 118 space = parseSpace(doc.documentElement) 119 self.assertEqual(len(space.getOptions()),count)
120
121 - def DONTtestTiger(self):
122 space = extractSpace({'type':'XOR', 123 'key':'type', 124 'values':[{'type':'literal','value':'openRight'}, 125 {'type':'literal','value':'openLeft'}, 126 {'type':'literal','value':'listen'}, 127 ], 128 }) 129 self.assertEqual(len(space.getOptions()),3)
130 131 if __name__ == '__main__': 132 unittest.main() 133