⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testsimdata.py

📁 Air Traffic Controller这个游戏旨于将你放置到飞机交通控制器的位置上。指导飞机飞到它们正确的目的地。这是一个后勤学的游戏且要提前思考
💻 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 + -