|
8 | 8 |
|
9 | 9 | from columnflow.util import maybe_import
|
10 | 10 |
|
11 |
| -from hbw.util import build_param_product, round_sig, dict_diff, four_vec, call_once_on_config, gather_dict_diff |
| 11 | +from hbw.util import build_param_product, round_sig, dict_diff, four_vec, call_once_on_config |
12 | 12 |
|
13 | 13 | import order as od
|
14 | 14 |
|
15 | 15 | np = maybe_import("numpy")
|
16 | 16 | ak = maybe_import("awkward")
|
17 | 17 |
|
18 | 18 |
|
19 |
| -class TestDictDiff(unittest.TestCase): |
20 |
| - def test_no_difference(self): |
21 |
| - dict1 = {"name": "Alice", "age": 25} |
22 |
| - dict2 = {"name": "Alice", "age": 25} |
23 |
| - result = gather_dict_diff(dict1, dict2) |
24 |
| - self.assertEqual(result, "✅ No differences found.") |
25 |
| - |
26 |
| - def test_simple_modification(self): |
27 |
| - dict1 = {"name": "Alice", "age": 25} |
28 |
| - dict2 = {"name": "Alice", "age": 26} |
29 |
| - result = gather_dict_diff(dict1, dict2) |
30 |
| - expected_output = ( |
31 |
| - "🔄 Modified: age:\n" |
32 |
| - " - Old: 25\n" |
33 |
| - " - New: 26" |
34 |
| - ) |
35 |
| - self.assertEqual(result, expected_output) |
36 |
| - |
37 |
| - def test_addition(self): |
38 |
| - dict1 = {"name": "Alice"} |
39 |
| - dict2 = {"name": "Alice", "hobby": "cycling"} |
40 |
| - result = gather_dict_diff(dict1, dict2) |
41 |
| - expected_output = "🔹 Added: hobby: cycling" |
42 |
| - self.assertEqual(result, expected_output) |
43 |
| - |
44 |
| - def test_removal(self): |
45 |
| - dict1 = {"name": "Alice", "hobby": "cycling"} |
46 |
| - dict2 = {"name": "Alice"} |
47 |
| - result = gather_dict_diff(dict1, dict2) |
48 |
| - expected_output = "🔻 Removed: hobby: cycling" |
49 |
| - self.assertEqual(result, expected_output) |
50 |
| - |
51 |
| - def test_nested_modification(self): |
52 |
| - dict1 = { |
53 |
| - "name": "Alice", |
54 |
| - "skills": { |
55 |
| - "python": "intermediate", |
56 |
| - "sql": "beginner", |
57 |
| - }, |
58 |
| - } |
59 |
| - dict2 = { |
60 |
| - "name": "Alice", |
61 |
| - "skills": { |
62 |
| - "python": "advanced", |
63 |
| - "sql": "beginner", |
64 |
| - }, |
65 |
| - } |
66 |
| - result = gather_dict_diff(dict1, dict2) |
67 |
| - expected_output = ( |
68 |
| - "🔄 Modified: skills:\n" |
69 |
| - " 🔄 Modified: python:\n" |
70 |
| - " - Old: intermediate\n" |
71 |
| - " - New: advanced" |
72 |
| - ) |
73 |
| - self.assertEqual(result, expected_output) |
74 |
| - |
75 |
| - def test_nested_addition(self): |
76 |
| - dict1 = { |
77 |
| - "name": "Alice", |
78 |
| - "skills": { |
79 |
| - "python": "intermediate", |
80 |
| - }, |
81 |
| - } |
82 |
| - dict2 = { |
83 |
| - "name": "Alice", |
84 |
| - "skills": { |
85 |
| - "python": "intermediate", |
86 |
| - "docker": "beginner", |
87 |
| - }, |
88 |
| - } |
89 |
| - result = gather_dict_diff(dict1, dict2) |
90 |
| - expected_output = ( |
91 |
| - "🔄 Modified: skills:\n" |
92 |
| - " 🔹 Added: docker: beginner" |
93 |
| - ) |
94 |
| - self.assertEqual(result, expected_output) |
95 |
| - |
96 |
| - def test_complex_diff(self): |
97 |
| - dict1 = { |
98 |
| - "name": "Alice", |
99 |
| - "age": 25, |
100 |
| - "skills": { |
101 |
| - "python": "intermediate", |
102 |
| - "sql": "beginner", |
103 |
| - }, |
104 |
| - } |
105 |
| - dict2 = { |
106 |
| - "name": "Alice", |
107 |
| - "age": 26, |
108 |
| - "skills": { |
109 |
| - "python": "advanced", |
110 |
| - "sql": "beginner", |
111 |
| - "docker": "beginner", |
112 |
| - }, |
113 |
| - "hobby": "cycling", |
114 |
| - } |
115 |
| - result = gather_dict_diff(dict1, dict2) |
116 |
| - expected_output = ( |
117 |
| - "🔄 Modified: skills:\n" |
118 |
| - " 🔹 Added: docker: beginner\n" |
119 |
| - " 🔄 Modified: python:\n" |
120 |
| - " - Old: intermediate\n" |
121 |
| - " - New: advanced\n" |
122 |
| - "🔹 Added: hobby: cycling" |
123 |
| - "🔄 Modified: age:\n" |
124 |
| - " - Old: 25\n" |
125 |
| - " - New: 26\n" |
126 |
| - ) |
127 |
| - self.assertEqual(result, expected_output) |
128 |
| - |
129 |
| - |
130 | 19 | class HbwUtilTest(
|
131 |
| - TestDictDiff, |
132 | 20 | unittest.TestCase,
|
133 | 21 | ):
|
134 | 22 |
|
|
0 commit comments