spec-b300 / source /tests /unit /train /test_dataloader.py
khazic's picture
Archive three-epoch run: logs and provenance part 5
2dd5f57 verified
Raw History Blame Contribute Delete
892 Bytes
import pickle
from types import SimpleNamespace
from typing import Any
from speculators.train.dataloader import _make_worker_dataset
def test_worker_dataset_drops_large_sampler_only_lengths_without_mutating_source():
# Duck-typed stand-in: _make_worker_dataset only copies and clears one
# attribute, so a real BaseDataset (which needs a dataset on disk) is not
# worth constructing here. Annotated Any so the seam stays untyped on purpose.
dataset: Any = SimpleNamespace(
approx_lengths=list(range(10_000)),
marker="preserved",
)
worker_dataset: Any = _make_worker_dataset(dataset)
assert worker_dataset is not dataset
assert len(dataset.approx_lengths) == 10_000
assert worker_dataset.approx_lengths == []
assert worker_dataset.marker == "preserved"
assert len(pickle.dumps(worker_dataset)) < len(pickle.dumps(dataset)) / 10