예제 #1
0
    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()
예제 #2
0
    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'
예제 #3
0
    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
예제 #4
0
    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
예제 #5
0
    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)
예제 #6
0
 def test_raise():
     for frame in pt.iterframe_master([0, 3]):
         pass
예제 #7
0
def iter_me(obj, n_frames):
    it = iterframe_master(obj)
    for idx, frame in enumerate(it):
        pass
    assert idx + 1 == n_frames