updated tests for numpy 2

Commit 76f5693b530c · Nicolas Saunier · 2024-07-20 20:35 -0400

Changeset
76f5693b530c2db92d993fa6d486ad23b3c6ad1b
Parents
1284:8e30c9a6ac6f

View source at this commit

Comments

No comments yet.

Log in to comment

Diff

diff --git a/trafficintelligence/moving.py b/trafficintelligence/moving.py
--- a/trafficintelligence/moving.py
+++ b/trafficintelligence/moving.py
@@ -4,7 +4,7 @@
 import copy
 from math import sqrt, atan2, cos, sin, inf
 
-from numpy import median, mean, array, arange, zeros, ones, hypot, NaN, std, floor, ceil, float32, argwhere, flatnonzero, minimum,  issubdtype, integer as npinteger, percentile, quantile, full
+from numpy import median, mean, array, arange, zeros, ones, hypot, nan, std, floor, ceil, float32, argwhere, flatnonzero, minimum,  issubdtype, integer as npinteger, percentile, quantile, full
 from matplotlib.pyplot import plot, text, arrow
 from scipy.spatial.distance import cdist
 from scipy.signal import savgol_filter
@@ -1667,8 +1667,8 @@
                         instants.append(t)
                         coords.append(p[0])
                     else:
-                        instants.append(NaN)
-                        coords.append(NaN)
+                        instants.append(nan)
+                        coords.append(nan)
                 plot(instants, coords, options, **kwargs)
                 if withOrigin and len(instants)>0:
                     plot([instants[0]], [coords[0]], 'ro', **kwargs)
diff --git a/trafficintelligence/storage.py b/trafficintelligence/storage.py
--- a/trafficintelligence/storage.py
+++ b/trafficintelligence/storage.py
@@ -7,7 +7,7 @@
 from copy import copy
 import sqlite3, logging
 
-from numpy import log, min as npmin, max as npmax, round as npround, array, sum as npsum, loadtxt, floor as npfloor, ceil as npceil, linalg, int32, int64, reshape, dot, vstack, transpose, ones, zeros_like, pi, NaN
+from numpy import log, min as npmin, max as npmax, round as npround, array, sum as npsum, loadtxt, floor as npfloor, ceil as npceil, linalg, int32, int64, reshape, dot, vstack, transpose, ones, zeros_like, pi, nan
 from pandas import read_csv, merge, concat, DataFrame
 
 from trafficintelligence import utils, moving, events, indicators
@@ -1359,7 +1359,7 @@
         if len(tmp) != interval.length(): #interpolate
             print(objNum, len(tmp), interval.length())
             instants = set(interval).difference(tmp.frame)
-            missing = concat([tmp[['frame']+header[10:]], DataFrame([[t]+[NaN]*(len(header)-10) for t in instants], columns = ['frame']+header[10:])], ignore_index=True).sort_values('frame')
+            missing = concat([tmp[['frame']+header[10:]], DataFrame([[t]+[nan]*(len(header)-10) for t in instants], columns = ['frame']+header[10:])], ignore_index=True).sort_values('frame')
             tmp = missing.interpolate()
         featureTrajectories = [moving.Trajectory() for i in range(4)]
         for i, r in tmp.iterrows():
@@ -1501,7 +1501,7 @@
         if len(tmp) != interval.length(): #interpolate
             print(objNum, len(tmp), interval.length())
             instants = set(interval).difference(tmp.frame)
-            missing = concat([tmp[['frame', 'x', 'y']], DataFrame([[t, NaN, NaN] for t in instants], columns = ['frame', 'x', 'y'])], ignore_index=True).sort_values('frame')
+            missing = concat([tmp[['frame', 'x', 'y']], DataFrame([[t, nan, nan] for t in instants], columns = ['frame', 'x', 'y'])], ignore_index=True).sort_values('frame')
             tmp = missing.interpolate()
             #print(tmp.info())
         if interval.length()>1:
