Skip to content

Commit 7389cda

Browse files
author
miranov25
committed
adding unit test for the export_import tree
1 parent ea7c0d6 commit 7389cda

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

UTILS/dfextensions/AliasDataFrameTest.py

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import numpy as np
44
import os
55
from AliasDataFrame import AliasDataFrame # Adjust if needed
6+
import tempfile
67

78
class TestAliasDataFrame(unittest.TestCase):
89
def setUp(self):
@@ -70,6 +71,33 @@ def test_partial_materialization(self):
7071
self.assertIn("b", self.adf.df.columns)
7172
self.assertNotIn("c", self.adf.df.columns)
7273

74+
def test_export_import_tree_roundtrip(self):
75+
# Create test DataFrame
76+
df = pd.DataFrame({
77+
"x": np.linspace(0, 10, 100),
78+
"y": np.linspace(10, 20, 100)
79+
})
80+
adf = AliasDataFrame(df)
81+
adf.add_alias("z", "x + y", dtype=np.float64)
82+
adf.materialize_all()
83+
84+
# Export to temporary file
85+
with tempfile.NamedTemporaryFile(suffix=".root", delete=False) as tmp:
86+
adf.export_tree(tmp.name, treename="testTree", dropAliasColumns=False)
87+
tmp_path = tmp.name
88+
89+
# Read back from ROOT
90+
adf_loaded = AliasDataFrame.read_tree(tmp_path, treename="testTree")
91+
92+
# Check that aliases and data match
93+
assert "z" in adf_loaded.aliases
94+
assert adf_loaded.aliases["z"] == "x + y"
95+
adf_loaded.materialize_alias("z")
96+
pd.testing.assert_series_equal(adf["z"], adf_loaded["z"], check_names=False)
97+
98+
# Clean up
99+
os.remove(tmp_path)
100+
73101
class TestAliasDataFrameWithSubframes(unittest.TestCase):
74102
@classmethod
75103
def setUpClass(cls):

0 commit comments

Comments
 (0)