Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adds dict conversion test for ActuatorBase configs #1608

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CONTRIBUTORS.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ Guidelines for modifications:
* Yujian Zhang
* Zhengyu Zhang
* Ziqi Fan
* Manuel Schweiger

## Acknowledgements

Expand Down
22 changes: 22 additions & 0 deletions source/extensions/omni.isaac.lab/test/utils/test_configclass.py
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,16 @@ class BasicDemoTorchCfg:
some_tensor: torch.Tensor = torch.Tensor([1, 2, 3])


@configclass
class BasicActuatorCfg:
"""Dummy configuration class for ActuatorBase config."""

joint_names_expr: list[str] = ["some_string"]
joint_parameter_lookup: torch.Tensor = torch.Tensor([1, 2, 3])
stiffness: float = 1.0
damping: float = 2.0


"""
Dummy configuration to check type annotations ordering.
"""
Expand Down Expand Up @@ -530,6 +540,18 @@ def test_dict_conversion(self):
self.assertEqual(torch_cfg_dict["some_number"], 0)
self.assertTrue(torch.all(torch_cfg_dict["some_tensor"] == torch.tensor([1, 2, 3])))

def test_actuator_cfg_dict_conversion(self):
"""Test dict conversion of ActuatorConfig."""
# create a basic actuator config with a Torch.Tensor (joint_parameter_lookup)
actuator_cfg = BasicActuatorCfg()
# return writable attributes of config object
actuator_cfg_dict_attr = actuator_cfg.__dict__
# check if __dict__ attribute of config is not empty
self.assertTrue(len(actuator_cfg_dict_attr) > 0)
# class_to_dict utility function should return a primitive dictionary
actuator_cfg_dict = class_to_dict(actuator_cfg.joint_parameter_lookup)
self.assertTrue(isinstance(actuator_cfg_dict, dict))

def test_dict_conversion_order(self):
"""Tests that order is conserved when converting to dictionary."""
true_outer_order = ["device_id", "env", "robot_default_state", "list_config"]
Expand Down