Files
Thomas Holder 5c852a7d24 mpng: modal=0/1
2017-10-04 14:56:42 +02:00

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)