mirror of
https://github.com/schrodinger/pymol-open-source.git
synced 2026-06-04 20:04:21 +08:00
299 lines
7.5 KiB
Python
299 lines
7.5 KiB
Python
|
|
from pymol import cmd, testing, stored
|
|
|
|
class TestMoving(testing.PyMOLTestCase):
|
|
|
|
def prep_movie(self):
|
|
cmd.mset("1x60")
|
|
|
|
def testAccept(self):
|
|
cmd.accept
|
|
self.skipTest("TODO")
|
|
|
|
def testBackward(self):
|
|
self.prep_movie()
|
|
cmd.middle()
|
|
cmd.backward()
|
|
self.assertEquals(cmd.get_frame(),30)
|
|
|
|
cmd.frame(1)
|
|
cmd.backward()
|
|
self.assertEquals(cmd.get_frame(),1)
|
|
|
|
|
|
def testDecline(self):
|
|
cmd.decline
|
|
self.skipTest("TODO")
|
|
|
|
def testEnding(self):
|
|
self.prep_movie()
|
|
cmd.ending()
|
|
self.assertEquals(cmd.get_frame(),60)
|
|
|
|
def testForward(self):
|
|
self.prep_movie()
|
|
cmd.forward()
|
|
self.assertEquals(cmd.get_frame(),2)
|
|
cmd.forward()
|
|
self.assertEquals(cmd.get_frame(),3)
|
|
cmd.frame(30)
|
|
self.assertEquals(cmd.get_frame(),30)
|
|
cmd.frame(60)
|
|
cmd.forward()
|
|
self.assertEquals(cmd.get_frame(),60)
|
|
|
|
cmd.frame(60)
|
|
cmd.forward()
|
|
self.assertEquals(cmd.get_frame(),60)
|
|
|
|
def testFrame(self):
|
|
self.prep_movie()
|
|
cmd.frame(30)
|
|
self.assertEquals(cmd.get_frame(),30)
|
|
|
|
cmd.frame(60)
|
|
self.assertEquals(cmd.get_frame(),60)
|
|
|
|
cmd.frame(65)
|
|
self.assertEquals(cmd.get_frame(),60)
|
|
|
|
cmd.frame(-5)
|
|
self.assertEquals(cmd.get_frame(),1)
|
|
|
|
cmd.frame(10)
|
|
cmd.frame(1)
|
|
self.assertEquals(cmd.get_frame(),1)
|
|
|
|
|
|
def testGetFrame(self):
|
|
self.prep_movie()
|
|
cmd.frame(30)
|
|
self.assertEquals(cmd.get_frame(),30)
|
|
|
|
cmd.frame(60)
|
|
self.assertEquals(cmd.get_frame(),60)
|
|
|
|
cmd.frame(65)
|
|
self.assertEquals(cmd.get_frame(),60)
|
|
|
|
cmd.frame(-5)
|
|
self.assertEquals(cmd.get_frame(),1)
|
|
|
|
cmd.frame(10)
|
|
cmd.frame(1)
|
|
self.assertEquals(cmd.get_frame(),1)
|
|
|
|
def testGetMoviePlaying(self):
|
|
self.prep_movie()
|
|
cmd.mplay()
|
|
self.assertEquals(cmd.get_movie_playing(),1)
|
|
|
|
cmd.mstop()
|
|
self.assertEquals(cmd.get_movie_playing(),0)
|
|
|
|
|
|
def testGetState(self):
|
|
cmd.get_state
|
|
self.skipTest("TODO")
|
|
|
|
def testMadd(self):
|
|
# test clearing
|
|
self.prep_movie()
|
|
self.assertEquals(cmd.count_frames(),60)
|
|
|
|
# test states and frame mapping
|
|
cmd.madd("1x10 1 -10 10 -1")
|
|
self.assertEquals(cmd.count_frames(),90)
|
|
|
|
cmd.frame(1)
|
|
self.assertEquals(cmd.get_frame(),1)
|
|
self.assertEquals(cmd.get("state"),"1")
|
|
cmd.frame(10)
|
|
self.assertEquals(cmd.get_frame(),10)
|
|
self.assertEquals(cmd.get("state"),"1")
|
|
cmd.frame(72)
|
|
self.assertEquals(cmd.get_frame(),72)
|
|
self.assertEquals(cmd.get("state"),"2")
|
|
cmd.frame(82)
|
|
self.assertEquals(cmd.get_frame(),82)
|
|
self.assertEquals(cmd.get("state"),"9")
|
|
cmd.frame(90)
|
|
self.assertEquals(cmd.get_frame(),90)
|
|
self.assertEquals(cmd.get("state"),"1")
|
|
|
|
def testMappend(self):
|
|
self.prep_movie()
|
|
cmd.fragment("ala")
|
|
cmd.mappend(5,"delete *")
|
|
cmd.mappend(5,"frame 1")
|
|
cmd.frame(5)
|
|
self.assertEquals(len(cmd.get_names()),0)
|
|
self.assertEquals(cmd.get_frame(),1)
|
|
|
|
|
|
def testMclear(self):
|
|
cmd.mclear
|
|
self.skipTest("TODO")
|
|
|
|
def testMcopy(self):
|
|
cmd.mcopy
|
|
self.skipTest("TODO")
|
|
|
|
def testMdelete(self):
|
|
cmd.mset("1x10 1 -10 10 -1")
|
|
|
|
# 1-10 = state 1
|
|
# 11-20 = states 1..10
|
|
# 21-30 = states 10..1
|
|
|
|
cmd.mdelete(count=10, frame=11)
|
|
# simple delete
|
|
self.assertEquals(cmd.count_frames(),20)
|
|
|
|
# test state mapping
|
|
cmd.frame(1)
|
|
self.assertEquals(cmd.get("state"),"1")
|
|
cmd.frame(11)
|
|
self.assertEquals(cmd.get("state"),"10")
|
|
cmd.frame(20)
|
|
self.assertEquals(cmd.get("state"),"1")
|
|
|
|
def testMdo(self):
|
|
self.prep_movie()
|
|
cmd.fragment("ala")
|
|
cmd.mdo(5,"delete *")
|
|
cmd.frame(5)
|
|
self.assertEquals(len(cmd.get_names()),0)
|
|
|
|
def testMdump(self):
|
|
cmd.mdump
|
|
self.skipTest("TODO: This prints to console, not sure how to test.")
|
|
|
|
def testMiddle(self):
|
|
self.prep_movie()
|
|
cmd.middle()
|
|
self.assertEquals(cmd.get_frame(),31)
|
|
|
|
def testMinsert(self):
|
|
self.prep_movie()
|
|
cmd.minsert(20)
|
|
self.assertEquals(cmd.count_frames(),80)
|
|
|
|
# need a more sophisticated test for this
|
|
|
|
|
|
def testMmatrix(self):
|
|
cmd.mmatrix
|
|
self.skipTest("TODO")
|
|
|
|
def testMmove(self):
|
|
cmd.mmove
|
|
self.skipTest("TODO")
|
|
|
|
def testMplay(self):
|
|
self.prep_movie()
|
|
cmd.mplay()
|
|
self.assertEquals(cmd.get_movie_playing(),1)
|
|
cmd.mstop()
|
|
|
|
@testing.foreach(0, 1)
|
|
@testing.requires_version('1.8.6')
|
|
def testMpng(self, modal):
|
|
import glob, os
|
|
|
|
shape2 = (100, 100)
|
|
cmd.mset("1x4")
|
|
cmd.mdo(1, 'bg_color red')
|
|
cmd.mdo(3, 'bg_color blue')
|
|
|
|
with testing.mkdtemp() as dirname:
|
|
cmd.mpng(os.path.join(dirname, 'image'), width=shape2[0], height=shape2[1])
|
|
filenames = glob.glob(os.path.join(dirname, 'image*.png'))
|
|
filenames.sort()
|
|
|
|
self.assertEqual(4, len(filenames))
|
|
|
|
img = self.get_imagearray(filenames[0])
|
|
self.assertEqual(img.shape[:2], shape2)
|
|
self.assertImageHasColor('red', img)
|
|
|
|
img = self.get_imagearray(filenames[-1])
|
|
self.assertEqual(img.shape[:2], shape2)
|
|
self.assertImageHasColor('blue', img)
|
|
|
|
def testMset(self):
|
|
# basic tet
|
|
self.prep_movie()
|
|
self.assertEquals(cmd.count_frames(),60)
|
|
|
|
# test clearing
|
|
cmd.mset()
|
|
self.assertEquals(cmd.count_frames(),0)
|
|
|
|
# test states and frame mapping
|
|
cmd.mset("1x10 1 -10 10 -1")
|
|
cmd.frame(1)
|
|
self.assertEquals(cmd.get_frame(),1)
|
|
self.assertEquals(cmd.get("state"),"1")
|
|
cmd.frame(10)
|
|
self.assertEquals(cmd.get_frame(),10)
|
|
self.assertEquals(cmd.get("state"),"1")
|
|
cmd.frame(12)
|
|
self.assertEquals(cmd.get_frame(),12)
|
|
self.assertEquals(cmd.get("state"),"2")
|
|
cmd.frame(22)
|
|
self.assertEquals(cmd.get_frame(),22)
|
|
self.assertEquals(cmd.get("state"),"9")
|
|
cmd.frame(30)
|
|
self.assertEquals(cmd.get_frame(),30)
|
|
self.assertEquals(cmd.get("state"),"1")
|
|
|
|
def testMstop(self):
|
|
self.prep_movie()
|
|
cmd.mplay()
|
|
cmd.mstop()
|
|
self.assertEquals(cmd.get_movie_playing(),0)
|
|
|
|
def testMtoggle(self):
|
|
self.prep_movie()
|
|
cmd.mstop()
|
|
|
|
# toggle on
|
|
cmd.mtoggle()
|
|
self.assertEquals(cmd.get_movie_playing(),1)
|
|
# toggle off
|
|
cmd.mtoggle()
|
|
self.assertEquals(cmd.get_movie_playing(),0)
|
|
|
|
|
|
def testMview(self):
|
|
cmd.mview
|
|
self.skipTest("TODO")
|
|
|
|
def testRewind(self):
|
|
self.prep_movie()
|
|
cmd.frame(30)
|
|
self.assertEquals(cmd.get_frame(), 30)
|
|
|
|
cmd.rewind()
|
|
self.assertEquals(cmd.get_frame(), 1)
|
|
|
|
|
|
def testSetFrame(self):
|
|
|
|
self.prep_movie()
|
|
|
|
# within
|
|
cmd.set_frame(30)
|
|
self.assertEquals(cmd.get_frame(),30)
|
|
|
|
# extent <
|
|
cmd.set_frame(-1)
|
|
self.assertEquals(cmd.get_frame(),1)
|
|
|
|
# extent >
|
|
cmd.set_frame(300)
|
|
self.assertEquals(cmd.get_frame(),60)
|
|
|
|
|