Exemple #1
0
def test_bool_func_exec_true():
    node = Node(
        'Test Node',
        lambda h, w: h * w < 100,
    )

    assert node.run_function(h=1, w=10) == True
Exemple #2
0
def test_node_no_leaf():
    true_node = Node('True Node')

    false_node = Node('False Node')

    head_node = Node('Head Node',
                     lambda x: x < 25,
                     true_child=true_node,
                     false_child=false_node)

    assert head_node.is_leaf() == False
Exemple #3
0
def test_len():
    true_node = Node('True Node')

    false_node = Node('False Node')

    head_node = Node('Head Node',
                     lambda x: x < 10,
                     true_child=true_node,
                     false_child=false_node)

    tree = BDT(head_node)

    assert len(tree) == 3
Exemple #4
0
def test_iterator_error():
    true_node = Node('True Node')

    false_node = Node('False Node')

    head_node = Node('Head Node',
                     lambda var: var < 10,
                     true_child=true_node,
                     false_child=false_node)

    tree = BDT(head_node)

    with pytest.raises(UnboundLocalError):
        for node in tree:
            pass
Exemple #5
0
def test_iterator_false():
    true_node = Node('True Node')

    false_node = Node('False Node')

    head_node = Node('Head Node',
                     lambda var: var < 10,
                     true_child=true_node,
                     false_child=false_node)

    tree = BDT(head_node)

    tree.set_parameters({'var': 100})

    real_path = []
    path = ['Head Node', 'False Node']
    for node in tree:
        real_path.append(node.name)

    assert path == real_path
Exemple #6
0
def tree_from_dict(tree_dict):
    nodes = dict()

    variables = tree_dict.get('variables')
    for node in tree_dict.get('nodes'):
        if not node.get('function') == 'None':
            validate_bool_string(node.get('function'), variables)

            nodes[node.get('name')] = Node(
                node.get('name'), bool_str_to_funct(node.get('function')))
        else:
            nodes[node.get('name')] = Node(node.get('name'), None)

    for node in tree_dict.get('nodes'):
        father_node = nodes[node.get('name')]
        true_child_node = nodes.get(node.get('true_child'))
        false_child_node = nodes.get(node.get('false_child'))

        father_node.true_child = true_child_node
        father_node.false_child = false_child_node

    return BDT(nodes[tree_dict.get('head')])
Exemple #7
0
def test_node_leaf():
    node = Node('Test Node', )

    assert node.is_leaf() == True
Exemple #8
0
def test_bool_func_exec_none():
    node = Node('Test Node', )

    assert node.run_function() == True