From b739c0b229ca9282e824491eae8a086c537030e4 Mon Sep 17 00:00:00 2001
From: Johannes Schumann <johannes.schumann@fau.de>
Date: Thu, 10 Jun 2021 00:04:03 +0200
Subject: [PATCH] Fix type and add jobcard tests

---
 km3buu/jobcard.py            |  2 +-
 km3buu/tests/test_jobcard.py | 36 +++++++++++++++++++++++++++++++++++-
 2 files changed, 36 insertions(+), 2 deletions(-)

diff --git a/km3buu/jobcard.py b/km3buu/jobcard.py
index afda81c..18a44e4 100644
--- a/km3buu/jobcard.py
+++ b/km3buu/jobcard.py
@@ -150,7 +150,7 @@ def generate_neutrino_jobcard(events,
         jc["nl_neutrino_energyflux"]["eflux_min"] = energy[0]
         jc["nl_neutrino_energyflux"]["eflux_max"] = energy[1]
     else:
-        jc["nl_sigmanc"]["enu"] = energy
+        jc["nl_sigmamc"]["enu"] = energy
     # DECAY
     if do_decay:
         for i in DECAYED_HADRONS:
diff --git a/km3buu/tests/test_jobcard.py b/km3buu/tests/test_jobcard.py
index ff5c04d..66b1162 100644
--- a/km3buu/tests/test_jobcard.py
+++ b/km3buu/tests/test_jobcard.py
@@ -45,7 +45,7 @@ class TestJobcard(unittest.TestCase):
         assert ctnt.find(expected_line) == -1
 
 
-class TestNeutrinoJobcard(unittest.TestCase):
+class TestNeutrinoEnergyRangeJobcard(unittest.TestCase):
     def setUp(self):
         self.test_fluxfile = TemporaryFile()
         self.test_Z = np.random.randint(1, 100)
@@ -93,3 +93,37 @@ class TestNeutrinoJobcard(unittest.TestCase):
     def test_photon_propagation_flag(self):
         self.assertEqual(self.test_jobcard["insertion"]["propagateNoPhoton"],
                          not self.photon_propagation_flag)
+
+
+class TestNeutrinoSingleEnergyJobcard(unittest.TestCase):
+    def setUp(self):
+        self.test_fluxfile = TemporaryFile()
+        self.test_Z = np.random.randint(1, 100)
+        self.test_A = np.random.randint(self.test_Z, 100)
+        self.test_energy = np.random.uniform(0.0, 100.0)
+        self.photon_propagation_flag = np.random.choice([True, False])
+        self.do_decay = np.random.choice([True, False])
+        self.test_jobcard = generate_neutrino_jobcard(
+            1000,
+            "CC",
+            "electron",
+            self.test_energy, (self.test_Z, self.test_A),
+            do_decay=self.do_decay,
+            photon_propagation=self.photon_propagation_flag,
+            fluxfile=self.test_fluxfile.name,
+            input_path="/test")
+
+    def test_input_path(self):
+        self.assertEqual("/test", self.test_jobcard["input"]["path_to_input"])
+
+    def test_target(self):
+        self.assertEqual(self.test_Z, self.test_jobcard["target"]["target_Z"])
+        self.assertEqual(self.test_A, self.test_jobcard["target"]["target_A"])
+
+    def test_energy(self):
+        self.assertAlmostEqual(self.test_energy,
+                               self.test_jobcard["nl_sigmamc"]["enu"])
+
+    def test_photon_propagation_flag(self):
+        self.assertEqual(self.test_jobcard["insertion"]["propagateNoPhoton"],
+                         not self.photon_propagation_flag)
-- 
GitLab