Coverage for tests/unit/dataset/test_example_validation.py: 100%

35 statements  

« prev     ^ index     » next       coverage.py v7.6.12, created at 2025-03-24 00:33 -0600

1import sys 

2from pathlib import Path 

3 

4import pytest 

5from muutils.json_serialize.util import _FORMAT_KEY 

6 

7from maze_dataset import MazeDataset, MazeDatasetConfig 

8 

9DATASET_PATHS: list[str] = [ 

10 p.as_posix() for p in Path("docs/examples/datasets").rglob("*.zanj") 

11] 

12 

13 

14def test_temp(): 

15 cfg = MazeDatasetConfig( 

16 name="test", 

17 grid_n=3, 

18 n_mazes=2, 

19 ) 

20 print(f"{cfg._fname_loaded = }") 

21 cfg_ser = cfg.serialize() 

22 print(f"{list(cfg_ser.keys()) = }") 

23 print(f"{cfg_ser[_FORMAT_KEY] = }") 

24 print(f"{cfg_ser['fname'] = }") 

25 cfg_load: MazeDatasetConfig = MazeDatasetConfig.load(cfg_ser) 

26 print(f"{cfg.diff(cfg_load) = }") 

27 print(f"{cfg_load._fname_loaded = }") 

28 assert cfg == cfg_load 

29 

30 

31@pytest.mark.parametrize("dataset_path_str", DATASET_PATHS) 

32def test_validate_fname(dataset_path_str: str): 

33 dataset_path: Path = Path(dataset_path_str) 

34 dataset: MazeDataset = MazeDataset.read(dataset_path) 

35 dataset_cfg: MazeDatasetConfig = dataset.cfg 

36 dataset_fname_path: str = dataset_path.name.removesuffix(".zanj") 

37 dataset_fname_loaded: str | None = dataset_cfg._fname_loaded 

38 dataset_fname_new: str = dataset_cfg.to_fname() 

39 print(f"{dataset_path.as_posix() = }") 

40 print(f"{dataset_fname_path = }") 

41 print(f"{dataset_fname_loaded = }") 

42 print(f"{dataset_fname_new = }") 

43 print(f"{dataset_cfg.summary() = }") 

44 print(f"{dataset_cfg = }") 

45 print(f"{dataset_cfg._stable_str_dump() = }") 

46 

47 print(f"{sys.version = }") 

48 

49 assert dataset_fname_path == dataset_fname_loaded 

50 assert dataset_fname_path == dataset_fname_new