mirror of
https://github.com/schrodinger/pymol-open-source.git
synced 2026-06-04 20:04:21 +08:00
186 lines
4.4 KiB
Python
186 lines
4.4 KiB
Python
'''
|
|
Testing: pymol.creating
|
|
'''
|
|
|
|
import pytest
|
|
|
|
from pymol import cmd
|
|
from pymol import test_utils
|
|
|
|
|
|
def test_undo_fragment():
|
|
frag_name = "ala"
|
|
cmd.fragment(frag_name)
|
|
assert frag_name in cmd.get_names()
|
|
cmd.undo()
|
|
assert frag_name not in cmd.get_names()
|
|
cmd.redo()
|
|
assert frag_name in cmd.get_names()
|
|
|
|
|
|
def test_undo_create():
|
|
cmd.fragment("ala")
|
|
obj_name = "foo"
|
|
cmd.create(obj_name, "ala", 1, 1)
|
|
assert obj_name in cmd.get_names()
|
|
cmd.undo()
|
|
assert obj_name not in cmd.get_names()
|
|
cmd.redo()
|
|
assert obj_name in cmd.get_names()
|
|
|
|
|
|
def test_undo_pseudoatom():
|
|
cmd.pseudoatom('m1')
|
|
assert cmd.count_atoms() == 1
|
|
cmd.undo()
|
|
assert cmd.count_atoms() == 0
|
|
cmd.redo()
|
|
assert cmd.count_atoms() == 1
|
|
|
|
|
|
def test_undo_set_raw_alignment():
|
|
cmd.fab('ACDEF', 'm1')
|
|
cmd.fab('CDE', 'm2')
|
|
index_m1 = [('m1', 12), ('m1', 23), ('m1', 35)]
|
|
index_m2 = [('m2', 2), ('m2', 13), ('m2', 25)]
|
|
raw = [list(t) for t in zip(index_m1, index_m2)]
|
|
cmd.set_raw_alignment('aln', raw)
|
|
assert cmd.index('m1 & aln') == index_m1
|
|
assert cmd.index('m2 & aln') == index_m2
|
|
cmd.undo()
|
|
assert 'aln' not in cmd.get_names()
|
|
cmd.redo()
|
|
assert cmd.index('m1 & aln') == index_m1
|
|
assert cmd.index('m2 & aln') == index_m2
|
|
|
|
|
|
def test_undo_isosurface():
|
|
cmd.fragment('gly', 'm1')
|
|
cmd.set('gaussian_b_floor', 30)
|
|
cmd.set('mesh_width', 5)
|
|
cmd.map_new('map')
|
|
cmd.delete('m1')
|
|
surf_name = 'isoSurf'
|
|
cmd.isosurface(surf_name, 'map')
|
|
assert surf_name in cmd.get_names()
|
|
cmd.undo()
|
|
assert surf_name not in cmd.get_names()
|
|
cmd.redo()
|
|
assert surf_name in cmd.get_names()
|
|
|
|
|
|
def test_undo_isodot():
|
|
cmd.fragment('gly', 'm1')
|
|
cmd.set('gaussian_b_floor', 30)
|
|
cmd.set('mesh_width', 5)
|
|
cmd.map_new('map')
|
|
cmd.delete('m1')
|
|
dot_name = 'isoDot'
|
|
cmd.isosurface(dot_name, 'map')
|
|
assert dot_name in cmd.get_names()
|
|
cmd.undo()
|
|
assert dot_name not in cmd.get_names()
|
|
cmd.redo()
|
|
assert dot_name in cmd.get_names()
|
|
|
|
|
|
def test_undo_isomesh():
|
|
cmd.fragment('gly', 'm1')
|
|
cmd.set('gaussian_b_floor', 30)
|
|
cmd.set('mesh_width', 5)
|
|
cmd.map_new('map')
|
|
cmd.delete('m1')
|
|
|
|
# make mesh
|
|
cmd.isomesh('mesh', 'map')
|
|
assert 'mesh' in cmd.get_names()
|
|
cmd.undo()
|
|
assert 'mesh' not in cmd.get_names()
|
|
cmd.redo()
|
|
assert 'mesh' in cmd.get_names()
|
|
|
|
|
|
def test_undo_copy():
|
|
cmd.fragment('ala', 'm1')
|
|
cmd.copy('m3', 'm1')
|
|
cmd.undo()
|
|
assert 'm3' not in cmd.get_names()
|
|
cmd.redo()
|
|
assert 'm3' in cmd.get_names()
|
|
cmd.fragment('his', 'm2')
|
|
cmd.copy('m3', 'm2')
|
|
cmd.undo()
|
|
assert cmd.count_atoms('m1') == cmd.count_atoms('m3')
|
|
cmd.redo()
|
|
assert cmd.count_atoms('m2') == cmd.count_atoms('m3')
|
|
|
|
|
|
def get_objs_in_group(group):
|
|
obj_list = []
|
|
cmd.iterate('g1', 'obj_list.append(model)', space=locals())
|
|
return obj_list
|
|
|
|
|
|
def test_undo_group():
|
|
cmd.pseudoatom('m1')
|
|
cmd.pseudoatom('m2')
|
|
cmd.pseudoatom('m3')
|
|
cmd.group('g1', 'm1 m2')
|
|
assert get_objs_in_group('g1') == ['m1', 'm2']
|
|
cmd.undo()
|
|
assert get_objs_in_group('g1') == []
|
|
cmd.redo()
|
|
assert get_objs_in_group('g1') == ['m1', 'm2']
|
|
|
|
|
|
def test_undo_ungroup():
|
|
cmd.pseudoatom('m1')
|
|
cmd.pseudoatom('m2')
|
|
cmd.pseudoatom('m3')
|
|
cmd.group('g1', 'm1 m2')
|
|
cmd.ungroup('m2')
|
|
assert get_objs_in_group('g1') == ['m1']
|
|
cmd.undo()
|
|
assert get_objs_in_group('g1') == ['m1', 'm2']
|
|
cmd.redo()
|
|
assert get_objs_in_group('g1') == ['m1']
|
|
|
|
|
|
def test_undo_isolevel():
|
|
cmd.fragment('gly', 'm1')
|
|
cmd.set('gaussian_b_floor', 30)
|
|
cmd.set('mesh_width', 5)
|
|
cmd.map_new('map')
|
|
cmd.delete('m1')
|
|
# make mesh
|
|
cmd.isodot('dot', 'map')
|
|
cmd.isodot('dot', 'map', source_state=1, state=-2)
|
|
# check mesh presence by color
|
|
meshcolor = 'red'
|
|
cmd.color(meshcolor, 'dot')
|
|
test_utils.ambientOnly(cmd)
|
|
assert test_utils.imageHasColor(cmd, meshcolor)
|
|
cmd.frame(2)
|
|
assert cmd.get_state() == 2
|
|
assert test_utils.imageHasColor(cmd, meshcolor)
|
|
cmd.isolevel('dot', 5)
|
|
assert test_utils.imageHasColor(cmd, meshcolor)
|
|
cmd.isolevel('dot', 10)
|
|
assert not test_utils.imageHasColor(cmd, meshcolor)
|
|
cmd.undo()
|
|
assert test_utils.imageHasColor(cmd, meshcolor)
|
|
cmd.redo()
|
|
assert not test_utils.imageHasColor(cmd, meshcolor)
|
|
|
|
|
|
def test_undo_gradient():
|
|
pass
|
|
|
|
|
|
def test_undo_symexp():
|
|
pass
|
|
|
|
|
|
def test_undo_extract():
|
|
pass
|