Skip to content
Merged
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
18 changes: 16 additions & 2 deletions dimos/models/depth/test_metric3d.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
from contextlib import contextmanager

import numpy as np
import pytest

Expand All @@ -6,6 +8,16 @@
from dimos.utils.data import get_data


@contextmanager
def skip_xformers_unsupported():
try:
yield
except NotImplementedError as e:
if "memory_efficient_attention" in str(e):
pytest.skip(f"xformers not supported on this GPU: {e}")
raise


@pytest.fixture
def sample_intrinsics() -> list[float]:
"""Sample camera intrinsics [fx, fy, cx, cy]."""
Expand Down Expand Up @@ -51,7 +63,8 @@ def test_metric3d_infer_depth(sample_intrinsics: list[float]) -> None:
rgb_array = image.data

# Run inference
depth_map = model.infer_depth(rgb_array)
with skip_xformers_unsupported():
depth_map = model.infer_depth(rgb_array)

# Verify output
assert isinstance(depth_map, np.ndarray)
Expand All @@ -78,7 +91,8 @@ def test_metric3d_multiple_inferences(sample_intrinsics: list[float]) -> None:
# Run multiple inferences
depths = []
for _ in range(3):
depth = model.infer_depth(rgb_array)
with skip_xformers_unsupported():
depth = model.infer_depth(rgb_array)
depths.append(depth)

# Results should be consistent
Expand Down