From b02159ba5ca2649af37aa1511cfced0e0e8ca1a8 Mon Sep 17 00:00:00 2001 From: Evgeniy Unzhakov Date: Fri, 8 May 2026 15:41:10 +0300 Subject: [PATCH] Remove repeated per-branch metadata columns from CSV export Branch intensity, endpoint, and transition are constant per branch and already documented in the CSV header. No need to repeat them as columns for every energy row. --- beta_spectrum/spectrum.py | 14 ++------------ tests/test_multi_branch.py | 10 +++++++++- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/beta_spectrum/spectrum.py b/beta_spectrum/spectrum.py index 565e364..ca2884f 100644 --- a/beta_spectrum/spectrum.py +++ b/beta_spectrum/spectrum.py @@ -1572,19 +1572,9 @@ class BetaSpectrumAnalyzer: if self._is_multi and self.spectrum.branches: # Multi-branch mode: total spectrum + per-branch spectra + components - for i, (branch, branch_spec) in enumerate( - zip(self.spectrum.branches, self.spectrum.branch_spectra) - ): + # (branch info — intensity, endpoint, transition — is in the header, not repeated columns) + for i, branch_spec in enumerate(self.spectrum.branch_spectra): data[f"branch_{i+1}_spectrum"] = branch_spec(self.W) - data[f"branch_{i+1}_intensity"] = np.full_like( - self.energies_MeV, branch.intensity - ) - data[f"branch_{i+1}_endpoint"] = np.full_like( - self.energies_MeV, branch.endpoint_MeV - ) - data[f"branch_{i+1}_transition"] = np.full_like( - self.energies_MeV, branch.transition_type, dtype=object - ) # Per-branch components (PhaseSpace, Radiative, etc.) for i, branch_spec in enumerate(self.spectrum.branch_spectra): diff --git a/tests/test_multi_branch.py b/tests/test_multi_branch.py index d9de5a8..e35925f 100644 --- a/tests/test_multi_branch.py +++ b/tests/test_multi_branch.py @@ -466,10 +466,18 @@ class TestMultiBranchCSVExport: # Should have total spectrum column assert "spectrum" in df.columns - # Should have per-branch columns + # Should have per-branch spectrum columns (intensity/endpoint/transition are in the header) assert "branch_1_spectrum" in df.columns assert "branch_2_spectrum" in df.columns + # Should NOT have repeated per-branch metadata columns + assert "branch_1_intensity" not in df.columns + assert "branch_1_endpoint" not in df.columns + assert "branch_1_transition" not in df.columns + assert "branch_2_intensity" not in df.columns + assert "branch_2_endpoint" not in df.columns + assert "branch_2_transition" not in df.columns + # Should have universal columns assert "universal_Fermi" in df.columns