File size: 1,379 Bytes
7e976d8
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import unittest

from space_utils import MotionRequest, estimate_zero_gpu_duration, validate_motion_request


class MotionRequestTests(unittest.TestCase):
    def test_normalizes_valid_request(self):
        result = validate_motion_request("  walk   forward  ", 5, 42, 50, True)

        self.assertEqual(
            result,
            MotionRequest(
                prompt="walk forward",
                duration_seconds=5.0,
                seed=42,
                diffusion_steps=50,
                standard_tpose=True,
            ),
        )

    def test_rejects_invalid_values(self):
        invalid_requests = [
            ("", 5, 42, 50, True),
            ("walk", 0, 42, 50, True),
            ("walk", 11, 42, 50, True),
            ("walk", 5, -1, 50, True),
            ("walk", 5, 42, 101, True),
        ]

        for values in invalid_requests:
            with self.subTest(values=values), self.assertRaises(ValueError):
                validate_motion_request(*values)

    def test_duration_estimate_is_bounded_and_increases_with_work(self):
        short = estimate_zero_gpu_duration("walk", 1, 1, 10, True)
        long = estimate_zero_gpu_duration("walk", 10, 1, 100, True)

        self.assertGreaterEqual(short, 60)
        self.assertGreater(long, short)
        self.assertLessEqual(long, 180)


if __name__ == "__main__":
    unittest.main()