Esempio n. 1
0
class Test(unittest.TestCase):
	"""Currently tests Variable only with the AsnDmcEventSystem"""
	def setUp(self):
		self.pq = deque()
		self.es = AsnDmcEventSystem(self.pq)
		self.es.subscribe('p0', 0)
		self.es.subscribe('p1', 1)
		self.v = Variable([0,1,2,3], self.es)
		
	def testVariableInit(self):
		self.assertEquals(self.v._domain, set([0,1,2,3]))
		self.assertFalse(self.v.assigned)
		self.assertIs(self.v._eventSystem, self.es)
		
	def testRemoveFromDomain(self):
		self.v.removeFromDomain([0,1,3])
		
		self.assertEquals(self.v._domain, set([2]))
		self.assertTrue(self.v.assigned)
		
		self.assertTrue(len(self.pq) == 2)
		self.assertIn('p1', self.pq)
		self.assertIn('p0', self.pq)
Esempio n. 2
0
	def setUp(self):
		self.pq = deque()
		self.es = AsnDmcEventSystem(self.pq)
		self.es.subscribe('p0', 0)
		self.es.subscribe('p1', 1)
		self.v = Variable([0,1,2,3], self.es)
Esempio n. 3
0
class Test(unittest.TestCase):
	"""
	Currently tests only the AsnDmcEventSystem
	
	Tests only functionality. Need to test for exceptions, bad inputs, funny
	cases.
	"""
	def setUp(self):
		self.pq = deque()
		self.es = AsnDmcEventSystem(self.pq)

	def testAmcDmcInit(self):
		self.assertEquals(self.es._asn, [])
		self.assertEquals(self.es._asndmc, [])
		self.assertIs(self.es._pq, self.pq)
		
	def testAmcDmcSubscribe(self):
		self.es.subscribe('p1', 1)
		self.assertIn('p1', self.es._asndmc)
		self.es.subscribe('p0', 0)
		self.assertIn('p0', self.es._asn)
		self.es.subscribe('p2',1)
		self.es.subscribe('p2',0)
		self.assertIn('p2', self.es._asn)
		self.assertIn('p2', self.es._asndmc)

	def testAmcDmcCancel(self):
		self.es.subscribe('p1', 1)
		self.es.subscribe('p1', 0)
		self.es.cancel('p1', 1)
		self.assertNotIn('p1', self.es._asndmc)
		self.assertIn('p1', self.es._asn)
		self.es.cancel('p1', 0)
		self.assertNotIn('p1', self.es._asn)
		
	def testAmcDmcSchedule(self):
		self.es.subscribe('p1', 1)
		self.es.subscribe('p2', 1)
		self.es.subscribe('p0', 0)
		self.es.schedule(1)
		self.assertTrue(len(self.pq) == 3)
		self.assertIn('p1', self.pq)
		self.assertIn('p2', self.pq)
		self.assertIn('p0', self.pq)
		
		self.es.schedule(0)
		
		c = Counter(self.pq)
		self.assertTrue(len(self.pq) == 5)
		self.assertTrue(c['p1'] == 2)
		self.assertTrue(c['p2'] == 2)
		self.assertIn('p0', self.pq)
Esempio n. 4
0
	def setUp(self):
		self.pq = deque()
		self.es = AsnDmcEventSystem(self.pq)