def test_iter(self): traj = pt.iterload(fn('Tc5b.x'), fn('Tc5b.top')) fa = traj[:] iter_me(traj, traj.n_frames) iter_me(fa, traj.n_frames) iter_me(traj(), traj.n_frames) iter_me(fa(), traj.n_frames) iter_me(traj(mask='@CA'), traj.n_frames) iter_me(fa(mask='@CA'), traj.n_frames) iter_me([traj, fa], 2 * traj.n_frames) iter_me((traj, fa), 2 * traj.n_frames) iter_me((traj, (fa[0], )), traj.n_frames + 1) for frame in iterframe_master(traj[0]): assert frame.n_atoms == traj.top.n_atoms i = 0 for frame in iterframe_master([traj, traj[:1]]): i += 1 assert frame.n_atoms == traj.top.n_atoms assert i == traj.n_frames + 1 i = 0 for frame in iterframe_master(traj.iterchunk()): i += 1 assert isinstance(frame, Frame) assert i == traj.n_frames i = 0 for frame in iterframe_master([ traj.iterchunk(), ]): i += 1 assert isinstance(frame, Frame) assert i == traj.n_frames # raise if wrong type def test_raise(): for frame in pt.iterframe_master([0, 3]): pass with pytest.raises(TypeError): test_raise()
def test_iter_with_a_list_of_frame_and_trajectory_and_FrameIterator(self): traj = pt.iterload("./data/Tc5b.x", "./data/Tc5b.top") ref = traj[0] for idx, frame in enumerate(iterframe_master([traj[0], traj])): assert isinstance(frame, Frame), 'must a a Frame' assert idx == traj.n_frames # FrameIterator: traj() for idx, frame in enumerate(iterframe_master([traj[0], traj()])): assert isinstance(frame, Frame), 'must a a Frame' assert idx == traj.n_frames # FrameIterator: traj() fi = traj.iterframe(frame_indices=[0, 3]) for idx, frame in enumerate(iterframe_master([traj[0], fi])): assert isinstance(frame, Frame), 'must a a Frame'
def test_append_trajectory(self): # test append traj = pt.Trajectory() t = pt.iterload(fn('Tc5b.x'), fn('Tc5b.top')) traj.top = t.top # append single Frame traj.append(t[0]) assert traj.n_frames == 1 # append xyz traj.append(t.xyz[:]) assert traj.n_frames == t.n_frames + 1 # append TrajectoryIterator traj.append(t) assert traj.n_frames == t.n_frames * 2 + 1 # append frame_iter traj.append(t.iterframe()) assert traj.n_frames == t.n_frames * 3 + 1 # append pt.iterframe_master traj.append(pt.iterframe_master(t)) assert traj.n_frames == t.n_frames * 4 + 1 # append itself NFrames = traj.n_frames traj.append(traj) assert traj.n_frames == NFrames * 2 # append itself frame_iter traj.append(traj.iterframe(stop=2)) assert traj.n_frames == NFrames * 2 + 2 # append pt.iterframe_master for itself NFrames = traj.n_frames traj.append(pt.iterframe_master(traj)) assert traj.n_frames == NFrames * 2 # append pt.iterframe_master for itself + other n0 = traj.n_frames n1 = t.n_frames traj.append(pt.iterframe_master([traj, t])) assert traj.n_frames == 2 * n0 + n1
def test_append_trajectory(self): # test append traj = pt.Trajectory() t = pt.iterload("./data/Tc5b.x", "./data/Tc5b.top") traj.top = t.top # append single Frame traj.append(t[0]) assert traj.n_frames == 1 # append xyz traj.append(t.xyz[:]) assert traj.n_frames == t.n_frames + 1 # append TrajectoryIterator traj.append(t) assert traj.n_frames == t.n_frames * 2 + 1 # append frame_iter traj.append(t.iterframe()) assert traj.n_frames == t.n_frames * 3 + 1 # append pt.iterframe_master traj.append(pt.iterframe_master(t)) assert traj.n_frames == t.n_frames * 4 + 1 # append itself NFrames = traj.n_frames traj.append(traj) assert traj.n_frames == NFrames * 2 # append itself frame_iter traj.append(traj.iterframe(stop=2)) assert traj.n_frames == NFrames * 2 + 2 # append pt.iterframe_master for itself NFrames = traj.n_frames traj.append(pt.iterframe_master(traj)) assert traj.n_frames == NFrames * 2 # append pt.iterframe_master for itself + other n0 = traj.n_frames n1 = t.n_frames traj.append(pt.iterframe_master([traj, t])) assert traj.n_frames == 2 * n0 + n1
def test_assert(self): traj = pt.iterload("./data/Tc5b.x", "./data/Tc5b.top") fa = Trajectory.from_iterable(iterframe_master(traj), top=traj.top) for f0, f1 in zip(fa, traj): aa_eq(f0.xyz, f1.xyz)
def test_raise(): for frame in pt.iterframe_master([0, 3]): pass
def iter_me(obj, n_frames): it = iterframe_master(obj) for idx, frame in enumerate(it): pass assert idx + 1 == n_frames