1
+ import io
2
+
1
3
import pandas as pd
2
4
import polars as pl
3
5
import pydot
23
25
from tests .node .test_node import assert_tree_structure_node_root
24
26
from tests .test_constants import Constants
25
27
26
- tree_node_str = """a [age=90]\n ├── b [age=65]\n │ ├── d [age=40]\n │ └── e [age=35]\n │ ├── g [age=10]
27
- │ └── h [age=6]\n └── c [age=60]\n └── f [age=38]\n """
28
- tree_node_no_attr_str = """a\n ├── b\n │ ├── d\n │ └── e\n │ ├── g\n │ └── h\n └── c\n └── f\n """
29
-
28
+ tree_node_str = (
29
+ "a [age=90]\n "
30
+ "├── b [age=65]\n "
31
+ "│ ├── d [age=40]\n "
32
+ "│ └── e [age=35]\n "
33
+ "│ ├── g [age=10]\n "
34
+ "│ └── h [age=6]\n "
35
+ "└── c [age=60]\n "
36
+ " └── f [age=38]\n "
37
+ )
38
+ tree_node_no_attr_str = (
39
+ "a\n "
40
+ "├── b\n "
41
+ "│ ├── d\n "
42
+ "│ └── e\n "
43
+ "│ ├── g\n "
44
+ "│ └── h\n "
45
+ "└── c\n "
46
+ " └── f\n "
47
+ )
48
+ tree_node_hstr = (
49
+ " ┌─ d\n "
50
+ " ┌─ b ─┤ ┌─ g\n "
51
+ "─ a ─┤ └─ e ─┤\n "
52
+ " │ └─ h\n "
53
+ " └─ c ─── f\n "
54
+ )
55
+ # fmt: off
56
+ tree_node_branch_hstr = (
57
+ " ┌─ d\n "
58
+ "─ b ─┤ ┌─ g\n "
59
+ " └─ e ─┤\n "
60
+ " └─ h\n "
61
+ )
62
+ # fmt: on
30
63
LOCAL = Constants .LOCAL
31
64
32
65
33
66
class TestPrintTree :
34
67
@staticmethod
35
68
def test_print_tree_child_node_name (tree_node ):
36
- expected_str = "b\n " "├── d\n " "└── e\n " " ├── g\n " " └── h\n "
69
+ # fmt: off
70
+ expected_str = (
71
+ "b\n "
72
+ "├── d\n "
73
+ "└── e\n "
74
+ " ├── g\n "
75
+ " └── h\n "
76
+ )
77
+ # fmt: on
37
78
assert_print_statement (
38
79
print_tree ,
39
80
expected_str ,
@@ -54,7 +95,15 @@ def test_print_tree_child_node_name_error(tree_node):
54
95
55
96
@staticmethod
56
97
def test_print_tree_child_node_path (tree_node ):
57
- expected_str = "b\n " "├── d\n " "└── e\n " " ├── g\n " " └── h\n "
98
+ # fmt: off
99
+ expected_str = (
100
+ "b\n "
101
+ "├── d\n "
102
+ "└── e\n "
103
+ " ├── g\n "
104
+ " └── h\n "
105
+ )
106
+ # fmt: on
58
107
assert_print_statement (
59
108
print_tree ,
60
109
expected_str ,
@@ -352,20 +401,19 @@ def test_print_tree_custom_style_missing_style_error(tree_node):
352
401
)
353
402
assert str (exc_info .value ) == Constants .ERROR_NODE_EXPORT_PRINT_STYLE_SELECT
354
403
404
+ @staticmethod
405
+ def test_print_tree_print_kwargs (tree_node ):
406
+ output = io .StringIO ()
407
+ print_tree (tree_node , file = output )
408
+ assert output .getvalue () == tree_node_no_attr_str
409
+
355
410
356
411
class TestHPrintTree :
357
412
@staticmethod
358
413
def test_hprint_tree (tree_node ):
359
- expected_str = (
360
- " ┌─ d\n "
361
- " ┌─ b ─┤ ┌─ g\n "
362
- "─ a ─┤ └─ e ─┤\n "
363
- " │ └─ h\n "
364
- " └─ c ─── f\n "
365
- )
366
414
assert_print_statement (
367
415
hprint_tree ,
368
- expected_str ,
416
+ tree_node_hstr ,
369
417
tree = tree_node ,
370
418
)
371
419
@@ -473,12 +521,9 @@ def test_hprint_tree_diff_node_name_length(tree_node):
473
521
474
522
@staticmethod
475
523
def test_hprint_tree_child_node_name (tree_node ):
476
- expected_str = (
477
- " ┌─ d\n " "─ b ─┤ ┌─ g\n " " └─ e ─┤\n " " └─ h\n "
478
- )
479
524
assert_print_statement (
480
525
hprint_tree ,
481
- expected_str ,
526
+ tree_node_branch_hstr ,
482
527
tree = tree_node ,
483
528
node_name_or_path = "b" ,
484
529
)
@@ -496,12 +541,9 @@ def test_hprint_tree_child_node_name_error(tree_node):
496
541
497
542
@staticmethod
498
543
def test_hprint_tree_child_node_path (tree_node ):
499
- expected_str = (
500
- " ┌─ d\n " "─ b ─┤ ┌─ g\n " " └─ e ─┤\n " " └─ h\n "
501
- )
502
544
assert_print_statement (
503
545
hprint_tree ,
504
- expected_str ,
546
+ tree_node_branch_hstr ,
505
547
tree = tree_node ,
506
548
node_name_or_path = "a/b" ,
507
549
)
@@ -749,6 +791,12 @@ def test_hprint_tree_custom_style_missing_style_error(tree_node):
749
791
hprint_tree (tree_node , style = ["-" , "+" , "+" , "|" , "-" , "=" ])
750
792
assert str (exc_info .value ) == Constants .ERROR_NODE_EXPORT_HPRINT_STYLE_SELECT
751
793
794
+ @staticmethod
795
+ def test_hprint_tree_print_kwargs (tree_node ):
796
+ output = io .StringIO ()
797
+ hprint_tree (tree_node , file = output )
798
+ assert output .getvalue () == tree_node_hstr
799
+
752
800
753
801
class TestTreeToDataFrame :
754
802
@staticmethod
0 commit comments