diff --git a/trafficintelligence/tests/cvutils.txt b/trafficintelligence/tests/cvutils.txt
--- a/trafficintelligence/tests/cvutils.txt
+++ b/trafficintelligence/tests/cvutils.txt
@@ -10,7 +10,7 @@
 >>> [map1, map2], tmp = cvutils.computeUndistortMaps(width, height, multiplicationFactor, intrinsicCameraMatrix, distortionCoefficients)
 >>> undistorted = cv2.remap(img, map1, map2, interpolation=cv2.INTER_LINEAR)
 >>> (undistorted.shape == array([int(round(height*multiplicationFactor)), int(round(width*multiplicationFactor)), 3])).all()
-True
+np.True_
 >>> imgPoints = array([[[150.,170.],[220.,340.],[340.,440.],[401.,521.]]])
 >>> newCameraMatrix = cv2.getDefaultNewCameraMatrix(intrinsicCameraMatrix, (int(round(width*multiplicationFactor)), int(round(height*multiplicationFactor))), True)
 >>> undistortedPoints = cv2.undistortPoints(imgPoints, intrinsicCameraMatrix, distortionCoefficients, P = newCameraMatrix).reshape(-1, 2) # undistort and project as if seen by new camera
@@ -20,28 +20,28 @@
 >>> reducedPoints = dot(invNewCameraMatrix, tmp.T).T
 >>> origPoints = cv2.projectPoints(reducedPoints, (0.,0.,0.), (0.,0.,0.), intrinsicCameraMatrix, distortionCoefficients)[0].reshape(-1,2)
 >>> (round(origPoints[1:,:]) == imgPoints[0][1:,:]).all()
-True
+np.True_
 >>> (absolute(origPoints[0,:]-imgPoints[0][0,:])).max() < 6.
-True
+np.True_
 >>> reducedPoints2 = cvutils.newCameraProject(undistortedPoints.T, invNewCameraMatrix)
 >>> (reducedPoints == reducedPoints).all()
-True
+np.True_
 
 >>> undistortedPoints2 = cv2.undistortPoints(imgPoints, intrinsicCameraMatrix, distortionCoefficients).reshape(-1, 2) # undistort and project as if seen by new camera
 >>> undistortedPoints2 = cvutils.newCameraProject(undistortedPoints2.T, newCameraMatrix)
 >>> (undistortedPoints == undistortedPoints2.T).all()
-True
+np.True_
 
 >>> undistortedPoints = cv2.undistortPoints(imgPoints, intrinsicCameraMatrix, distortionCoefficients).reshape(-1, 2) # undistort to ideal points
 >>> origPoints = cvutils.worldToImageProject(undistortedPoints.T, intrinsicCameraMatrix, distortionCoefficients).T
 >>> (round(origPoints[1:,:]) == imgPoints[0][1:,:]).all()
-True
+np.True_
 >>> (absolute(origPoints[0,:]-imgPoints[0][0,:])).max() < 6.
-True
+np.True_
 
 >>> undistortedPoints = cvutils.imageToWorldProject(imgPoints[0].T, intrinsicCameraMatrix, distortionCoefficients)
 >>> origPoints = cvutils.worldToImageProject(undistortedPoints, intrinsicCameraMatrix, distortionCoefficients).T
 >>> (round(origPoints[1:,:]) == imgPoints[0][1:,:]).all()
-True
+np.True_
 >>> (absolute(origPoints[0,:]-imgPoints[0][0,:])).max() < 6.
-True
+np.True_
diff --git a/trafficintelligence/tests/events.txt b/trafficintelligence/tests/events.txt
--- a/trafficintelligence/tests/events.txt
+++ b/trafficintelligence/tests/events.txt
@@ -38,26 +38,26 @@
 >>> inter.computeCrossingsCollisions(predictionParams, 0.1, 10)
 >>> ttc = inter.getIndicator("Time to Collision")
 >>> ttc[0]
-5.0
+np.float64(5.0)
 >>> ttc[1]
