tests(update): updating tests

This commit is contained in:
CarolinePascal
2026-07-03 13:49:38 +02:00
parent 67b18d87b2
commit e36b0368d4
4 changed files with 12 additions and 33 deletions
+1 -1
View File
@@ -67,7 +67,7 @@ def get_hf_features_from_features(features: dict) -> datasets.Features:
elif ft["shape"] == (1,): elif ft["shape"] == (1,):
hf_features[key] = datasets.Value(dtype=ft["dtype"]) hf_features[key] = datasets.Value(dtype=ft["dtype"])
elif len(ft["shape"]) == 1: elif len(ft["shape"]) == 1:
# pyarrow rejects fixed_size_list[0], so use a variable length list instead # pyarrow rejects fixed-size lists of length 0, so use a variable length list instead
length = ft["shape"][0] if ft["shape"][0] > 0 else -1 length = ft["shape"][0] if ft["shape"][0] > 0 else -1
hf_features[key] = datasets.Sequence(length=length, feature=datasets.Value(dtype=ft["dtype"])) hf_features[key] = datasets.Sequence(length=length, feature=datasets.Value(dtype=ft["dtype"]))
elif len(ft["shape"]) == 2: elif len(ft["shape"]) == 2:
+3 -3
View File
@@ -689,7 +689,7 @@ def test_compute_episode_stats_string_features_skipped():
def test_compute_episode_stats_zero_width_features_skipped(caplog): def test_compute_episode_stats_zero_width_features_skipped(caplog):
"""Test that features with a zero-width dim (e.g. shape=(0,)) are skipped with a warning.""" """Test that features with a zero-width dim (e.g. shape=(0,)) are skipped with a debug log."""
episode_data = { episode_data = {
"empty": np.zeros((100, 0), dtype=np.float32), # Zero-width feature "empty": np.zeros((100, 0), dtype=np.float32), # Zero-width feature
"action": np.random.normal(0, 1, (100, 5)), "action": np.random.normal(0, 1, (100, 5)),
@@ -699,10 +699,10 @@ def test_compute_episode_stats_zero_width_features_skipped(caplog):
"action": {"dtype": "float32", "shape": (5,)}, "action": {"dtype": "float32", "shape": (5,)},
} }
with caplog.at_level(logging.WARNING): with caplog.at_level(logging.DEBUG):
stats = compute_episode_stats(episode_data, features) stats = compute_episode_stats(episode_data, features)
# Zero-width features should be skipped with a warning, others computed as usual # Zero-width features should be skipped with a debug log, others computed as usual
assert "empty" not in stats assert "empty" not in stats
assert "empty" in caplog.text assert "empty" in caplog.text
assert "action" in stats assert "action" in stats
+8
View File
@@ -1804,3 +1804,11 @@ def test_episode_filter_unknown_key_raises(tmp_path, lerobot_dataset_factory):
root=dataset.root, root=dataset.root,
episode_filter=lambda ep: ep["not_a_real_field"] > 0, episode_filter=lambda ep: ep["not_a_real_field"] > 0,
) )
def test_get_hf_features_zero_width_feature_does_not_raise_on_from_dict():
import datasets
features = {"empty": {"dtype": "float32", "shape": (0,), "names": ["empty"]}}
hf_features = get_hf_features_from_features(features)
datasets.Dataset.from_dict({"empty": [[], []]}, features=hf_features)
-29
View File
@@ -1,29 +0,0 @@
#!/usr/bin/env python
# Copyright 2026 The HuggingFace Inc. team. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import pytest
pytest.importorskip("datasets", reason="datasets is required (install lerobot[dataset])")
import datasets
from lerobot.datasets.feature_utils import get_hf_features_from_features
def test_get_hf_features_zero_width_feature_does_not_raise_on_from_dict():
features = {"empty": {"dtype": "float32", "shape": (0,), "names": ["empty"]}}
hf_features = get_hf_features_from_features(features)
datasets.Dataset.from_dict({"empty": [[], []]}, features=hf_features)