def testNonIntegerMovement(self): gameMap = GameMap(1000) gameObject = GameObject([1, 0], 'drone', 'owen') gameObject.velocity = [-0.5, 0] gameMap.addObject(gameObject) gameMap.update() self.assertEqual(gameObject.loc, [0.5, 0])
def testAddObject(self): gameMap = GameMap(100) #Testing a valid Game Object validGameObject = GameObject([0,0], 'drone', 'owen') self.assertTrue(gameMap.addObject(validGameObject)) #Testing an invalid Game Object invalidGameObject = GameObject([gameMap.size[0], 0], 'beacon', 'charter') self.assertFalse(gameMap.addObject(invalidGameObject)) dupeGameObject = GameObject([0,0], 'beacon', 'owen') self.assertTrue(gameMap.addObject(dupeGameObject)) self.assertEqual(len(gameMap.gameObjects['owen']), 2)
def testAddObject(self): gameMap = GameMap(2) #Testing a valid Game Object validGameObject = GameObject([0,0], 'drone', 'owen') self.assertTrue(gameMap.addObject(validGameObject)) #Testing an invalid Game Object invalidGameObject = GameObject([gameMap.size[0], 0], 'beacon', 'charter') self.assertFalse(gameMap.addObject(invalidGameObject)) dupeGameObject = GameObject([0,0], 'beacon', 'owen') self.assertTrue(gameMap.addObject(dupeGameObject)) self.assertEqual(len(gameMap.playerSortedObjectDict['owen']), 2) self.assertFalse(gameMap.addObject(dupeGameObject)) #Testing that too many game objects cannot be added
def testVectorMoveWithoutCollision(self): gameMap = GameMap(1000) gameObject = GameObject([0, 0], 'drone', 'owen') gameObject.velocity = [1, 2] gameObject.acceleration = [-1, -1] gameMap.addObject(gameObject) gameMap.update() self.assertEqual(gameObject.loc, [1,2]) gameMap.update() self.assertEqual(gameObject.loc, [1, 3]) gameMap.update() self.assertEqual(gameObject.loc, [0, 3]) gameMap.update() #Here, instead of going negative, the vectorMovementWithoutCollision function does nothing self.assertEqual(gameObject.loc, [0, 3])
def testID(self): gameMap = GameMap(100) for i in range(10): gameMap.addObject(GameObject([0,0], 'drone', 'owen')) self.assertEqual(gameMap.gameObjects[i].ID, 'owen-drone-' + str(i)) #Testing successful ID assignment gameMap.addObject(GameObject([0,0], 'beacon', 'owen')) self.assertEqual(gameMap.playerSortedObjectDict['owen'][0].ID, 'owen-drone-0') #Testing successful '0' ID assignment self.assertTrue(gameMap.removeObject('owen-drone-2')) #Testing successful removal of an object self.assertIsNone(gameMap.getObject('owen-drone-2')) #Testing that the object was indeed removed self.assertIsNotNone(gameMap.getObject('owen-drone-3')) #Testing that another object that was added indeed exists gameMap.addObject(GameObject([1, 1], 'drone', 'owen')) self.assertIsNotNone(gameMap.getObject('owen-drone-2')) #Testing that, after adding a new relevant game object, the old ID=2 has been re-used
if(time.time() - currentTime > tickFreq): #10 ticks per second. This number can be changed as necessary tick() tickCount += 1 currentTime = time.time() # if currentTime - startTime > 10: break #quick line to time out the code after 10 seconds print("Game loop has been terminated.") def tick(): gameMap.update() #tick process: #Take human input #Introduce new game pieces #update all game pieces #START TEST CODE if __name__ == '__main__': thr = threading.Thread(target=runGame, args=(), kwargs={}) thr.start() myObject = GameObject([0,0], 'drone', 'owen') myObject.velocity = [1, 0] gameMap.addObject(myObject) while True: flatGameMap = [] for i in gameMap.gameObjects: flatGameMap.append(i.__dict__) print(flatGameMap) time.sleep(.1) #END TEST CODE
def testRemoveObject(self): gameMap = GameMap(2) gameMap.addObject(GameObject([0,0], 'drone', 'owen')) self.assertTrue(gameMap.removeObject('owen-drone-0')) self.assertEqual(len(gameMap.gameObjects), 0) #Testing the length of the unsorted gameObjects list self.assertListEqual(gameMap.playerSortedObjectDict['owen'], [])