-4.0
+np.float64(4.0)
 >>> (inter.collisionPoints[0][0] - Point(0.,0.)).norm2() < 0.0001
 True
 >>> (inter.collisionPoints[4][0] - Point(0.,0.)).norm2() < 0.0001
 True
 >>> inter.getIndicator(Interaction.indicatorNames[1])[4] < 0.000001 # collision angle
-True
+np.True_
 >>> inter.getIndicator(Interaction.indicatorNames[1])[5] is None
 True
 >>> inter.getIndicator(Interaction.indicatorNames[1])[6] # doctest:+ELLIPSIS
-3.1415...
+np.float64(3.1415...)
 
 # test if reseting object
 >>> o2 = MovingObject.generate(2, Point(0.,-5.), Point(0.,-1.), TimeInterval(0,10))
 >>> inter.setRoadUsers([o1,o2])
 >>> ttc = inter.getIndicator("Time to Collision")
 >>> ttc[0]
-5.0
+np.float64(5.0)
 >>> inter.computeIndicators()
 >>> inter.computeCrossingsCollisions(predictionParams, 0.1, 10)
 >>> inter.getIndicator("Time to Collision") is None
diff --git a/trafficintelligence/tests/indicators.txt b/trafficintelligence/tests/indicators.txt
--- a/trafficintelligence/tests/indicators.txt
+++ b/trafficintelligence/tests/indicators.txt
@@ -21,29 +21,29 @@
 
 >>> ttc = SeverityIndicator('TTC', {t:t-1 for t in TimeInterval(1,11)}, mostSevereIsMax = False)
 >>> ttc.getMostSevereValue(1)
-0.0
+np.float64(0.0)
 >>> ttc.getMostSevereValue(2)
-0.5
+np.float64(0.5)
 >>> ttc.getMostSevereValue(centile = 10.)
-1.0
+np.float64(1.0)
 >>> ttc.mostSevereIsMax = True
 >>> ttc.getMostSevereValue(1)
-10.0
+np.float64(10.0)
 >>> ttc.getMostSevereValue(2)
-9.5
+np.float64(9.5)
 >>> ttc.getMostSevereValue(centile = 10.)
-9.0
+np.float64(9.0)
 
 >>> t1 = Trajectory([[0.5,1.5,2.5],[0.5,3.5,6.5]])
 >>> m = indicatorMap([1,2,3], t1, 1)
 >>> m[(1.0, 3.0)]
-2.0
+np.float64(2.0)
 >>> m[(2.0, 6.0)]
-3.0
+np.float64(3.0)
 >>> m[(0.0, 0.0)]
-1.0
+np.float64(1.0)
 >>> m = indicatorMap([1,2,3], t1, 4)
 >>> m[(0.0, 1.0)]
-3.0
+np.float64(3.0)
 >>> m[(0.0, 0.0)]
-1.5
+np.float64(1.5)
diff --git a/trafficintelligence/tests/moving.txt b/trafficintelligence/tests/moving.txt
--- a/trafficintelligence/tests/moving.txt
+++ b/trafficintelligence/tests/moving.txt
@@ -187,10 +187,10 @@
 >>> from utils import LCSS
 >>> lcss = LCSS(lambda x,y: Point.distanceNorm2(x,y) <= 0.1)
 >>> Trajectory.lcss(t1, t1, lcss)
-3
+np.int64(3)
 >>> lcss = LCSS(lambda p1, p2: (p1-p2).normMax() <= 0.1)
 >>> Trajectory.lcss(t1, t1, lcss)
-3
+np.int64(3)
 
 >>> p1=Point(0,0)
 >>> p2=Point(1,0)
@@ -253,18 +253,18 @@
 Number of objects represented by object 1 must be greater or equal to 1 (0.5)
 >>> o2 = MovingObject.generate(2, Point(0.,-5.), Point(0.,1.), TimeInterval(0,10))
 >>> MovingObject.computePET(o1, o2, 0.1)
