Beispiel #1
0
 def test_property_helper(self):
     muscle = osim.Thelen2003Muscle()
     # set max_isometric_force property using PropertyHelper
     # then retrieve using get_max_isometric_force native method
     property = muscle.getPropertyByName('max_isometric_force')
     osim.PropertyHelper.setValueDouble(200, property)
     assert muscle.get_max_isometric_force() == 200
Beispiel #2
0
    def test_Thelen2003Muscle_helper_classes(self):
        # This test exists because some classes that Thelen2003Muscle used were
        # not accessibly in the bindings.
        muscle = osim.Thelen2003Muscle()

        fwpm = muscle.getPennationModel()
        fwpm.get_optimal_fiber_length()

        adm = muscle.getActivationModel()
        adm.get_activation_time_constant()
    def test_component_list(self):
        model = osim.Model(os.path.join(test_dir, "arm26.osim"))
        model.finalizeFromProperties()

        num_components = 0
        for comp in model.getComponentsList():
            num_components += 1
        assert num_components > 0

        num_bodies = 0
        for body in model.getBodyList():
            num_bodies += 1
            body.getMass()
        assert num_bodies == 2

        num_joints = 0
        for joint in model.getJointList():
            num_joints += 1
            joint.numCoordinates()
        assert num_joints == 2

        # Custom filtering.
        num_bodies = 0
        for frame in model.getFrameList():
            body = osim.Body.safeDownCast(frame)
            if body != None:
                num_bodies += 1
                print(body.getName())
                body.getInertia()
        assert num_bodies == 2

        model = osim.Model()

        thelenMuscle = osim.Thelen2003Muscle("Darryl", 1, 0.5, 0.5, 0)
        millardMuscle = osim.Millard2012EquilibriumMuscle("Matt", 1, 0.5,
                                                          0.5, 0)

        model.addComponent(thelenMuscle)
        model.addComponent(millardMuscle)

        # Total number of muscles is 2.
        assert len(set(model.getMuscleList())) == 2
        for muscle in model.getMuscleList():
            assert (isinstance(muscle, osim.Thelen2003Muscle) or
                    isinstance(muscle, osim.Millard2012EquilibriumMuscle))

        # There is exactly 1 Thelen2003Muscle.
        assert len(set(model.getThelen2003MuscleList())) == 1
        for muscle in model.getThelen2003MuscleList():
            assert isinstance(muscle, osim.Thelen2003Muscle)

        # There is exactly 1 Millard2012EquilibriumMuscle.
        assert len(set(model.getMillard2012EquilibriumMuscleList())) == 1
        for muscle in model.getMillard2012EquilibriumMuscleList():
            assert isinstance(muscle, osim.Millard2012EquilibriumMuscle)
Beispiel #4
0
    def test_muscle_helper_classes(self):
        # This test exists because some classes that Thelen2003Muscle used were
        # not accessibly in the bindings.
        muscle = osim.Thelen2003Muscle()

        fwpm = muscle.getPennationModel()
        fwpm.get_optimal_fiber_length()

        adm = muscle.getActivationModel()
        adm.get_activation_time_constant()

        muscle = osim.Millard2012EquilibriumMuscle()

        tendonFL = osim.TendonForceLengthCurve()
        muscle.setTendonForceLengthCurve(tendonFL)