Skip to content

Commit 3c2ca66

Browse files
Merge zero-joint benchmark support
2 parents 54da084 + 613876d commit 3c2ca66

2 files changed

Lines changed: 11 additions & 2 deletions

File tree

source/isaaclab/isaaclab/benchmark/method_benchmark.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,9 +85,11 @@ class MethodBenchmarkRunnerConfig:
8585

8686
def __post_init__(self) -> None:
8787
"""Validate benchmark workload sizes."""
88-
for field_name in ("num_iterations", "num_instances", "num_bodies", "num_joints"):
88+
for field_name in ("num_iterations", "num_instances", "num_bodies"):
8989
if getattr(self, field_name) <= 0:
9090
raise ValueError(f"{field_name} must be greater than zero")
91+
if self.num_joints < 0:
92+
raise ValueError("num_joints must be non-negative")
9193
if self.warmup_steps < 0:
9294
raise ValueError("warmup_steps must be non-negative")
9395

source/isaaclab/test/benchmark/test_method_benchmark.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
("warmup_steps", -1),
2424
("num_instances", 0),
2525
("num_bodies", 0),
26-
("num_joints", 0),
26+
("num_joints", -1),
2727
),
2828
)
2929
def test_config_rejects_invalid_workload_sizes(field: str, value: int) -> None:
@@ -32,6 +32,13 @@ def test_config_rejects_invalid_workload_sizes(field: str, value: int) -> None:
3232
MethodBenchmarkRunnerConfig(**{field: value})
3333

3434

35+
def test_config_accepts_zero_joints_for_rigid_assets() -> None:
36+
"""Rigid-object benchmarks should represent their zero-joint workload accurately."""
37+
config = MethodBenchmarkRunnerConfig(num_joints=0)
38+
39+
assert config.num_joints == 0
40+
41+
3542
def _runner(*, num_iterations: int = 3, warmup_steps: int = 0) -> MethodBenchmarkRunner:
3643
runner = object.__new__(MethodBenchmarkRunner)
3744
runner._config = MethodBenchmarkRunnerConfig(

0 commit comments

Comments
 (0)