-(0.0, 5, 5)
+(np.float64(0.0), np.int64(5), np.int64(5))
 >>> o2 = MovingObject.generate(2, Point(0.,-5.), Point(0.,1.), TimeInterval(5,15))
 >>> MovingObject.computePET(o1, o2, 0.1)
-(5.0, 5, 10)
+(np.float64(5.0), np.int64(5), np.int64(10))
 >>> o2 = MovingObject.generate(2, Point(0.,-5.), Point(0.,1.), TimeInterval(15,30))
 >>> MovingObject.computePET(o1, o2, 0.1)
-(15.0, 5, 20)
+(np.float64(15.0), np.int64(5), np.int64(20))
 
 >>> o1 = MovingObject(1, TimeInterval(0,10), features=[MovingObject.generate(1, Point(0., 3.), Point(1., 0.), TimeInterval(0,10)), MovingObject.generate(2, Point(2., 3.), Point(1., 0.), TimeInterval(0,10)), MovingObject.generate(3, Point(2., 4.), Point(1., 0.), TimeInterval(0,10)), MovingObject.generate(4, Point(0., 4.), Point(1., 0.), TimeInterval(0,10))])
 >>> o2 = MovingObject(2, TimeInterval(0,10), features=[MovingObject.generate(5, Point(6., 0.), Point(0., 1.), TimeInterval(0,10)), MovingObject.generate(6, Point(7., 0.), Point(0., 1.), TimeInterval(0,10)), MovingObject.generate(7, Point(7., 2.), Point(0., 1.), TimeInterval(0,10)), MovingObject.generate(8, Point(6., 2.), Point(0., 1.), TimeInterval(0,10))])
 >>> MovingObject.computePET(o1, o2, useBoundingPoly = True)
-(2.0, 5, 3)
+(np.float64(2.0), np.int64(5), np.int64(3))
 
 >>> t1 = CurvilinearTrajectory.generate(3, 1., 10, 'b')
 >>> t1.length()
@@ -335,7 +335,7 @@
 True
 >>> t=5
 >>> o13.getPositionAtInstant(t) == (o1.getPositionAtInstant(t)+o3.getPositionAtInstant(t)).divide(2)
-True
+np.True_
 >>> len(o13.getFeatures())
 2
 
@@ -379,11 +379,11 @@
 True
 >>> o15.updatePositions()
 >>> o1.getPositionAtInstant(10) == o15.getPositionAtInstant(10)
-True
+np.True_
 >>> f15.getPositionAtInstant(11) == o15.getPositionAtInstant(11)
-True
+np.True_
 >>> o5.getPositionAtInstant(12) == o15.getPositionAtInstant(12)
-True
+np.True_
 
 >>> o1 = MovingObject.generate(1, Point(0., 2.), Point(0., 1.), TimeInterval(0,2))
 >>> o1.classifyUserTypeSpeedMotorized(0.5, np.median)
diff --git a/trafficintelligence/tests/prediction.txt b/trafficintelligence/tests/prediction.txt
--- a/trafficintelligence/tests/prediction.txt
+++ b/trafficintelligence/tests/prediction.txt
@@ -26,7 +26,7 @@
 >>> et = PredictedTrajectoryRandomControl(moving.Point(0,0),moving.Point(1,1), acceleration, steering, maxSpeed = 2)
 >>> p = et.predictPosition(500)
 >>> max(et.getPredictedSpeeds()) <= 2.
-True
+np.True_
 
 >>> p = moving.Point(3,4)
 >>> sp = SafetyPoint(p, 0.1, 0)
@@ -53,16 +53,16 @@
 >>> proto.getPositions().computeCumulativeDistances()
 >>> et = PredictedTrajectoryPrototype(proto.getPositionAt(10)+moving.Point(0.5, 0.5), proto.getVelocityAt(10)*0.9, proto, True)
 >>> absolute(et.initialSpeed - proto.getVelocityAt(10).norm2()*0.9) < 1e-5
