Files
PlantAI-dev/tools/pymol-open-source/testing/tests/api/movie.py
T
2026-08-03 18:42:47 +08:00

92 lines
3.2 KiB
Python

from pymol import movie, cmd, testing, stored
class TestMovie(testing.PyMOLTestCase):
def _make_n_states(self, nstates):
cmd.fragment('gly', 'm1')
for state in range(2, nstates + 1):
cmd.create('m1', 'm1', 1, state)
def test_get_movie_fps(self):
self.assertEqual(30, movie.get_movie_fps(_self=cmd))
cmd.set('movie_fps', 10) # > 0
self.assertEqual(10, movie.get_movie_fps(_self=cmd))
cmd.set('movie_fps', 0) # <= 0
self.assertEqual(30, movie.get_movie_fps(_self=cmd))
def test_sweep(self):
N = 3
self._make_n_states(N)
movie.sweep()
self.assertEqual(cmd.count_frames(), N * 2)
P = 5
movie.sweep(pause=P)
self.assertEqual(cmd.count_frames(), N * 2 + P * 2)
C = 3
movie.sweep(cycles=C)
self.assertEqual(cmd.count_frames(), N * 2 * C)
def test_pause(self):
N = 3
self._make_n_states(N)
P = 10
movie.pause(pause=P)
self.assertEqual(cmd.count_frames(), 2 * P + N)
def test_rock(self):
self.skipTest("TODO") # movie.rock(first=1,last=-1,angle=30,phase=0,loop=1,axis='y'):
def test_roll(self):
self.skipTest("TODO") # movie.roll(first=1,last=-1,loop=1,axis='y'):
def test_tdroll(self):
self.skipTest("TODO") # movie.tdroll(first,rangex,rangey,rangez,skip=1):
def test_zoom(self):
self.skipTest("TODO") # movie.zoom(first,last,step=1,loop=1,axis='z'):
def test_nutate(self):
self.skipTest("TODO") # movie.nutate(first,last,angle=30,phase=0,loop=1,shift=math.pi/2.0):
def test_screw(self):
self.skipTest("TODO") # movie.screw(first,last,step=1,angle=30,phase=0,loop=1,axis='y'):
def test_timed_roll(self):
self.skipTest("TODO") # movie.timed_roll(period=12.0,cycles=1,axis='y'):
def test_add_blank(self):
self.skipTest("TODO") # movie.add_blank(duration=12.0,start=0):
def test_add_roll(self):
self.skipTest("TODO") # movie.add_roll(duration=12.0,loop=1,axis='y',start=0):
def test_add_rock(self):
self.skipTest("TODO") # movie.add_rock(duration=8.0,angle=30.0,loop=1,axis='y',start=0):
def test_add_state_sweep(self):
self.skipTest("TODO") # movie.add_state_sweep(factor=1,pause=2.0,first=-1,last=-1,loop=1,start=0):
def test_add_state_loop(self):
self.skipTest("TODO") # movie.add_state_loop(factor=1,pause=2.0,first=-1,last=-1,loop=1,start=0):
def test_add_nutate(self):
self.skipTest("TODO") # movie.add_nutate(duration=8.0, angle=30.0, spiral=0, loop=1,
@testing.requires_version('2.4')
def test_add_scenes(self):
cmd.fragment('gly', 'm1')
cmd.scene('001', 'store')
cmd.turn('x', 90)
cmd.scene('002', 'store')
movie.add_scenes()
self.assertEqual(cmd.count_frames(), 615)
cmd.mset()
movie.add_scenes(['001', '002'], pause=3)
self.assertEqual(cmd.count_frames(), 315)
cmd.mset()
movie.add_scenes('["001", "002"]') # string
self.assertEqual(cmd.count_frames(), 615)
def test_produce(self):
self.skipTest("TODO") # movie.produce(filename, mode='', first=0, last=0, preserve=0,