1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
'''
Testing: pymol.importing
'''
import pytest
from pymol import cmd
from chempy import cpv
def test_undo_clean():
cmd.fragment('his')
xyz1 = cmd.get_model('his').get_coord_list()
cmd.clean('his')
xyz2 = cmd.get_model('his').get_coord_list()
assert len(xyz1) == len(xyz2)
# coords have changed
assert xyz1 != xyz2
cmd.undo()
xyz2 = cmd.get_model('his').get_coord_list()
assert xyz1 == xyz2
cmd.redo()
xyz2 = cmd.get_model('his').get_coord_list()
assert xyz1 != xyz2
def test_undo_origin():
cmd.pseudoatom('m1')
cmd.pseudoatom('m2')
cmd.pseudoatom('m3', pos=[1, 0, 0])
# by selection
cmd.origin('m3')
cmd.rotate('y', 90, 'm1')
# by position
cmd.origin(position=[-1, 0, 0])
cmd.undo()
cmd.rotate('y', 90, 'm2')
coords = []
cmd.iterate_state(1, 'm1 m2', 'coords.append([x,y,z])', space=locals())
d = cpv.distance(*coords)
assert d == pytest.approx(0)
cmd.delete("*")
cmd.pseudoatom('m1')
cmd.pseudoatom('m2')
cmd.pseudoatom('m3', pos=[1, 0, 0])
# by selection
cmd.origin('m3')
cmd.rotate('y', 90, 'm1')
# by position
cmd.origin(position=[-1, 0, 0])
cmd.undo()
cmd.redo()
cmd.rotate('y', 90, 'm2')
coords = []
cmd.iterate_state(1, 'm1 m2', 'coords.append([x,y,z])', space=locals())
d = cpv.distance(*coords)
assert d == pytest.approx(2 * 2**0.5)
|