-True
+np.True_
 >>> for t in range(int(proto.length())): x=et.predictPosition(t)
 >>> traj = et.getPredictedTrajectory()
 >>> traj.computeCumulativeDistances()
 >>> absolute(array(traj.distances).mean() - et.initialSpeed < 1e-3)
-True
+np.True_
 
 >>> et = PredictedTrajectoryPrototype(proto.getPositionAt(10)+moving.Point(0.6, 0.6), proto.getVelocityAt(10)*0.7, proto, False)
 >>> absolute(et.initialSpeed - proto.getVelocityAt(10).norm2()*0.7) < 1e-5
-True
+np.True_
 >>> proto = moving.MovingObject.generate(1, moving.Point(-5.,0.), moving.Point(1.,0.), moving.TimeInterval(0,10))
 >>> et = PredictedTrajectoryPrototype(proto.getPositionAt(0)+moving.Point(0., 1.), proto.getVelocityAt(0)*0.5, proto, False)
 >>> for t in range(int(proto.length()/0.5)): x=et.predictPosition(t)
diff --git a/trafficintelligence/tests/storage.txt b/trafficintelligence/tests/storage.txt
--- a/trafficintelligence/tests/storage.txt
+++ b/trafficintelligence/tests/storage.txt
@@ -122,7 +122,7 @@
 >>> gmmId = 0
 >>> savePOIsToSqlite('pois-tmp.sqlite', gmm, 'end', gmmId)
 >>> reloadedGmm = loadPOIsFromSqlite('pois-tmp.sqlite')
->>> sum(gmm.predict(points) == reloadedGmm[gmmId].predict(points)) == nPoints
+>>> int(sum(gmm.predict(points) == reloadedGmm[gmmId].predict(points))) == nPoints
 True
 >>> reloadedGmm[gmmId].gmmTypes[0] == 'end'
 True
diff --git a/trafficintelligence/tests/utils.txt b/trafficintelligence/tests/utils.txt
--- a/trafficintelligence/tests/utils.txt
+++ b/trafficintelligence/tests/utils.txt
@@ -86,78 +86,78 @@
 
 >>> lcss = LCSS(similarityFunc = lambda x,y: abs(x-y) <= 0.1)
 >>> lcss.compute(list(range(5)), list(range(5)))
-5
+np.int64(5)
 >>> lcss.compute(list(range(1,5)), list(range(5)))
-4
+np.int64(4)
 >>> lcss.compute(list(range(5,10)), list(range(5)))
-0
+np.int64(0)
 >>> lcss.compute(list(range(5)), list(range(10)))
-5
+np.int64(5)
 >>> lcss.similarityFunc = lambda x,y: x == y
 >>> lcss.compute(['a','b','c'], ['a','b','c', 'd'])
-3
+np.int64(3)
 >>> lcss.computeNormalized(['a','b','c'], ['a','b','c', 'd']) #doctest: +ELLIPSIS
 1.0
 >>> lcss.computeNormalized(['a','b','c','x'], ['a','b','c', 'd']) #doctest: +ELLIPSIS
 0.75
 >>> lcss.compute(['a','b','c'], ['a','b','c', 'd'])
-3
+np.int64(3)
 >>> lcss.compute(['a','x','b','c'], ['a','b','c','d','x'])
-3
+np.int64(3)
 >>> lcss.compute(['a','b','c','x','d'], ['a','b','c','d','x'])
-4
+np.int64(4)
 >>> lcss.delta = 1
 >>> lcss.compute(['a','b','c'], ['a','b','x','x','c'])
-2
+np.int64(2)
 
 >>> lcss.delta = float('inf')
 >>> lcss.compute(['a','b','c'], ['a','b','c', 'd'], computeSubSequence = True)
-3
+np.int64(3)
 >>> lcss.subSequenceIndices
 [(0, 0), (1, 1), (2, 2)]
 >>> lcss.compute(['a','b','c'], ['x','a','b','c'], computeSubSequence = True)
