|
3 | 3 | import pandas as pd |
4 | 4 | import pytest |
5 | 5 |
|
6 | | -from bigtree import find_names |
7 | 6 | from bigtree.node.node import Node |
8 | 7 | from bigtree.tree.construct import ( |
9 | 8 | add_dataframe_to_tree_by_name, |
|
17 | 16 | list_to_tree_tuples, |
18 | 17 | nested_dict_to_tree, |
19 | 18 | ) |
| 19 | +from bigtree.tree.search import find_name, find_names |
20 | 20 | from bigtree.utils.exceptions import DuplicatedNodeError, TreeError |
21 | 21 | from tests.node.test_basenode import ( |
22 | 22 | assert_tree_structure_basenode_root_attr, |
@@ -362,6 +362,24 @@ def test_add_dict_to_tree_by_name(self): |
362 | 362 | assert_tree_structure_basenode_root_attr(root) |
363 | 363 | assert_tree_structure_node_root_generic(root) |
364 | 364 |
|
| 365 | + def test_add_dict_to_tree_by_name_different_dtype(self): |
| 366 | + name_dict = { |
| 367 | + "a": {"random": [1]}, |
| 368 | + "b": {"random": [1, 2]}, |
| 369 | + "c": {"random": [1, None]}, |
| 370 | + "d": {"random": [None]}, |
| 371 | + "e": {"random": None}, |
| 372 | + "f": {"random": 0}, |
| 373 | + "g": {"random": -1}, |
| 374 | + "h": {"random": [-1]}, |
| 375 | + } |
| 376 | + root = add_dict_to_tree_by_name(self.root, name_dict) |
| 377 | + nodes = ["a", "b", "c", "d", "e", "f", "g", "h"] |
| 378 | + expected_list = [[1], [1, 2], [1, None], None, None, 0, -1, [-1]] |
| 379 | + for node_name, expected in zip(nodes, expected_list): |
| 380 | + actual = find_name(root, node_name).get_attr("random") |
| 381 | + assert expected == actual, f"Expected\n{expected}\nReceived\n{actual}" |
| 382 | + |
365 | 383 | def test_add_dict_to_tree_by_name_empty(self): |
366 | 384 | with pytest.raises(ValueError): |
367 | 385 | add_dict_to_tree_by_name(self.root, {}) |
|
0 commit comments