📄 testsimdata.py
字号:
# $Id: testsimdata.py,v 1.6 2002/02/18 10:49:39 marijn Exp $# An air traffic simulation game.# Copyright (C) 2000,1,2 Marijn Vriens <marijn@sanity.dhs.org>## This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2 of the License, or# (at your option) any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USAimport unittestimport simdataimport timeimport fakedatadef suite(): testsimdata = unittest.TestSuite() testsimdata.addTest(testSimData("add")) testsimdata.addTest(testSimData("delete")) testsimdata.addTest(testSimData("genIdlObjsEntryList")) testsimdata.addTest(testSimData("genIdlObjsLeaveList")) testsimdata.addTest(testSimData("reapDeleted")) entity = unittest.TestSuite() entity.addTest(testEntity("createdAfter")) entity.addTest(testEntity("markAsChanged")) entity.addTest(testEntity("changedAfter")) entity.addTest(testEntity("markAsDeleted")) entity.addTest(testEntity("deletedAfter")) entity.addTest(testEntity("deletedBefore")) position = unittest.TestSuite() position.addTest(test_Position("latitude")) position.addTest(test_Position("longitude")) position.addTest(test_Position("height")) position.addTest(test_Position("genIdlReduced")) vector = unittest.TestSuite() vector.addTest(test_Vector("speed")) vector.addTest(test_Vector("heading")) vector.addTest(test_Vector("heading_border")) vector.addTest(test_Vector("move")) vector.addTest(test_Vector("move_border")) vector.addTest(test_Vector("genIdlFull")) vector.addTest(test_Vector("genIdlReduced")) plane = unittest.TestSuite() plane.addTest(testPlane("update")) plane.addTest(testPlane("update_withOrder")) plane.addTest(testPlane("genIdlFull")) plane.addTest(testPlane("genIdlReduced")) suite = unittest.TestSuite() suite.addTest(testsimdata) suite.addTest(position) suite.addTest(vector) suite.addTest(entity) suite.addTest(plane) return suiteclass testSimData(unittest.TestCase): def setUp(self): self.obj = simdata.SimData() def add(self): o = fakeObj() p = fakeObj() self.obj.add(o) self.obj.add(p) assert(o.id != None) assert(o.id != p.id) def delete(self): o = simdata.Entity() self.obj.add(o) assert(len(self.obj.data) == 1) self.obj.delete(o.id) assert(len(self.obj.data) == 0) def genIdlObjsEntryList(self): t1 = time.time() o = simdata.Plane() t2 = time.time() p = simdata.Plane() self.obj.add(o) self.obj.add(p) r = self.obj.genIdlObjsEntryList(t1) assert(len(r) == 2) r = self.obj.genIdlObjsEntryList(t2) assert(len(r) == 1) r = self.obj.genIdlObjsEntryList(time.time()) assert(len(r) == 0) def genIdlObjsLeaveList(self): o = simdata.Plane() p = simdata.Plane() self.obj.add(o) self.obj.add(p) t1 = time.time() self.obj.delete(o.id) t2 = time.time() self.obj.delete(p.id) r = self.obj.genIdlObjsLeaveList(t1) assert(len(r) == 2) r = self.obj.genIdlObjsLeaveList(t2) assert(len(r) == 1) r = self.obj.genIdlObjsLeaveList(time.time()) assert(len(r) == 0) def reapDeleted(self): o = simdata.Entity() p = simdata.Entity() self.obj.add(o) self.obj.add(p) self.obj.delete(p.id) self.obj.delete(o.id) self.obj.reapDeleted(time.time()) class test_Position(unittest.TestCase): def setUp(self): self.obj = simdata._Position() def latitude(self): self.obj.latitude(10) assert(self.obj.latitude() == 10) try: self.obj.latitude(100) except("DataOutOfBounds"): pass else: self.fail("DataOutOfBounds exception expected") try: self.obj.latitude(-90.1) except("DataOutOfBounds"): pass else: self.fail("DataOutOfBounds exception expected") def longitude(self): self.obj.longitude(20) assert(self.obj.longitude() == 20) try: self.obj.longitude(200) except("DataOutOfBounds"): pass else: self.fail("DataOutOfBounds exception expected") try: self.obj.longitude(-180.01) except("DataOutOfBounds"): pass else: self.fail("DataOutOfBounds exception expected") def height(self): self.obj.height(30) assert(self.obj.height() == 30) def genIdlReduced(self): self.obj.latitude(20) self.obj.longitude(10) self.obj.height(30) r = self.obj.genIdlReduced() assert(r.__class__ == simdata.SimulationServer.Point) assert(r.lat == 20) assert(r.lon == 10) assert(r.vert== 30) class test_Vector(unittest.TestCase): def setUp(self): self.obj = simdata._Vector() def speed(self): self.obj.speed(10) assert(self.obj.speed() == 10) def heading(self): self.obj.heading(20) assert(self.obj.heading() == 20) def heading_border(self): self.obj.heading(370) assert(self.obj.heading() == 10) self.obj.heading(-90) assert(self.obj.heading() == 270) def move(self): self.obj.heading(0) self.obj.speed(10) self.obj.move(2) assert(self.obj.latitude() == 20) assert(self.obj.longitude() == 0) self.obj.heading(90) self.obj.move(2) assert(self.obj.latitude() == 20) assert(self.obj.longitude() == 20) self.obj.speed(20) self.obj.heading(180) self.obj.move(2) assert(self.obj.latitude() == -20) assert(round(self.obj.longitude(),7) == 20) def move_border(self): self.obj.latitude(85) self.obj.longitude(175) self.obj.heading(0) self.obj.speed(10) self.obj.move(2) assert(self.obj.latitude() == -75) self.obj.heading(180) self.obj.move(2) assert(self.obj.latitude() == 85) self.obj.heading(90) self.obj.move(2) assert(self.obj.longitude() == -165) self.obj.heading(270) self.obj.move(2) assert(self.obj.longitude() == 175) def genIdlFull(self): self.obj.latitude(20) self.obj.longitude(10) self.obj.height(30) self.obj.heading(100) self.obj.speed(150) r = self.obj.genIdlFull() assert(r.__class__ == simdata.SimulationServer.Vector) assert(r.lat == 20) assert(r.lon == 10) assert(r.vert == 30) assert(r.heading== 100) assert(r.speed == 150) def genIdlReduced(self): self.obj.latitude(20) self.obj.longitude(10) self.obj.height(30) r = self.obj.genIdlReduced() assert(r.__class__ == simdata.SimulationServer.Point) assert(r.lat == 20) assert(r.lon == 10) assert(r.vert== 30)class testEntity(unittest.TestCase): def setUp(self): self.obj = simdata.Entity() def createdAfter(self): assert(self.obj.createdAfter(0)) assert(not self.obj.createdAfter(time.time())) def markAsChanged(self): assert(not self.obj.changedAfter(time.time())) self.obj.markAsChanged() assert(self.obj.changedAfter(0)) assert(not self.obj.changedAfter(time.time())) def changedAfter(self): assert(self.obj.changedAfter(0)) assert(not self.obj.changedAfter(time.time())) def markAsDeleted(self): self.obj.markAsDeleted() assert(self.obj.deletedAfter(0)) assert(not self.obj.deletedAfter(time.time())) def deletedAfter(self): self.obj.markAsDeleted() assert(self.obj.deletedAfter(0)) assert(not self.obj.deletedAfter(time.time())) def deletedBefore(self): self.obj.markAsDeleted() assert(not self.obj.deletedBefore(0)) assert(self.obj.deletedBefore(time.time())) class testPlane(unittest.TestCase): def setUp(self): self.dict = {} self.obj = simdata.Plane() self.obj.pos.speed(100) self.obj.pos.heading(90) self.obj.pos.height(10) def update(self): oldlat = self.obj.pos.latitude() oldlon = self.obj.pos.longitude() self.obj.update() assert(self.obj.pos.latitude() != oldlat) assert(self.obj.pos.longitude() != oldlon) def update_withOrder(self): order = fakedata.genOrder(heading=120, speed=50, height=20) oldheading = self.obj.pos.heading() oldspeed= self.obj.pos.speed() oldheight= self.obj.pos.height() #print oldspeed, oldheading, oldheight r = self.obj.processOrder(order) self.obj.update() #print self.obj.pos.speed(), self.obj.pos.heading(), self.obj.pos.height() assert(self.obj.pos.speed() != oldspeed) assert(self.obj.pos.heading() != oldheading) assert(self.obj.pos.height() != oldheight) self.update() def genIdlFull(self): r = self.obj.genIdlFull() assert(r.__class__ == simdata.SimulationServer.PlaneType) assert(r.id == self.obj.id) assert(r.pos.__class__ == simdata.SimulationServer.Vector) def genIdlReduced(self): r = self.obj.genIdlReduced() assert(r.id == self.obj.id) assert(r.objTypeName == 'plane') assert(r.pos.__class__ == simdata.SimulationServer.Point)class fakeObj: pass# $Log: testsimdata.py,v $# Revision 1.6 2002/02/18 10:49:39 marijn# Updated copyright information## Revision 1.5 2002/02/04 15:52:23 marijn# Added order receiving methods## Revision 1.4 2002/01/13 16:05:58 marijn# All updates now go via getUpdate(). Split genIdl into Full and Reduced## Revision 1.3 2002/01/12 23:50:40 marijn# Refactored simdata and added basic coordinate system## Revision 1.2 2002/01/04 11:25:47 marijn# SimObj was renamed Entity## Revision 1.1 2001/12/25 01:55:50 marijn# added SimServer, SimUser and SimData unit tests#
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -