45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
from frozendict import frozendict
|
|
from qubed import Qube
|
|
|
|
|
|
def test_iter_leaves_simple():
|
|
def make_hashable(list_like):
|
|
for d in list_like:
|
|
yield frozendict(d)
|
|
|
|
q = Qube.from_dict({"a=1/2": {"b=1/2": {}}})
|
|
entries = [
|
|
{"a": "1", "b": "1"},
|
|
{"a": "1", "b": "2"},
|
|
{"a": "2", "b": "1"},
|
|
{"a": "2", "b": "2"},
|
|
]
|
|
|
|
assert set(make_hashable(q.leaves())) == set(make_hashable(entries))
|
|
|
|
|
|
def test_datacubes():
|
|
q = Qube.from_tree("""
|
|
root, class=d1
|
|
├── date=19920101/19930101/19940101, params=1/2/3
|
|
└── date=19950101
|
|
├── level=1/2/3, params=1/2/3/4
|
|
└── params=1/2/3/4
|
|
""")
|
|
assert len(list(q.datacubes())) == 3
|
|
|
|
assert list(q.datacubes()) == [
|
|
{
|
|
"class": ["d1"],
|
|
"date": ["19920101", "19930101", "19940101"],
|
|
"params": ["1", "2", "3"],
|
|
},
|
|
{
|
|
"class": ["d1"],
|
|
"date": ["19950101"],
|
|
"level": ["1", "2", "3"],
|
|
"params": ["1", "2", "3", "4"],
|
|
},
|
|
{"class": ["d1"], "date": ["19950101"], "params": ["1", "2", "3", "4"]},
|
|
]
|