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:])
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:])
def test_write_4(): "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) f = DTRTrajectoryFile(temp, 'w') assert_raises(ValueError, f.write, xyz, cell_lengths=cell_lengths) assert_raises(ValueError, f.write, xyz, cell_angles=cell_angles) assert_raises(ValueError, f.write, xyz, times=times) assert_raises(ValueError, f.write, xyz, cell_lengths=cell_lengths, cell_angles=cell_angles, times=bad_times) f.close()
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()
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:])
def test_read_closed(): f = DTRTrajectoryFile(fn_dtr) f.close() f.read()
def test_read_closed(get_fn): fn_dtr = get_fn('frame0.dtr') with pytest.raises(IOError): f = DTRTrajectoryFile(fn_dtr) f.close() f.read()