-3
+np.int64(3)
 >>> lcss.subSequenceIndices
 [(0, 1), (1, 2), (2, 3)]
 >>> lcss.compute(['a','g','b','c'], ['a','b','c', 'd'], computeSubSequence = True)
-3
+np.int64(3)
 >>> lcss.subSequenceIndices
 [(0, 0), (2, 1), (3, 2)]
 
 >>> alignedLcss = LCSS(lambda x,y:(abs(x-y) <= 0.1), delta = 2, aligned = True)
 >>> alignedLcss.compute(list(range(5)), list(range(5)))
-5
+np.int64(5)
 >>> alignedLcss.compute(list(range(1,5)), list(range(5)))
-4
+np.int64(4)
 
 >>> alignedLcss.compute(list(range(5,10)), list(range(10)))
-5
+np.int64(5)
 
 >>> lcss.delta = 2
 >>> lcss.compute(list(range(5,10)), list(range(10)))
-0
+np.int64(0)
 >>> alignedLcss.delta = 6
 >>> alignedLcss.compute(list(range(5)), list(range(5)))
-5
+np.int64(5)
 >>> alignedLcss.compute(list(range(5)), list(range(6)))
-5
+np.int64(5)
 >>> lcss.delta = 10
 >>> alignedLcss.compute(list(range(1,7)), list(range(6)))
-5
+np.int64(5)
 >>> lcss = LCSS(lambda x,y: x == y, delta = 2, aligned = True)
 >>> lcss.compute(list(range(20)), [2,4,6,7,8,9,11,13], True)
-8
+np.int64(8)
 >>> lcss.subSequenceIndices
 [(2, 0), (4, 1), (6, 2), (7, 3), (8, 4), (9, 5), (11, 6), (13, 7)]
 
 >>> lcss = LCSS(metric = 'cityblock', epsilon = 0.1)
 >>> lcss.compute([[i] for i in range(5)], [[i] for i in range(5)])
-5
+np.int64(5)
 >>> lcss.compute([[i] for i in range(1,5)], [[i] for i in range(5)])
-4
+np.int64(4)
 >>> lcss.compute([[i] for i in range(5,10)], [[i] for i in range(5)])
-0
+np.int64(0)
 >>> lcss.compute([[i] for i in range(5)], [[i] for i in range(10)])
-5
+np.int64(5)
 
 
diff --git a/trafficintelligence/utils.py b/trafficintelligence/utils.py
--- a/trafficintelligence/utils.py
+++ b/trafficintelligence/utils.py
@@ -11,7 +11,7 @@
 from scipy.stats import rv_continuous, kruskal, shapiro, lognorm, norm, t, chi2_contingency
 from scipy.spatial import distance
 from scipy.sparse import dok_matrix
-from numpy import zeros, array, exp, sum as npsum, int64 as npint, arange, cumsum, mean, median, percentile, isnan, ones, convolve,  dtype, isnan, NaN, ma, isinf, savez, load as npload, log, polyfit, float64
+from numpy import zeros, array, exp, sum as npsum, int64 as npint, arange, cumsum, mean, median, percentile, ones, convolve,  dtype, isnan, nan, ma, isinf, savez, load as npload, log, polyfit, float64
 from numpy.random import random_sample, permutation as nppermutation
 from pandas import DataFrame, concat, crosstab
 import matplotlib.pyplot as plt
@@ -501,7 +501,7 @@
             if not allVariables:
                 values = values[:-1]
             for val in values:
-                if val is not NaN:
+                if not isnan(val):
                     newVariable = (var+'_{}'.format(val)).replace('.','').replace(' ','').replace('-','')
                     data[newVariable] = (data[var] == val)
                     newVariables.append(newVariable)
@@ -736,7 +736,7 @@
         experiments[var] = pattern*(2**(nIndependentVariables-i-1))
     experiments = DataFrame(experiments)
     experiments['r2adj'] = 0.
-    experiments['condNum'] = NaN
+    experiments['condNum'] = nan
     experiments['shapiroP'] = -1
     experiments['nobs'] = -1
     return experiments