class DMEventHandlerTests(unittest.TestCase): def setUp(self): self.se = SimulationEngine() self.se.prng = np.random.RandomState(0) self.dmeh = DMEventHandler(self.se) self.dmeh.interarrival_rate = 0.5 self.dmeh.duration = 2.5 def test_init(self): self.assertEqual(self.dmeh.interarrival_rate, 0.5) self.assertEqual(self.dmeh.duration, 2.5) def test_generate_sr_event(self): event_time = 1.5 event = self.dmeh._generate_sr_event(event_time) prng = np.random.RandomState(0) bundle = (float(prng.choice(self.dmeh._w_space, 1)[0]), prng.choice(list(DMEventHandler.BITRATES.keys()), 1)[0]) self.assertEqual(event.identifier, DMEventHandler.SR_EVENT) self.assertGreater(event.time, event_time) self.assertIsInstance(event.kwargs.get('bundle', None), tuple) self.assertIn(event.kwargs.get('bundle', None)[0], self.dmeh._w_space) self.assertIn(event.kwargs.get('bundle', None)[1], DMEventHandler.BITRATES.keys()) def test_generate_st_event(self): event_time = 1.5 event = self.dmeh._generate_st_event(event_time, None) self.assertEqual(event.identifier, DMEventHandler.ST_EVENT) self.assertGreater(event.time, event_time) self.assertEqual(event.kwargs.get('bundle', None), None) def test_select_winner(self): bidders = [ Bidder(10000, costs={DMEventHandler.WEB_BROWSING: 0.75}, bidding_params={'method':'myopic'}, reputation=0.25, reputation_params={'method':'lebodic', 'window_size':5}), Bidder(10000, costs={DMEventHandler.WEB_BROWSING: 0.25}, bidding_params={'method':'myopic'}, reputation=0.75, reputation_params={'method':'lebodic', 'window_size':5})] self.dmeh.bidders = bidders self.assertEqual(self.dmeh._select_winner(DMEventHandler.WEB_BROWSING, 0.5), bidders[1]) self.assertEqual(self.dmeh._select_winner(DMEventHandler.WEB_BROWSING, 0.25), bidders[0]) self.assertEqual(self.dmeh._select_winner(DMEventHandler.WEB_BROWSING, 0.75), bidders[1])
def setUp(self): self.se = SimulationEngine() self.se.prng = np.random.RandomState(0) self.dmeh = DMEventHandler(self.se) self.dmeh.interarrival_rate = 0.5 self.dmeh.duration = 2.5