def test_multiple_input_trajectories(self): reader = FragmentedTrajectoryReader([[self.d, self.d], self.d, [self.d, self.d]]) reader.chunksize = 37 out = reader.get_output() reader.chunksize = 0 out2 = reader.get_output() expected0_2 = np.vstack((self.d, self.d)) for itraj in range(0, 3): np.testing.assert_array_almost_equal(out[itraj], out2[itraj]) np.testing.assert_array_almost_equal(out[0], expected0_2) np.testing.assert_array_almost_equal(out[1], self.d) np.testing.assert_array_almost_equal(out[2], expected0_2)
def test_chunked_trajectory_with_lag(self): data = np.vstack((self.d, self.d)) reader = FragmentedTrajectoryReader([self.d, self.d]) for lag in [0, 1, 3]: for stride in [1, 3, 5]: for chunksize in [1, 34, 53, 72]: reader.chunksize = chunksize if lag > 0: collected = None collected_lagged = None for itraj, X, Y in reader.iterator(stride=stride, lag=lag): collected = X if collected is None else np.vstack( (collected, X)) collected_lagged = Y if collected_lagged is None else np.vstack( (collected_lagged, Y)) np.testing.assert_array_almost_equal( data[::stride][0:len(collected_lagged)], collected) np.testing.assert_array_almost_equal( data[lag::stride], collected_lagged) else: collected = None for itraj, X in reader.iterator(stride=stride): collected = X if collected is None else np.vstack( (collected, X)) np.testing.assert_array_almost_equal( data[::stride], collected)
def test_full_trajectory_stridden(self): for stride in [1, 3, 5, 7, 13, 20]: reader = FragmentedTrajectoryReader([self.d, self.d]) reader.chunksize = 0 expected = np.vstack((self.d, self.d))[::stride] out = reader.get_output(stride=stride)[0] np.testing.assert_array_almost_equal(expected, out, err_msg="Failed for stride=%s" % stride)
def test_full_trajectory_stridden_with_lag(self): reader = FragmentedTrajectoryReader([self.d, self.d]) data = np.vstack((self.d, self.d)) for lag in [1, 5, 7]: for stride in [1, 3, 5, 7, 13, 20]: reader.chunksize = 0 X, Y = None, None # not chunked for itraj, X, Y in reader.iterator(stride=stride, lag=lag): pass np.testing.assert_array_almost_equal(data[::stride][0:len(Y)], X) np.testing.assert_array_almost_equal(data[lag::stride], Y)
def test_full_trajectory(self): reader = FragmentedTrajectoryReader([self.d, self.d]) reader.chunksize = 0 expected = np.vstack((self.d, self.d)) np.testing.assert_array_almost_equal(expected, reader.get_output(stride=1)[0])