Esempio n. 1
0
def test_depth_first_search():
    section = ExperimentSection(make_tree(['session', 'block', 'trial'], {}), ChainMap())
    section[1][2].data['foo'] = True

    key = lambda node: node.data.get('foo', False)
    search_result = section.depth_first_search(key)
    assert search_result == [section, section[1], section[1][2]]

    assert section.depth_first_search(lambda node: False) == []
Esempio n. 2
0
def test_depth_first_path_search():
    section = ExperimentSection(make_tree(['session', 'block', 'trial'], {}), ChainMap())
    section[2][1].data['foo'] = True  # Target.
    section[1][2].data['foo'] = True  # Red herring.
    section.data['bar'] = True
    section[1].data['bar'] = False

    key = lambda node: node.data.get('foo', False)
    path_key = lambda node: node.data.get('bar', False)
    search_result = section.depth_first_search(key, path_key=path_key)
    assert search_result == [section, section[2], section[2][1]]

    assert section.depth_first_search(lambda node: True, path_key=lambda node: False) == []
    assert section.depth_first_search(lambda node: False, path_key=lambda node: True) == []