Пример #1
0
def test_write_2():
    """
    test two separate write call
    """
    xyz, times, cell_lens, cell_angles = DTRTrajectoryFile(fn_dtr).read()
    writer = DTRTrajectoryFile(temp, 'w')
    writer.write(xyz,
                 cell_lengths=cell_lens,
                 cell_angles=cell_angles,
                 times=times)

    n_frames = len(xyz)
    times += 50.0
    writer.write(xyz,
                 cell_lengths=cell_lens,
                 cell_angles=cell_angles,
                 times=times)

    # # try to write frames with different number of atoms
    # assert_raises(ValueError, writer.write, xyz[:,10:,:],
    #           cell_lengths=cell_lens,
    #           cell_angles=cell_angles,
    #           times=times)

    writer.close()

    xyz2, times2, cell_lens2, cell_angles2 = DTRTrajectoryFile(temp).read()

    eq(len(xyz2), n_frames * 2)
    eq(xyz, xyz2[n_frames:])
    eq(times, times2[n_frames:])
    eq(cell_lens, cell_lens2[n_frames:])
    eq(cell_angles, cell_angles2[n_frames:])
Пример #2
0
def test_write_2():
    """
    test two separate write call
    """
    xyz, times, cell_lens, cell_angles  = DTRTrajectoryFile(fn_dtr).read()
    writer = DTRTrajectoryFile(temp, 'w')
    writer.write(xyz,cell_lengths=cell_lens,
                    cell_angles=cell_angles, times=times)

    n_frames = len(xyz)
    times += 50.0
    writer.write(xyz,cell_lengths=cell_lens,
                    cell_angles=cell_angles, times=times)


    # # try to write frames with different number of atoms
    # assert_raises(ValueError, writer.write, xyz[:,10:,:],
    #           cell_lengths=cell_lens,
    #           cell_angles=cell_angles,
    #           times=times)

    writer.close()

    xyz2, times2, cell_lens2, cell_angles2 = DTRTrajectoryFile(temp).read()

    eq(len(xyz2), n_frames*2)
    eq(xyz, xyz2[n_frames:])
    eq(times, times2[n_frames:])
    eq(cell_lens, cell_lens2[n_frames:])
    eq(cell_angles, cell_angles2[n_frames:])
Пример #3
0
def test_write_2(tmpdir, get_fn):
    # Test two separate write call
    fn_dtr = get_fn('frame0.dtr')
    fn = '{}/x.dtr'.format(tmpdir)
    xyz, times, cell_lens, cell_angles = DTRTrajectoryFile(fn_dtr).read()
    writer = DTRTrajectoryFile(fn, 'w')
    writer.write(xyz, cell_lengths=cell_lens,
                 cell_angles=cell_angles, times=times)

    n_frames = len(xyz)
    times += 50.0
    writer.write(xyz, cell_lengths=cell_lens,
                 cell_angles=cell_angles, times=times)

    writer.close()

    xyz2, times2, cell_lens2, cell_angles2 = DTRTrajectoryFile(fn).read()

    eq(len(xyz2), n_frames * 2)
    eq(xyz, xyz2[n_frames:])
    eq(times, times2[n_frames:])
    eq(cell_lens, cell_lens2[n_frames:])
    eq(cell_angles, cell_angles2[n_frames:])
Пример #4
0
def test_write_4(tmpdir):
    # Test write error
    xyz = np.array(np.random.uniform(low=-50, high=-50, size=(3, 17, 3)), dtype=np.float32)
    times = np.array([1, 23.0, 48.0], dtype=np.float64)
    cell_lengths = np.array(np.random.uniform(low=100, high=200, size=(3, 3)), dtype=np.float32)
    cell_angles = np.array([[90, 90, 90],
                            [80, 100, 120],
                            [120, 90, 80]],
                           dtype=np.float32)

    bad_times = np.array([21, 3.0, 48.0], dtype=np.float64)
    fn = '{}/x.dtr'.format(tmpdir)
    f = DTRTrajectoryFile(fn, 'w')
    with pytest.raises(ValueError):
        f.write(xyz, cell_lengths=cell_lengths)
    with pytest.raises(ValueError):
        f.write(xyz, cell_angles=cell_angles)
    with pytest.raises(ValueError):
        f.write(xyz, times=times)
    with pytest.raises(ValueError):
        f.write(xyz, cell_lengths=cell_lengths,
                cell_angles=cell_angles, times=bad_times)
    f.close()