def test_player_can_drop_out(self): #test that a player can go below active and drop out of the round start try: gs = GameStarter(2, 1.0, 2.0, 0.5) except Exception as e: self.fail('Exception during __init__') #One player pushes gs.push(0) #Wait for three seconds gs.timeStep(3.0) #player has peaked at 2 seconds, let go of the button gs.release(0) #1.5 seconds later and they should already be out gs.timeStep(1.5) self.assertEqual("OUT", gs.getState(0)) self.assertEqual(0.0, gs.getLevel(0))
def test_button_spam_filtering(self): #test that two players can start a game even when someone is button spamming try: gs = GameStarter(4, 1.0, 2.0, 0.5) except Exception as e: self.fail('Exception during __init__') #Both players push gs.push(0) gs.push(1) #Wait for 1.5 seconds (nearly there) gs.timeStep(1.5) #player three then spams gs.push(2) gs.timeStep(0.7) gs.release(2) gs.timeStep(0.5) #By now, shouldStart must be true and there should be 2 startable players self.assertTrue(gs.shouldStart()) self.assertEqual(2, gs.totalStartablePlayers()) #Do more buttom mashing to see if the filter still works after this gs.push(2) gs.timeStep(0.7) gs.release(2) gs.timeStep(0.5) gs.push(2) gs.timeStep(0.7) gs.release(2) gs.timeStep(0.5) #shouldStart must stil be true and there should still be 2 startable players self.assertTrue(gs.shouldStart()) self.assertEqual(2, gs.totalStartablePlayers())
def test_button_spam_filtering(self): #test that two players can start a game even when someone is button spamming try: gs = GameStarter(4, 1.0, 2.0) except Exception as e: self.fail('Exception during __init__') #Both players push gs.push(0) gs.push(1) #Wait for 1.5 seconds (nearly there) gs.timeStep(1.5) #player three then spams gs.push(2) gs.timeStep(0.7) gs.release(2) gs.timeStep(0.5) #By now, shouldStart must be true and there should be 2 startable players self.assertTrue(gs.shouldStart()) self.assertEqual(2, gs.totalStartablePlayers()) #Do more buttom mashing to see if the filter still works after this gs.push(2) gs.timeStep(0.7) gs.release(2) gs.timeStep(0.5) gs.push(2) gs.timeStep(0.7) gs.release(2) gs.timeStep(0.5) #shouldStart must stil be true and there should still be 2 startable players self.assertTrue(gs.shouldStart()) self.assertEqual(2, gs.totalStartablePlayers())
def test_dodgy_button(self): #test that a dodgy button that flickers on and off sometimes doesn't cause problems #this also simulates people who fail to keep their hand on the button persistently try: gs = GameStarter(2, 1.0, 20.0) #note 20 second start time on this one except Exception as e: self.fail('Exception during __init__') #Both players push gs.push(0) gs.push(1) #Wait for 1.5 seconds (nearly there)... gs.timeStep(1.5) #Player two goes dodgy gs.release(1) gs.timeStep(0.1) gs.push(1) gs.timeStep(0.3) gs.release(1) gs.timeStep(0.2) gs.push(1) gs.timeStep(0.7) gs.release(1) gs.timeStep(0.04) gs.push(1) gs.timeStep(10.8) gs.release(1) gs.timeStep(0.2) gs.push(1) gs.timeStep(0.7) gs.release(1) gs.timeStep(0.04) gs.push(1) gs.timeStep(20.0) #long one to make sure #shouldStart must be true and there should be 2 startable players self.assertTrue(gs.shouldStart()) self.assertEqual(2, gs.totalStartablePlayers())
def test_dodgy_button(self): #test that a dodgy button that flickers on and off sometimes doesn't cause problems #this also simulates people who fail to keep their hand on the button persistently try: gs = GameStarter(2, 1.0, 20.0, 0.5) #note 20 second start time on this one except Exception as e: self.fail('Exception during __init__') #Both players push gs.push(0) gs.push(1) #Wait for 1.5 seconds (nearly there)... gs.timeStep(1.5) #Player two goes dodgy gs.release(1) gs.timeStep(0.1) gs.push(1) gs.timeStep(0.3) gs.release(1) gs.timeStep(0.2) gs.push(1) gs.timeStep(0.7) gs.release(1) gs.timeStep(0.04) gs.push(1) gs.timeStep(10.8) gs.release(1) gs.timeStep(0.2) gs.push(1) gs.timeStep(0.7) gs.release(1) gs.timeStep(0.04) gs.push(1) gs.timeStep(20.0) #long one to make sure #shouldStart must be true and there should be 2 startable players self.assertTrue(gs.shouldStart()) self.assertEqual(2, gs.totalStartablePlayers())