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
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
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
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
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
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')])
def test_node_leaf(): node = Node('Test Node', ) assert node.is_leaf() == True
def test_bool_func_exec_none(): node = Node('Test Node', ) assert node.run_function() == True