tahamajs/RR / Codes /tests /test_datasets.py
tahamajs's picture
download
raw
2.23 kB
"""
Unit tests for benchmark dataset registry, loaders, and synthetic generation.
"""
import unittest
import torch
from framework.data.benchmark_datasets import (
BenchmarkDatasetRegistry,
load_benchmark_dataset,
get_synthetic_benchmark_sample,
)
class TestBenchmarkDatasets(unittest.TestCase):
"""Test suite verifying dataset loading, batch collation, and synthetic fallback."""
def test_registry_populated(self):
suites = BenchmarkDatasetRegistry.list_benchmarks()
self.assertGreaterEqual(len(suites), 10)
self.assertIn("wikitext2", suites)
self.assertIn("c4", suites)
self.assertIn("gsm8k", suites)
self.assertIn("humaneval", suites)
self.assertIn("mmlu", suites)
def test_synthetic_sample_generation(self):
samples = get_synthetic_benchmark_sample("wikitext2", num_samples=5, seed=42)
self.assertEqual(len(samples), 5)
self.assertTrue(all(isinstance(s, str) and len(s) > 0 for s in samples))
def test_load_benchmark_dataset_raw_samples(self):
samples = load_benchmark_dataset(
"wikitext2",
split="validation",
max_samples=4,
use_synthetic=True,
return_dataloader=False,
)
self.assertEqual(len(samples), 4)
item = samples[0]
self.assertIn("text", item)
self.assertIsInstance(item["text"], str)
def test_load_benchmark_dataset_dataloader(self):
loader = load_benchmark_dataset(
"wikitext2",
batch_size=2,
max_samples=4,
use_synthetic=True,
return_dataloader=True,
)
self.assertGreaterEqual(len(loader), 1)
batch = next(iter(loader))
self.assertIn("text", batch)
self.assertEqual(len(batch["text"]), 2)
def test_load_multiple_benchmark_splits(self):
for name in ["ptb", "pile", "glue_sst2", "humaneval"]:
ds = load_benchmark_dataset(
name,
max_samples=2,
use_synthetic=True,
return_dataloader=False,
)
self.assertEqual(len(ds), 2)
if __name__ == "__main__":
unittest.main()

Xet Storage Details

Size:
2.23 kB
·
Xet hash:
711f6140145a4071b4f8318e111f71ab6fdb6a017c0fe3997c1cf4516b3cca9e

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.