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
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)
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)