def test_no_drift(self): N = 10 expected = DataFrame({'x': np.zeros(N), 'y': np.zeros(N)}).iloc[1:] expected = expected.astype('float') expected.index.name = 'frame' expected.columns = ['x', 'y'] # ^ no drift measured for Frame 0 actual = mr.compute_drift(self.dead_still) assert_frame_equal(actual, expected) # Small random drift actual = mr.compute_drift(self.many_walks) assert_frame_equal(actual, expected)
def compute_drift(self, smoothing=0, query=None): if query is None: compute_drift = lambda chunk: mr.compute_drift(chunk, smoothing) else: compute_drift = lambda chunk: ( mr.compute_drift(chunk.query(query), smoothing)) chunks = self.get_data() drift = [] last_value = 0 drift_chunks = (compute_drift(chunk) for chunk in chunks) for chunk in drift_chunks: drift.append(chunk + last_value) if len(chunk) > 0: # catch unusual case where chunk is empty last_value += chunk.iloc[-1] drift = pd.concat(drift) return drift
def compute_drift(self, smoothing=0, query=None): if query is None: compute_drift = lambda chunk: mr.compute_drift(chunk, smoothing) else: compute_drift = lambda chunk: (mr.compute_drift( chunk.query(query), smoothing)) chunks = self.get_data() drift = [] last_value = 0 drift_chunks = (compute_drift(chunk) for chunk in chunks) for chunk in drift_chunks: drift.append(chunk + last_value) if len(chunk) > 0: # catch unusual case where chunk is empty last_value += chunk.iloc[-1] drift = pd.concat(drift) return drift
def test_constant_drift(self): N = 10 expected = DataFrame({'x': np.arange(N), 'y': np.zeros(N)}).iloc[1:] expected = expected.astype('float') expected.index.name = 'frame' expected.columns = ['x', 'y'] actual = mr.compute_drift(self.steppers) assert_frame_equal(actual, expected)