Module neuralops.tests.test_benchmark_datasets

Unit tests for BenchmarkDatasetRegistry and load_benchmark_dataset. Tests offline synthetic fallback, registered benchmarks, and data formats.

Functions

def test_custom_registration()
Expand source code
def test_custom_registration():
    info = BenchmarkDatasetInfo(
        name="custom_math",
        aliases=["my_math"],
        category="reasoning",
        default_hf_path="custom/math",
        synthetic_generator=lambda n, s: [{"text": f"Math prob #{i}", "label": i} for i in range(n)],
    )
    BenchmarkDatasetRegistry.register(info)
    assert BenchmarkDatasetRegistry.is_registered("custom_math")
    assert BenchmarkDatasetRegistry.is_registered("my_math")

    res = load_benchmark_dataset("my_math", use_synthetic=True, max_samples=4, return_dataloader=False)
    assert len(res) == 4
    assert res[0]["text"] == "Math prob #0"
def test_manifest_and_torch_dataset()
Expand source code
def test_manifest_and_torch_dataset():
    from neuralops.data.benchmark_datasets.manifest import BenchmarkDatasetRegistry
    from neuralops.data.benchmark_datasets.loaders import BenchmarkTorchDataset
    from neuralops.data.benchmark_datasets.synthetic import _generate_synthetic_wikitext
    
    info = BenchmarkDatasetRegistry.get("wikitext2")
    assert info is not None
    assert info.category == "language_modeling"

    samples = _generate_synthetic_wikitext(5)
    assert len(samples) == 5
    ds = BenchmarkTorchDataset(samples)
    assert len(ds) == 5
    item = ds[0]
    assert "text" in item
def test_registry_contains_standard_benchmarks()
Expand source code
def test_registry_contains_standard_benchmarks():
    benchmarks = BenchmarkDatasetRegistry.list_benchmarks()
    required = [
        "wikitext2",
        "wikitext103",
        "c4",
        "ptb",
        "pg19",
        "gsm8k",
        "humaneval",
        "mmlu",
        "pile",
        "arc",
        "arc_challenge",
        "hellaswag",
        "lambada",
        "glue_sst2",
        "glue_mrpc",
        "glue_qqp",
        "glue_stsb",
        "glue_mnli",
        "glue_qnli",
        "glue_rte",
        "glue_wnli",
        "glue_cola",
    ]
    for req in required:
        assert req in benchmarks, f"Missing benchmark '{req}' in registry."
def test_synthetic_loading_all_benchmarks()
Expand source code
def test_synthetic_loading_all_benchmarks():
    benchmarks = [
        "wikitext2",
        "c4",
        "ptb",
        "pg19",
        "gsm8k",
        "humaneval",
        "mmlu",
        "pile",
        "arc",
        "arc_challenge",
        "hellaswag",
        "lambada",
        "glue/sst2",
        "glue/mrpc",
    ]
    for b in benchmarks:
        samples = load_benchmark_dataset(
            dataset_name=b,
            use_synthetic=True,
            max_samples=10,
            return_dataloader=False,
            seed=123,
        )
        assert isinstance(samples, list)
        assert len(samples) == 10, f"Expected 10 samples for {b}, got {len(samples)}"
        assert all(isinstance(s, dict) for s in samples)

Classes

class TestBenchmarkRegistryExtended
Expand source code
class TestBenchmarkRegistryExtended:
    """Extended test cases for benchmark registry queries and edge cases."""

    def test_registry_contains_glue(self):
        benchmarks = BenchmarkDatasetRegistry.list_benchmarks()
        glue_names = [d for d in benchmarks if "glue" in str(d).lower()]
        assert len(glue_names) > 0

    def test_load_unregistered_fallback(self):
        # Unregistered dataset safely falls back to synthetic generator
        res = load_benchmark_dataset("nonexistent_dataset_xyz", use_synthetic=True, max_samples=3, return_dataloader=False)
        assert len(res) == 3
        assert "text" in res[0]

Extended test cases for benchmark registry queries and edge cases.

Methods

def test_load_unregistered_fallback(self)
Expand source code
def test_load_unregistered_fallback(self):
    # Unregistered dataset safely falls back to synthetic generator
    res = load_benchmark_dataset("nonexistent_dataset_xyz", use_synthetic=True, max_samples=3, return_dataloader=False)
    assert len(res) == 3
    assert "text" in res[0]
def test_registry_contains_glue(self)
Expand source code
def test_registry_contains_glue(self):
    benchmarks = BenchmarkDatasetRegistry.list_benchmarks()
    glue_names = [d for d in benchmarks if "glue" in str(d).lower()]
    assert len(glue_names) > 0