Mercurial Hosting > traffic-intelligence
diff trafficintelligence/tests/storage.txt @ 1028:cc5cb04b04b0
major update using the trafficintelligence package name and install through pip
author | Nicolas Saunier <nicolas.saunier@polymtl.ca> |
---|---|
date | Fri, 15 Jun 2018 11:19:10 -0400 |
parents | python/tests/storage.txt@933670761a57 |
children | aafbc0bab925 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/trafficintelligence/tests/storage.txt Fri Jun 15 11:19:10 2018 -0400 @@ -0,0 +1,128 @@ +>>> from storage import * +>>> from io import StringIO +>>> from moving import MovingObject, Point, TimeInterval, Trajectory, prepareSplines + +>>> f = openCheck('non_existant_file.txt') +File non_existant_file.txt could not be opened. + +>>> nonexistentFilename = "nonexistent" +>>> loadTrajectoriesFromSqlite(nonexistentFilename, 'feature') +DB Error: no such table: positions +DB Error: no such table: velocities +[] +>>> from os import remove +>>> remove(nonexistentFilename) + +>>> o1 = MovingObject.generate(2, Point(0.,0.), Point(1.,0.), TimeInterval(0,10)) +>>> o2 = MovingObject.generate(3, Point(1.,1.), Point(-0.5,-0.2), TimeInterval(0,9)) +>>> saveTrajectoriesToSqlite('test.sqlite', [o1, o2], 'feature') +>>> objects = loadTrajectoriesFromSqlite('test.sqlite', 'feature') +>>> objects[0].getNum() == o1.num +True +>>> objects[1].getNum() == o2.num +True +>>> o1.getTimeInterval() == objects[0].getTimeInterval() +True +>>> o2.getTimeInterval() == objects[1].getTimeInterval() +True +>>> o1.getVelocities().length() == objects[0].getVelocities().length() +True +>>> o2.getVelocities().length() == objects[1].getVelocities().length() +True +>>> o1.getVelocities() == objects[0].getVelocities() +True +>>> o2.getVelocities() == objects[1].getVelocities() +True +>>> o1.getPositions() == objects[0].getPositions() +True +>>> o2.getPositions() == objects[1].getPositions() +True +>>> objects = loadTrajectoriesFromSqlite('test.sqlite', 'feature', timeStep = 2) +>>> objects[0].positions.length() +6 +>>> objects[1].positions.length() +5 +>>> objects = loadTrajectoriesFromSqlite('test.sqlite', 'feature', timeStep = 3) +>>> objects[0].positions.length() +4 +>>> objects[1].positions.length() +4 +>>> align1 = Trajectory.fromPointList([Point(-1, 0), Point(20, 0)]) +>>> align2 = Trajectory.fromPointList([Point(-9, -3), Point(6, 3)]) +>>> align1.computeCumulativeDistances() +>>> align2.computeCumulativeDistances() +>>> prepareSplines([align1, align2]) +>>> o1.projectCurvilinear([align1, align2]) +>>> o2.projectCurvilinear([align1, align2]) +>>> saveTrajectoriesToSqlite('test.sqlite', [o1, o2], 'curvilinear') +>>> addCurvilinearTrajectoriesFromSqlite('test.sqlite', {o.num: o for o in objects}) +>>> o1.curvilinearPositions[3][:2] == objects[0].curvilinearPositions[3][:2] +True +>>> o1.curvilinearPositions[7][:2] == objects[0].curvilinearPositions[7][:2] +True +>>> [str(l) for l in o1.curvilinearPositions.getLanes()] == objects[0].curvilinearPositions.getLanes() +True +>>> o2.curvilinearPositions[2][:2] == objects[1].curvilinearPositions[2][:2] +True +>>> o2.curvilinearPositions[6][:2] == objects[1].curvilinearPositions[6][:2] +True +>>> [str(l) for l in o2.curvilinearPositions.getLanes()] == objects[1].curvilinearPositions.getLanes() +True +>>> remove('test.sqlite') + +>>> f1 = MovingObject.generate(3, Point(0.,0.), Point(1.,0.), TimeInterval(0,10)) +>>> f2 = MovingObject.generate(4, Point(1.,1.), Point(-0.5,-0.2), TimeInterval(0,9)) +>>> o1 = MovingObject(num = 1, userType = 1) +>>> o1.features = [f1, f2] +>>> saveTrajectoriesToSqlite('test.sqlite', [o1], 'object') +>>> objects = loadTrajectoriesFromSqlite('test.sqlite', 'object', withFeatures = True) +>>> len(objects) +1 +>>> reloaded1 = objects[0] +>>> reloaded1.getNum() == o1.getNum() +True +>>> reloaded1.getUserType() == o1.getUserType() +True +>>> len(reloaded1.featureNumbers) +2 +>>> len(reloaded1.features) +2 +>>> reloaded1.getPositionAt(0) == Point.midPoint(f1.getPositionAt(0), f2.getPositionAt(0)) +True +>>> reloaded1.getPositionAt(5) == Point.midPoint(f1.getPositionAt(5), f2.getPositionAt(5)) +True +>>> reloaded1.getPositionAt(10) == f1.getPositionAt(10) +True +>>> set(reloaded1.featureNumbers) == set([f1.num, f2.num]) +True +>>> remove('test.sqlite') + +>>> strio = StringIO('# asdlfjasdlkj0\nsadlkfjsdlakjf') +>>> readline(strio) +'sadlkfjsdlakjf' +>>> strio = StringIO('# asdlfjasdlkj0\nsadlkfjsdlakjf') +>>> readline(strio, ['#']) +'sadlkfjsdlakjf' +>>> strio = StringIO('# asdlfjasdlkj0\nsadlkfjsdlakjf') +>>> readline(strio, ['%']) +'# asdlfjasdlkj0' +>>> strio = StringIO('# asdlfjasdlkj0\nsadlkfjsdlakjf') +>>> readline(strio, '%*$') +'# asdlfjasdlkj0' +>>> readline(strio, '%#') +'sadlkfjsdlakjf' + +>>> from sklearn.mixture import GaussianMixture +>>> from numpy.random import random_sample +>>> nPoints = 50 +>>> points = random_sample(nPoints*2).reshape(nPoints,2) +>>> gmm = GaussianMixture(4, covariance_type = 'full') +>>> tmp = gmm.fit(points) +>>> gmmId = 0 +>>> savePOIsToSqlite('pois-tmp.sqlite', gmm, 'end', gmmId) +>>> reloadedGmm = loadPOIsFromSqlite('pois-tmp.sqlite') +>>> sum(gmm.predict(points) == reloadedGmm[gmmId].predict(points)) == nPoints +True +>>> reloadedGmm[gmmId].gmmTypes[0] == 'end' +True +>>> remove('pois-tmp.sqlite')