109 lines
4.8 KiB
Python
109 lines
4.8 KiB
Python
|
|
'''
|
|
Testing settings for simple getting/setting
|
|
'''
|
|
|
|
import unittest
|
|
from pymol import cmd, testing, stored
|
|
|
|
class TestSettings3f(testing.PyMOLTestCase):
|
|
@testing.foreach.product((tuple, list), (((1.,2.,3.), (3.,4.,5.),), ((6.,7.,8.),(9.,0.,1.),),),)
|
|
def test_set_object_settings_3f(self, f, data):
|
|
m1 = "pseudo01"
|
|
m2 = "pseudo02"
|
|
cmd.pseudoatom(m1)
|
|
cmd.pseudoatom(m2)
|
|
lp1, lp2 = lp = map(f, data)
|
|
cmd.set("label_position", lp1, m1)
|
|
cmd.set("label_position", lp2, m2)
|
|
stored.pos = {}
|
|
cmd.iterate("all", "stored.pos[model]=s['label_position']")
|
|
self.assertEqual(tuple(lp1), stored.pos[m1])
|
|
self.assertEqual(tuple(lp2), stored.pos[m2])
|
|
|
|
@testing.foreach.product((tuple, list), (((1.,2.,3.), (3.,4.,5.),), ((6.,7.,8.),(9.,0.,1.),),),)
|
|
def test_set_both_object_and_global_settings_3f(self, f, data):
|
|
m1 = "pseudo01"
|
|
m2 = "pseudo02"
|
|
m3 = "pseudo03"
|
|
lp1, lp2 = lp = map(f, data)
|
|
cmd.pseudoatom(m1)
|
|
cmd.pseudoatom(m2)
|
|
cmd.pseudoatom(m3)
|
|
cmd.set("label_position", lp1)
|
|
cmd.set("label_position", lp2, m2)
|
|
stored.pos = {}
|
|
cmd.iterate("all", "stored.pos[model]=s['label_position']")
|
|
self.assertEqual(tuple(lp1), stored.pos[m1])
|
|
self.assertEqual(tuple(lp2), stored.pos[m2])
|
|
self.assertEqual(tuple(lp1), stored.pos[m3])
|
|
|
|
@testing.foreach.product((tuple, list), (((1.,2.,3.), (3.,4.,5.), (6.,7.,8.),), ((6.,7.,8.),(9.,0.,1.), (2.,3.,4.),),),)
|
|
def test_set_atom_object_and_global_settings_3f(self, f, data):
|
|
m1 = "pseudo01"
|
|
m2 = "pseudo02"
|
|
m3 = "pseudo03"
|
|
lp1, lp2, lp3 = lp = map(f, data)
|
|
cmd.pseudoatom(m1)
|
|
cmd.pseudoatom(m1)
|
|
cmd.pseudoatom(m2)
|
|
cmd.pseudoatom(m3)
|
|
cmd.set("label_position", lp1, "(index 2)")
|
|
cmd.set("label_position", lp2)
|
|
cmd.set("label_position", lp3, m2)
|
|
stored.pos = {}
|
|
cmd.iterate("all", "stored.pos['%s-%s' % (model, index)]=s['label_position']")
|
|
self.assertEqual(tuple(lp1), stored.pos['%s-%s' % (m1,2)])
|
|
self.assertEqual(tuple(lp2), stored.pos['%s-%s' % (m1,1)])
|
|
self.assertEqual(tuple(lp3), stored.pos['%s-%s' % (m2,1)])
|
|
self.assertEqual(tuple(lp2), stored.pos['%s-%s' % (m3,1)])
|
|
|
|
@testing.foreach.product((tuple, list), (((1.,2.,3.), (3.,4.,5.),), ((6.,7.,8.),(9.,0.,1.),),),)
|
|
def test_atom_state_settings_3f(self, f, data):
|
|
m1 = "pseudo01"
|
|
lp1, lp2 = lp = map(f, data)
|
|
cmd.pseudoatom(m1)
|
|
cmd.pseudoatom(m1)
|
|
cmd.create(m1, m1, 1, 2)
|
|
stored.pos = {}
|
|
stored.lp1 = lp1
|
|
stored.lp2 = lp2
|
|
stored.origp = None
|
|
# get origp (should be 0.,0.,0.
|
|
cmd.alter("(index 1)", "stored.origp = s['label_placement_offset']")
|
|
# change atom-state setting to lp1 for atom in both states
|
|
cmd.alter_state(0, "(index 1)", "s['label_placement_offset']=stored.lp1")
|
|
# change atom-level setting for all atoms to something else
|
|
cmd.alter("all", "s['label_placement_offset']=stored.lp2")
|
|
# get atom-state settings
|
|
cmd.iterate_state(0, "all", "stored.pos['%s-%s-%s' % (model, state, index)]=s['label_placement_offset']")
|
|
# atom-state setting should be lp1 for atom 1
|
|
self.assertEqual(tuple(lp1), stored.pos['%s-%s-%s' % (m1, 1, 1)])
|
|
self.assertEqual(tuple(lp1), stored.pos['%s-%s-%s' % (m1, 2, 1)])
|
|
# atom setting should override to lp2 for atom 2 in both states
|
|
self.assertEqual(tuple(lp2), stored.pos['%s-%s-%s' % (m1, 1, 2)])
|
|
self.assertEqual(tuple(lp2), stored.pos['%s-%s-%s' % (m1, 2, 2)])
|
|
# unset all atom-level settings, atom-state settings should still exist
|
|
cmd.alter("all", "s['label_placement_offset']=None")
|
|
stored.pos = {}
|
|
cmd.iterate_state(0, "all", "stored.pos['%s-%s-%s' % (model, state, index)]=s['label_placement_offset']")
|
|
self.assertEqual(tuple(lp1), stored.pos['%s-%s-%s' % (m1, 1, 1)])
|
|
self.assertEqual(tuple(lp1), stored.pos['%s-%s-%s' % (m1, 2, 1)])
|
|
self.assertEqual(tuple(stored.origp), stored.pos['%s-%s-%s' % (m1, 1, 2)])
|
|
self.assertEqual(tuple(stored.origp), stored.pos['%s-%s-%s' % (m1, 2, 2)])
|
|
|
|
@testing.foreach.product(((list),), ((1.,2.,3.), (3.,4.,5.),))
|
|
def test_unsetting_atom_setting(self, f, data):
|
|
m1 = "pseudo01"
|
|
lp = f(data)
|
|
cmd.pseudoatom(m1)
|
|
stored.lp = lp
|
|
stored.pos = {}
|
|
cmd.iterate("all", "stored.pos['%s-%s' % (model, index)] = s['label_placement_offset']")
|
|
|
|
cmd.alter("all", "s['label_placement_offset']=stored.lp")
|
|
stored.pos2 = {}
|
|
cmd.alter("all", "s['label_placement_offset']=None")
|
|
cmd.iterate("all", "stored.pos2['%s-%s' % (model, index)] = s['label_placement_offset']")
|
|
self.assertEqual(stored.pos, stored.pos2)
|