Files
2026-08-03 18:42:47 +08:00

45 lines
1.6 KiB
Python

'''
ignore_case_chain
'''
from pymol import cmd, CmdException, testing, stored
class TestPYMOL2706(testing.PyMOLTestCase):
@testing.requires_version('1.8.1.0')
def testIgnoreCase(self):
# check defaults
self.assertEqual(cmd.get_setting_int('ignore_case'), 1)
self.assertEqual(cmd.get_setting_int('ignore_case_chain'), 0)
# data
natoms = 10
cmd.fragment('ala', 'm1')
cmd.copy('m2', 'm1')
cmd.alter('m1', 'chain, segi = "C", "S"')
cmd.alter('m2', 'chain, segi = "c", "s"')
cmd.alter('m2', 'resn, name = resn.lower(), name.lower()')
self.assertEqual(cmd.count_atoms('chain C'), natoms)
self.assertEqual(cmd.count_atoms('segi S'), natoms)
self.assertEqual(cmd.count_atoms('chain c'), natoms)
self.assertEqual(cmd.count_atoms('segi s'), natoms)
self.assertEqual(cmd.count_atoms('resn ALA'), natoms * 2)
self.assertEqual(cmd.count_atoms('resn ala'), natoms * 2)
self.assertEqual(cmd.count_atoms('name CA'), 2)
self.assertEqual(cmd.count_atoms('name ca'), 2)
cmd.set('ignore_case_chain')
self.assertEqual(cmd.count_atoms('chain C'), natoms * 2)
self.assertEqual(cmd.count_atoms('segi S'), natoms * 2)
self.assertEqual(cmd.count_atoms('chain c'), natoms * 2)
self.assertEqual(cmd.count_atoms('segi s'), natoms * 2)
cmd.set('ignore_case', 0)
self.assertEqual(cmd.count_atoms('resn ALA'), natoms)
self.assertEqual(cmd.count_atoms('resn ala'), natoms)
self.assertEqual(cmd.count_atoms('name CA'), 1)
self.assertEqual(cmd.count_atoms('name ca'), 1)