a b/tests/test.activations.py
1
from osim.env import L2RunEnv
2
import numpy as np
3
import unittest
4
5
class ActivationsTest(unittest.TestCase):
6
    def test_activations(self):
7
        env = L2RunEnv(visualize=False)
8
        observation = env.reset()
9
10
        newact = np.array([0.0] * 18)
11
        env.osim_model.set_activations(newact)
12
        
13
        current = np.array(env.osim_model.get_activations())
14
        dist = np.linalg.norm(newact - current)
15
        self.assertTrue(dist < 0.05)
16
        
17
        newact = np.array([1.0] * 18)
18
        env.osim_model.set_activations(newact)
19
20
        current = np.array(env.osim_model.get_activations())
21
        dist = np.linalg.norm(newact - current)
22
        self.assertTrue(dist < 0.05)
23
24
    def test_activations_changes(self):
25
        env = L2RunEnv(visualize=False)
26
27
        # Do not set new activations
28
        newAct = [0.9] * 18
29
        observation = env.reset()
30
        env.osim_model.set_activations(newAct)
31
        for i in range(5): 
32
            withoutAct = env.osim_model.get_activations()
33
            observation, reward, done, info = env.step([0.5]*18)
34
35
        # Set new activations
36
        newAct = [0.1] * 18
37
        observation = env.reset()
38
        env.osim_model.set_activations(newAct)
39
        for i in range(5): 
40
            withAct = env.osim_model.get_activations()
41
            observation, reward, done, info = env.step([0.5]*18)
42
43
        dist = np.linalg.norm(np.array(withAct) - np.array(withoutAct))
44
45
        self.assertFalse(dist < 1e-2,"Activations after 5 steps haven't changed (despite different initial conditions)")
46
47
        
48
if __name__ == '__main__':
49
    unittest.main()