From 5518e597446544ea54ee9291440e1ba36a67e5fd Mon Sep 17 00:00:00 2001
From: dh00601 <dh00601@surrey.ac.uk>
Date: Thu, 30 Dec 2021 14:07:09 +0000
Subject: [PATCH] renamed stuff

---
 .../{test__HPC.py => test_HPC.py}             |    0
 ...no_2017.py => test_Moe_di_Stefano_2017.py} |    0
 .../test__distribution_functions.py           | 1384 ++++++++---------
 .../{test__analytics.py => test_analytics.py} |    0
 .../{test__cache.py => test_cache.py}         |    0
 .../{test__condor.py => test_condor.py}       |    0
 .../{test__dataIO.py => test_dataIO.py}       |    0
 ...__grid_logging.py => test_grid_logging.py} |    0
 ...aults.py => test_grid_options_defaults.py} |    0
 .../{test__gridcode.py => test_gridcode.py}   |    0
 .../{test__metadata.py => test_metadata.py}   |    0
 .../{test__slurm.py => test_slurm.py}         |    0
 ...functions.py => test_spacing_functions.py} |    0
 ...__version_info.py => test_version_info.py} |    0
 14 files changed, 692 insertions(+), 692 deletions(-)
 rename binarycpython/tests/tests_population_extensions/{test__HPC.py => test_HPC.py} (100%)
 rename binarycpython/tests/tests_population_extensions/{test__Moe_di_Stefano_2017.py => test_Moe_di_Stefano_2017.py} (100%)
 rename binarycpython/tests/tests_population_extensions/{test__analytics.py => test_analytics.py} (100%)
 rename binarycpython/tests/tests_population_extensions/{test__cache.py => test_cache.py} (100%)
 rename binarycpython/tests/tests_population_extensions/{test__condor.py => test_condor.py} (100%)
 rename binarycpython/tests/tests_population_extensions/{test__dataIO.py => test_dataIO.py} (100%)
 rename binarycpython/tests/tests_population_extensions/{test__grid_logging.py => test_grid_logging.py} (100%)
 rename binarycpython/tests/tests_population_extensions/{test__grid_options_defaults.py => test_grid_options_defaults.py} (100%)
 rename binarycpython/tests/tests_population_extensions/{test__gridcode.py => test_gridcode.py} (100%)
 rename binarycpython/tests/tests_population_extensions/{test__metadata.py => test_metadata.py} (100%)
 rename binarycpython/tests/tests_population_extensions/{test__slurm.py => test_slurm.py} (100%)
 rename binarycpython/tests/tests_population_extensions/{test__spacing_functions.py => test_spacing_functions.py} (100%)
 rename binarycpython/tests/tests_population_extensions/{test__version_info.py => test_version_info.py} (100%)

diff --git a/binarycpython/tests/tests_population_extensions/test__HPC.py b/binarycpython/tests/tests_population_extensions/test_HPC.py
similarity index 100%
rename from binarycpython/tests/tests_population_extensions/test__HPC.py
rename to binarycpython/tests/tests_population_extensions/test_HPC.py
diff --git a/binarycpython/tests/tests_population_extensions/test__Moe_di_Stefano_2017.py b/binarycpython/tests/tests_population_extensions/test_Moe_di_Stefano_2017.py
similarity index 100%
rename from binarycpython/tests/tests_population_extensions/test__Moe_di_Stefano_2017.py
rename to binarycpython/tests/tests_population_extensions/test_Moe_di_Stefano_2017.py
diff --git a/binarycpython/tests/tests_population_extensions/test__distribution_functions.py b/binarycpython/tests/tests_population_extensions/test__distribution_functions.py
index 30095a950..c0c601fa7 100644
--- a/binarycpython/tests/tests_population_extensions/test__distribution_functions.py
+++ b/binarycpython/tests/tests_population_extensions/test__distribution_functions.py
@@ -167,698 +167,698 @@ class test_powerlaw(unittest.TestCase):
         # extra test for k = -1
         self.assertRaises(ValueError, distribution_functions_pop.powerlaw, 1, 100, -1, 10)
 
-####
-class test_three_part_power_law(unittest.TestCase):
-    """
-    Class for unit test of three_part_power_law
-    """
-
-    def test_three_part_power_law(self):
-        with Capturing() as output:
-            self._test_three_part_power_law()
-
-    def _test_three_part_power_law(self):
-        """
-        unittest for three_part_power_law
-        """
-
-        distribution_functions_pop = Population()
-
-        perl_results = [
-            10.0001044752901,
-            2.03065220596677,
-            0.0501192469795434,
-            0.000251191267451594,
-            9.88540897458207e-05,
-            6.19974072148769e-06,
-        ]
-        python_results = []
-        input_lists = []
-
-        for mass in MASS_LIST:
-            input_lists.append(mass)
-            python_results.append(
-                distribution_functions_pop.three_part_powerlaw(mass, 0.08, 0.1, 1, 300, -1.3, -2.3, -2.3)
-            )
-
-        # GO over the results and check whether they are equal (within tolerance)
-        for i in range(len(python_results)):
-            msg = "Error: Value perl: {} Value python: {} for mass, per: {}".format(
-                perl_results[i], python_results[i], str(input_lists[i])
-            )
-            self.assertLess(
-                np.abs(python_results[i] - perl_results[i]), TOLERANCE, msg=msg
-            )
-
-        # Extra test:
-        # M < M0
-        self.assertTrue(
-            distribution_functions_pop.three_part_powerlaw(0.05, 0.08, 0.1, 1, 300, -1.3, -2.3, -2.3) == 0,
-            msg="Probability should be zero as M < M0",
-        )
-
-
-class test_Kroupa2001(unittest.TestCase):
-    """
-    Class for unit test of Kroupa2001
-    """
-
-    def test_Kroupa2001(self):
-        with Capturing() as output:
-            self._test_Kroupa2001()
-
-    def _test_Kroupa2001(self):
-        """
-        unittest for three_part_power_law
-        """
-
-        distribution_functions_pop = Population()
-
-        perl_results = [
-            0,  # perl value is actually 5.71196495365248
-            2.31977861075353,
-            0.143138195684851,
-            0.000717390363216896,
-            0.000282322598503135,
-            1.77061658757533e-05,
-        ]
-        python_results = []
-        input_lists = []
-
-        for mass in MASS_LIST:
-            input_lists.append(mass)
-            python_results.append(distribution_functions_pop.Kroupa2001(mass))
-
-        # GO over the results and check whether they are equal (within tolerance)
-        for i in range(len(python_results)):
-            msg = "Error: Value perl: {} Value python: {} for mass: {}".format(
-                perl_results[i], python_results[i], str(input_lists[i])
-            )
-            self.assertLess(
-                np.abs(python_results[i] - perl_results[i]), TOLERANCE, msg=msg
-            )
-
-        # Extra tests:
-        self.assertEqual(
-            distribution_functions_pop.Kroupa2001(10, newopts={"mmax": 300}),
-            distribution_functions_pop.three_part_powerlaw(10, 0.1, 0.5, 1, 300, -1.3, -2.3, -2.3),
-        )
-
-class TestDistributions(unittest.TestCase):
-    """
-    Unittest class
-
-    # https://stackoverflow.com/questions/17353213/init-for-unittest-testcase
-    """
-
-    def __init__(self, *args, **kwargs):
-        """
-        init
-        """
-        super(TestDistributions, self).__init__(*args, **kwargs)
-
-    def test_ktg93(self):
-        with Capturing() as output:
-            self._test_ktg93()
-
-    def _test_ktg93(self):
-        """
-        unittest for three_part_power_law
-        """
-
-        perl_results = [
-            0,  # perl value is actually 5.79767807698379 but that is not correct
-            2.35458895566605,
-            0.155713799148675,
-            0.000310689875361984,
-            0.000103963454405194,
-            4.02817276824841e-06,
-        ]
-        python_results = []
-        input_lists = []
-
-        for mass in self.mass_list:
-            input_lists.append(mass)
-            python_results.append(ktg93(mass))
-
-        # GO over the results and check whether they are equal (within tolerance)
-        for i in range(len(python_results)):
-            msg = "Error: Value perl: {} Value python: {} for mass: {}".format(
-                perl_results[i], python_results[i], str(input_lists[i])
-            )
-            self.assertLess(
-                np.abs(python_results[i] - perl_results[i]), self.tolerance, msg=msg
-            )
-
-        # extra test:
-        self.assertEqual(
-            ktg93(10, newopts={"mmax": 300}),
-            three_part_powerlaw(10, 0.1, 0.5, 1, 300, -1.3, -2.2, -2.7),
-        )
-
-    def test_imf_tinsley1980(self):
-        with Capturing() as output:
-            self._test_imf_tinsley1980()
-
-    def _test_imf_tinsley1980(self):
-        """
-        Unittest for function imf_tinsley1980
-        """
-
-        m = 1.2
-        self.assertEqual(
-            imf_tinsley1980(m),
-            three_part_powerlaw(m, 0.1, 2.0, 10.0, 80.0, -2.0, -2.3, -3.3),
-        )
-
-    def test_imf_scalo1986(self):
-        with Capturing() as output:
-            self._test_imf_scalo1986()
-
-    def _test_imf_scalo1986(self):
-        """
-        Unittest for function imf_scalo1986
-        """
-
-        m = 1.2
-        self.assertEqual(
-            imf_scalo1986(m),
-            three_part_powerlaw(m, 0.1, 1.0, 2.0, 80.0, -2.35, -2.35, -2.70),
-        )
-
-    def test_imf_scalo1998(self):
-        with Capturing() as output:
-            self._test_imf_scalo1998()
-
-    def _test_imf_scalo1998(self):
-        """
-        Unittest for function imf_scalo1986
-        """
-
-        m = 1.2
-        self.assertEqual(
-            imf_scalo1998(m),
-            three_part_powerlaw(m, 0.1, 1.0, 10.0, 80.0, -1.2, -2.7, -2.3),
-        )
-
-    def test_imf_chabrier2003(self):
-        with Capturing() as output:
-            self._test_imf_chabrier2003()
-
-    def _test_imf_chabrier2003(self):
-        """
-        Unittest for function imf_chabrier2003
-        """
-
-        input_1 = 0
-        self.assertRaises(ValueError, imf_chabrier2003, input_1)
-
-        masses = [0.1, 0.2, 0.5, 1, 2, 10, 15, 50]
-        perl_results = [
-            5.64403964849588,
-            2.40501495673496,
-            0.581457346702825,
-            0.159998782068074,
-            0.0324898485372181,
-            0.000801893469684309,
-            0.000315578044662863,
-            1.97918170035704e-05,
-        ]
-        python_results = [imf_chabrier2003(m) for m in masses]
-
-        # GO over the results and check whether they are equal (within tolerance)
-        for i in range(len(python_results)):
-            msg = "Error: Value perl: {} Value python: {} for mass: {}".format(
-                perl_results[i], python_results[i], str(masses[i])
-            )
-            self.assertLess(
-                np.abs(python_results[i] - perl_results[i]), self.tolerance, msg=msg
-            )
-
-    def test_duquennoy1991(self):
-        with Capturing() as output:
-            self._test_duquennoy1991()
-
-    def _test_duquennoy1991(self):
-        """
-        Unittest for function duquennoy1991
-        """
-
-        self.assertEqual(duquennoy1991(4.2), gaussian(4.2, 4.8, 2.3, -2, 12))
-
-    def test_gaussian(self):
-        with Capturing() as output:
-            self._test_gaussian()
-
-    def _test_gaussian(self):
-        """
-        unittest for three_part_power_law
-        """
-
-        perl_results = [
-            0.00218800520299544,
-            0.0121641269671571,
-            0.0657353455837751,
-            0.104951743573429,
-            0.16899534495487,
-            0.0134332780385336,
-        ]
-        python_results = []
-        input_lists = []
-
-        for logper in self.logper_list:
-            input_lists.append(logper)
-            python_results.append(gaussian(logper, 4.8, 2.3, -2.0, 12.0))
-
-        # GO over the results and check whether they are equal (within tolerance)
-        for i in range(len(python_results)):
-            msg = "Error: Value perl: {} Value python: {} for logper: {}".format(
-                perl_results[i], python_results[i], str(input_lists[i])
-            )
-            self.assertLess(
-                np.abs(python_results[i] - perl_results[i]), self.tolerance, msg=msg
-            )
-
-        # Extra test:
-        self.assertTrue(
-            gaussian(15, 4.8, 2.3, -2.0, 12.0) == 0,
-            msg="Probability should be 0 because the input period is out of bounds",
-        )
-
-    def test_Arenou2010_binary_fraction(self):
-        with Capturing() as output:
-            self._test_Arenou2010_binary_fraction()
-
-    def _test_Arenou2010_binary_fraction(self):
-        """
-        unittest for three_part_power_law
-        """
-
-        perl_results = [
-            0.123079723518677,
-            0.178895136157746,
-            0.541178340047153,
-            0.838798485820276,
-            0.838799998443204,
-            0.8388,
-        ]
-        python_results = []
-        input_lists = []
-
-        for mass in self.mass_list:
-            input_lists.append(mass)
-            python_results.append(Arenou2010_binary_fraction(mass))
-
-        # GO over the results and check whether they are equal (within tolerance)
-        for i in range(len(python_results)):
-            msg = "Error: Value perl: {} Value python: {} for mass: {}".format(
-                perl_results[i], python_results[i], str(input_lists[i])
-            )
-            self.assertLess(
-                np.abs(python_results[i] - perl_results[i]), self.tolerance, msg=msg
-            )
-
-    def test_raghavan2010_binary_fraction(self):
-        with Capturing() as output:
-            self._test_raghavan2010_binary_fraction()
-
-    def _test_raghavan2010_binary_fraction(self):
-        """
-        unittest for three_part_power_law
-        """
-
-        perl_results = [0.304872297931597, 0.334079955706623, 0.41024, 1, 1, 1]
-        python_results = []
-        input_lists = []
-
-        for mass in self.mass_list:
-            input_lists.append(mass)
-            python_results.append(raghavan2010_binary_fraction(mass))
-
-        # GO over the results and check whether they are equal (within tolerance)
-        for i in range(len(python_results)):
-            msg = "Error: Value perl: {} Value python: {} for mass: {}".format(
-                perl_results[i], python_results[i], str(input_lists[i])
-            )
-            self.assertLess(
-                np.abs(python_results[i] - perl_results[i]), self.tolerance, msg=msg
-            )
-
-    def test_Izzard2012_period_distribution(self):
-        with Capturing() as output:
-            self._test_Izzard2012_period_distribution()
-
-    def _test_Izzard2012_period_distribution(self):
-        """
-        unittest for three_part_power_law
-        """
-
-        perl_results = [
-            0,
-            0.00941322840619318,
-            0.0575068231479569,
-            0.0963349886047932,
-            0.177058537292581,
-            0.0165713385659234,
-            0,
-            0.00941322840619318,
-            0.0575068231479569,
-            0.0963349886047932,
-            0.177058537292581,
-            0.0165713385659234,
-            0,
-            0.00941322840619318,
-            0.0575068231479569,
-            0.0963349886047932,
-            0.177058537292581,
-            0.0165713385659234,
-            0,
-            7.61631504133159e-09,
-            0.168028727846997,
-            0.130936282216512,
-            0.0559170865520968,
-            0.0100358604460285,
-            0,
-            2.08432736869149e-21,
-            0.18713622563288,
-            0.143151383185002,
-            0.0676299576972089,
-            0.0192427864870784,
-            0,
-            1.1130335685003e-24,
-            0.194272603987661,
-            0.14771508552257,
-            0.0713078479280884,
-            0.0221093965810181,
-        ]
-        python_results = []
-        input_lists = []
-
-        for mass in self.mass_list:
-            for per in self.per_list:
-                input_lists.append([mass, per])
-
-                python_results.append(Izzard2012_period_distribution(per, mass))
-
-        # GO over the results and check whether they are equal (within tolerance)
-        for i in range(len(python_results)):
-            msg = "Error: Value perl: {} Value python: {} for mass, per: {}".format(
-                perl_results[i], python_results[i], str(input_lists[i])
-            )
-            self.assertLess(
-                np.abs(python_results[i] - perl_results[i]), self.tolerance, msg=msg
-            )
-
-    def test_flatsections(self):
-        with Capturing() as output:
-            self._test_flatsections()
-
-    def _test_flatsections(self):
-        """
-        unittest for three_part_power_law
-        """
-
-        perl_results = [
-            1.01010101010101,
-            1.01010101010101,
-            1.01010101010101,
-            1.01010101010101,
-            1.01010101010101,
-            1.01010101010101,
-        ]
-        python_results = []
-        input_lists = []
-
-        for q in self.q_list:
-            input_lists.append(q)
-            python_results.append(
-                flatsections(q, [{"min": 0.01, "max": 1.0, "height": 1.0}])
-            )
-
-        # GO over the results and check whether they are equal (within tolerance)
-        for i in range(len(python_results)):
-            msg = "Error: Value perl: {} Value python: {} for q: {}".format(
-                perl_results[i], python_results[i], str(input_lists[i])
-            )
-            self.assertLess(
-                np.abs(python_results[i] - perl_results[i]), self.tolerance, msg=msg
-            )
-
-    def test_sana12(self):
-        with Capturing() as output:
-            self._test_sana12()
-
-    def _test_sana12(self):
-        """
-        unittest for three_part_power_law
-        """
-
-        perl_results = [
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.481676471294883,
-            0.481676471294883,
-            0.131020615300798,
-            0.102503482445846,
-            0.0678037785559114,
-            0.066436408359805,
-            0.481676471294883,
-            0.481676471294883,
-            0.131020615300798,
-            0.102503482445846,
-            0.0678037785559114,
-            0.066436408359805,
-            0.481676471294883,
-            0.481676471294883,
-            0.131020615300798,
-            0.102503482445846,
-            0.0678037785559114,
-            0.066436408359805,
-            0.481676471294883,
-            0.481676471294883,
-            0.131020615300798,
-            0.102503482445846,
-            0.0678037785559114,
-            0.066436408359805,
-            0.481676471294883,
-            0.481676471294883,
-            0.131020615300798,
-            0.102503482445846,
-            0.0678037785559114,
-            0.066436408359805,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.121764808010258,
-            0.481676471294883,
-            0.481676471294883,
-            0.131020615300798,
-            0.102503482445846,
-            0.0678037785559114,
-            0.066436408359805,
-            0.481676471294883,
-            0.481676471294883,
-            0.131020615300798,
-            0.102503482445846,
-            0.0678037785559114,
-            0.066436408359805,
-            0.481676471294883,
-            0.481676471294883,
-            0.131020615300798,
-            0.102503482445846,
-            0.0678037785559114,
-            0.066436408359805,
-            0.481676471294883,
-            0.481676471294883,
-            0.131020615300798,
-            0.102503482445846,
-            0.0678037785559114,
-            0.066436408359805,
-            0.481676471294883,
-            0.481676471294883,
-            0.131020615300798,
-            0.102503482445846,
-            0.0678037785559114,
-            0.066436408359805,
-        ]
-        python_results = []
-        input_lists = []
-
-        for mass in self.mass_list:
-            for q in self.q_list:
-                for per in self.per_list:
-                    mass_2 = mass * q
-
-                    sep = calc_sep_from_period(mass, mass_2, per)
-                    sep_min = calc_sep_from_period(mass, mass_2, 10 ** 0.15)
-                    sep_max = calc_sep_from_period(mass, mass_2, 10 ** 5.5)
-
-                    input_lists.append([mass, mass_2, per])
-
-                    python_results.append(
-                        sana12(
-                            mass, mass_2, sep, per, sep_min, sep_max, 0.15, 5.5, -0.55
-                        )
-                    )
-
-        # GO over the results and check whether they are equal (within tolerance)
-        for i in range(len(python_results)):
-            msg = "Error: Value perl: {} Value python: {} for mass, mass2, per: {}".format(
-                perl_results[i], python_results[i], str(input_lists[i])
-            )
-            self.assertLess(
-                np.abs(python_results[i] - perl_results[i]), self.tolerance, msg=msg
-            )
+# ####
+# class test_three_part_power_law(unittest.TestCase):
+#     """
+#     Class for unit test of three_part_power_law
+#     """
+
+#     def test_three_part_power_law(self):
+#         with Capturing() as output:
+#             self._test_three_part_power_law()
+
+#     def _test_three_part_power_law(self):
+#         """
+#         unittest for three_part_power_law
+#         """
+
+#         distribution_functions_pop = Population()
+
+#         perl_results = [
+#             10.0001044752901,
+#             2.03065220596677,
+#             0.0501192469795434,
+#             0.000251191267451594,
+#             9.88540897458207e-05,
+#             6.19974072148769e-06,
+#         ]
+#         python_results = []
+#         input_lists = []
+
+#         for mass in MASS_LIST:
+#             input_lists.append(mass)
+#             python_results.append(
+#                 distribution_functions_pop.three_part_powerlaw(mass, 0.08, 0.1, 1, 300, -1.3, -2.3, -2.3)
+#             )
+
+#         # GO over the results and check whether they are equal (within tolerance)
+#         for i in range(len(python_results)):
+#             msg = "Error: Value perl: {} Value python: {} for mass, per: {}".format(
+#                 perl_results[i], python_results[i], str(input_lists[i])
+#             )
+#             self.assertLess(
+#                 np.abs(python_results[i] - perl_results[i]), TOLERANCE, msg=msg
+#             )
+
+#         # Extra test:
+#         # M < M0
+#         self.assertTrue(
+#             distribution_functions_pop.three_part_powerlaw(0.05, 0.08, 0.1, 1, 300, -1.3, -2.3, -2.3) == 0,
+#             msg="Probability should be zero as M < M0",
+#         )
+
+
+# class test_Kroupa2001(unittest.TestCase):
+#     """
+#     Class for unit test of Kroupa2001
+#     """
+
+#     def test_Kroupa2001(self):
+#         with Capturing() as output:
+#             self._test_Kroupa2001()
+
+#     def _test_Kroupa2001(self):
+#         """
+#         unittest for three_part_power_law
+#         """
+
+#         distribution_functions_pop = Population()
+
+#         perl_results = [
+#             0,  # perl value is actually 5.71196495365248
+#             2.31977861075353,
+#             0.143138195684851,
+#             0.000717390363216896,
+#             0.000282322598503135,
+#             1.77061658757533e-05,
+#         ]
+#         python_results = []
+#         input_lists = []
+
+#         for mass in MASS_LIST:
+#             input_lists.append(mass)
+#             python_results.append(distribution_functions_pop.Kroupa2001(mass))
+
+#         # GO over the results and check whether they are equal (within tolerance)
+#         for i in range(len(python_results)):
+#             msg = "Error: Value perl: {} Value python: {} for mass: {}".format(
+#                 perl_results[i], python_results[i], str(input_lists[i])
+#             )
+#             self.assertLess(
+#                 np.abs(python_results[i] - perl_results[i]), TOLERANCE, msg=msg
+#             )
+
+#         # Extra tests:
+#         self.assertEqual(
+#             distribution_functions_pop.Kroupa2001(10, newopts={"mmax": 300}),
+#             distribution_functions_pop.three_part_powerlaw(10, 0.1, 0.5, 1, 300, -1.3, -2.3, -2.3),
+#         )
+
+# class TestDistributions(unittest.TestCase):
+#     """
+#     Unittest class
+
+#     # https://stackoverflow.com/questions/17353213/init-for-unittest-testcase
+#     """
+
+#     def __init__(self, *args, **kwargs):
+#         """
+#         init
+#         """
+#         super(TestDistributions, self).__init__(*args, **kwargs)
+
+#     def test_ktg93(self):
+#         with Capturing() as output:
+#             self._test_ktg93()
+
+#     def _test_ktg93(self):
+#         """
+#         unittest for three_part_power_law
+#         """
+
+#         perl_results = [
+#             0,  # perl value is actually 5.79767807698379 but that is not correct
+#             2.35458895566605,
+#             0.155713799148675,
+#             0.000310689875361984,
+#             0.000103963454405194,
+#             4.02817276824841e-06,
+#         ]
+#         python_results = []
+#         input_lists = []
+
+#         for mass in self.mass_list:
+#             input_lists.append(mass)
+#             python_results.append(ktg93(mass))
+
+#         # GO over the results and check whether they are equal (within tolerance)
+#         for i in range(len(python_results)):
+#             msg = "Error: Value perl: {} Value python: {} for mass: {}".format(
+#                 perl_results[i], python_results[i], str(input_lists[i])
+#             )
+#             self.assertLess(
+#                 np.abs(python_results[i] - perl_results[i]), self.tolerance, msg=msg
+#             )
+
+#         # extra test:
+#         self.assertEqual(
+#             ktg93(10, newopts={"mmax": 300}),
+#             three_part_powerlaw(10, 0.1, 0.5, 1, 300, -1.3, -2.2, -2.7),
+#         )
+
+#     def test_imf_tinsley1980(self):
+#         with Capturing() as output:
+#             self._test_imf_tinsley1980()
+
+#     def _test_imf_tinsley1980(self):
+#         """
+#         Unittest for function imf_tinsley1980
+#         """
+
+#         m = 1.2
+#         self.assertEqual(
+#             imf_tinsley1980(m),
+#             three_part_powerlaw(m, 0.1, 2.0, 10.0, 80.0, -2.0, -2.3, -3.3),
+#         )
+
+#     def test_imf_scalo1986(self):
+#         with Capturing() as output:
+#             self._test_imf_scalo1986()
+
+#     def _test_imf_scalo1986(self):
+#         """
+#         Unittest for function imf_scalo1986
+#         """
+
+#         m = 1.2
+#         self.assertEqual(
+#             imf_scalo1986(m),
+#             three_part_powerlaw(m, 0.1, 1.0, 2.0, 80.0, -2.35, -2.35, -2.70),
+#         )
+
+#     def test_imf_scalo1998(self):
+#         with Capturing() as output:
+#             self._test_imf_scalo1998()
+
+#     def _test_imf_scalo1998(self):
+#         """
+#         Unittest for function imf_scalo1986
+#         """
+
+#         m = 1.2
+#         self.assertEqual(
+#             imf_scalo1998(m),
+#             three_part_powerlaw(m, 0.1, 1.0, 10.0, 80.0, -1.2, -2.7, -2.3),
+#         )
+
+#     def test_imf_chabrier2003(self):
+#         with Capturing() as output:
+#             self._test_imf_chabrier2003()
+
+#     def _test_imf_chabrier2003(self):
+#         """
+#         Unittest for function imf_chabrier2003
+#         """
+
+#         input_1 = 0
+#         self.assertRaises(ValueError, imf_chabrier2003, input_1)
+
+#         masses = [0.1, 0.2, 0.5, 1, 2, 10, 15, 50]
+#         perl_results = [
+#             5.64403964849588,
+#             2.40501495673496,
+#             0.581457346702825,
+#             0.159998782068074,
+#             0.0324898485372181,
+#             0.000801893469684309,
+#             0.000315578044662863,
+#             1.97918170035704e-05,
+#         ]
+#         python_results = [imf_chabrier2003(m) for m in masses]
+
+#         # GO over the results and check whether they are equal (within tolerance)
+#         for i in range(len(python_results)):
+#             msg = "Error: Value perl: {} Value python: {} for mass: {}".format(
+#                 perl_results[i], python_results[i], str(masses[i])
+#             )
+#             self.assertLess(
+#                 np.abs(python_results[i] - perl_results[i]), self.tolerance, msg=msg
+#             )
+
+#     def test_duquennoy1991(self):
+#         with Capturing() as output:
+#             self._test_duquennoy1991()
+
+#     def _test_duquennoy1991(self):
+#         """
+#         Unittest for function duquennoy1991
+#         """
+
+#         self.assertEqual(duquennoy1991(4.2), gaussian(4.2, 4.8, 2.3, -2, 12))
+
+#     def test_gaussian(self):
+#         with Capturing() as output:
+#             self._test_gaussian()
+
+#     def _test_gaussian(self):
+#         """
+#         unittest for three_part_power_law
+#         """
+
+#         perl_results = [
+#             0.00218800520299544,
+#             0.0121641269671571,
+#             0.0657353455837751,
+#             0.104951743573429,
+#             0.16899534495487,
+#             0.0134332780385336,
+#         ]
+#         python_results = []
+#         input_lists = []
+
+#         for logper in self.logper_list:
+#             input_lists.append(logper)
+#             python_results.append(gaussian(logper, 4.8, 2.3, -2.0, 12.0))
+
+#         # GO over the results and check whether they are equal (within tolerance)
+#         for i in range(len(python_results)):
+#             msg = "Error: Value perl: {} Value python: {} for logper: {}".format(
+#                 perl_results[i], python_results[i], str(input_lists[i])
+#             )
+#             self.assertLess(
+#                 np.abs(python_results[i] - perl_results[i]), self.tolerance, msg=msg
+#             )
+
+#         # Extra test:
+#         self.assertTrue(
+#             gaussian(15, 4.8, 2.3, -2.0, 12.0) == 0,
+#             msg="Probability should be 0 because the input period is out of bounds",
+#         )
+
+#     def test_Arenou2010_binary_fraction(self):
+#         with Capturing() as output:
+#             self._test_Arenou2010_binary_fraction()
+
+#     def _test_Arenou2010_binary_fraction(self):
+#         """
+#         unittest for three_part_power_law
+#         """
+
+#         perl_results = [
+#             0.123079723518677,
+#             0.178895136157746,
+#             0.541178340047153,
+#             0.838798485820276,
+#             0.838799998443204,
+#             0.8388,
+#         ]
+#         python_results = []
+#         input_lists = []
+
+#         for mass in self.mass_list:
+#             input_lists.append(mass)
+#             python_results.append(Arenou2010_binary_fraction(mass))
+
+#         # GO over the results and check whether they are equal (within tolerance)
+#         for i in range(len(python_results)):
+#             msg = "Error: Value perl: {} Value python: {} for mass: {}".format(
+#                 perl_results[i], python_results[i], str(input_lists[i])
+#             )
+#             self.assertLess(
+#                 np.abs(python_results[i] - perl_results[i]), self.tolerance, msg=msg
+#             )
+
+#     def test_raghavan2010_binary_fraction(self):
+#         with Capturing() as output:
+#             self._test_raghavan2010_binary_fraction()
+
+#     def _test_raghavan2010_binary_fraction(self):
+#         """
+#         unittest for three_part_power_law
+#         """
+
+#         perl_results = [0.304872297931597, 0.334079955706623, 0.41024, 1, 1, 1]
+#         python_results = []
+#         input_lists = []
+
+#         for mass in self.mass_list:
+#             input_lists.append(mass)
+#             python_results.append(raghavan2010_binary_fraction(mass))
+
+#         # GO over the results and check whether they are equal (within tolerance)
+#         for i in range(len(python_results)):
+#             msg = "Error: Value perl: {} Value python: {} for mass: {}".format(
+#                 perl_results[i], python_results[i], str(input_lists[i])
+#             )
+#             self.assertLess(
+#                 np.abs(python_results[i] - perl_results[i]), self.tolerance, msg=msg
+#             )
+
+#     def test_Izzard2012_period_distribution(self):
+#         with Capturing() as output:
+#             self._test_Izzard2012_period_distribution()
+
+#     def _test_Izzard2012_period_distribution(self):
+#         """
+#         unittest for three_part_power_law
+#         """
+
+#         perl_results = [
+#             0,
+#             0.00941322840619318,
+#             0.0575068231479569,
+#             0.0963349886047932,
+#             0.177058537292581,
+#             0.0165713385659234,
+#             0,
+#             0.00941322840619318,
+#             0.0575068231479569,
+#             0.0963349886047932,
+#             0.177058537292581,
+#             0.0165713385659234,
+#             0,
+#             0.00941322840619318,
+#             0.0575068231479569,
+#             0.0963349886047932,
+#             0.177058537292581,
+#             0.0165713385659234,
+#             0,
+#             7.61631504133159e-09,
+#             0.168028727846997,
+#             0.130936282216512,
+#             0.0559170865520968,
+#             0.0100358604460285,
+#             0,
+#             2.08432736869149e-21,
+#             0.18713622563288,
+#             0.143151383185002,
+#             0.0676299576972089,
+#             0.0192427864870784,
+#             0,
+#             1.1130335685003e-24,
+#             0.194272603987661,
+#             0.14771508552257,
+#             0.0713078479280884,
+#             0.0221093965810181,
+#         ]
+#         python_results = []
+#         input_lists = []
+
+#         for mass in self.mass_list:
+#             for per in self.per_list:
+#                 input_lists.append([mass, per])
+
+#                 python_results.append(Izzard2012_period_distribution(per, mass))
+
+#         # GO over the results and check whether they are equal (within tolerance)
+#         for i in range(len(python_results)):
+#             msg = "Error: Value perl: {} Value python: {} for mass, per: {}".format(
+#                 perl_results[i], python_results[i], str(input_lists[i])
+#             )
+#             self.assertLess(
+#                 np.abs(python_results[i] - perl_results[i]), self.tolerance, msg=msg
+#             )
+
+#     def test_flatsections(self):
+#         with Capturing() as output:
+#             self._test_flatsections()
+
+#     def _test_flatsections(self):
+#         """
+#         unittest for three_part_power_law
+#         """
+
+#         perl_results = [
+#             1.01010101010101,
+#             1.01010101010101,
+#             1.01010101010101,
+#             1.01010101010101,
+#             1.01010101010101,
+#             1.01010101010101,
+#         ]
+#         python_results = []
+#         input_lists = []
+
+#         for q in self.q_list:
+#             input_lists.append(q)
+#             python_results.append(
+#                 flatsections(q, [{"min": 0.01, "max": 1.0, "height": 1.0}])
+#             )
+
+#         # GO over the results and check whether they are equal (within tolerance)
+#         for i in range(len(python_results)):
+#             msg = "Error: Value perl: {} Value python: {} for q: {}".format(
+#                 perl_results[i], python_results[i], str(input_lists[i])
+#             )
+#             self.assertLess(
+#                 np.abs(python_results[i] - perl_results[i]), self.tolerance, msg=msg
+#             )
+
+#     def test_sana12(self):
+#         with Capturing() as output:
+#             self._test_sana12()
+
+#     def _test_sana12(self):
+#         """
+#         unittest for three_part_power_law
+#         """
+
+#         perl_results = [
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.481676471294883,
+#             0.481676471294883,
+#             0.131020615300798,
+#             0.102503482445846,
+#             0.0678037785559114,
+#             0.066436408359805,
+#             0.481676471294883,
+#             0.481676471294883,
+#             0.131020615300798,
+#             0.102503482445846,
+#             0.0678037785559114,
+#             0.066436408359805,
+#             0.481676471294883,
+#             0.481676471294883,
+#             0.131020615300798,
+#             0.102503482445846,
+#             0.0678037785559114,
+#             0.066436408359805,
+#             0.481676471294883,
+#             0.481676471294883,
+#             0.131020615300798,
+#             0.102503482445846,
+#             0.0678037785559114,
+#             0.066436408359805,
+#             0.481676471294883,
+#             0.481676471294883,
+#             0.131020615300798,
+#             0.102503482445846,
+#             0.0678037785559114,
+#             0.066436408359805,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.121764808010258,
+#             0.481676471294883,
+#             0.481676471294883,
+#             0.131020615300798,
+#             0.102503482445846,
+#             0.0678037785559114,
+#             0.066436408359805,
+#             0.481676471294883,
+#             0.481676471294883,
+#             0.131020615300798,
+#             0.102503482445846,
+#             0.0678037785559114,
+#             0.066436408359805,
+#             0.481676471294883,
+#             0.481676471294883,
+#             0.131020615300798,
+#             0.102503482445846,
+#             0.0678037785559114,
+#             0.066436408359805,
+#             0.481676471294883,
+#             0.481676471294883,
+#             0.131020615300798,
+#             0.102503482445846,
+#             0.0678037785559114,
+#             0.066436408359805,
+#             0.481676471294883,
+#             0.481676471294883,
+#             0.131020615300798,
+#             0.102503482445846,
+#             0.0678037785559114,
+#             0.066436408359805,
+#         ]
+#         python_results = []
+#         input_lists = []
+
+#         for mass in self.mass_list:
+#             for q in self.q_list:
+#                 for per in self.per_list:
+#                     mass_2 = mass * q
+
+#                     sep = calc_sep_from_period(mass, mass_2, per)
+#                     sep_min = calc_sep_from_period(mass, mass_2, 10 ** 0.15)
+#                     sep_max = calc_sep_from_period(mass, mass_2, 10 ** 5.5)
+
+#                     input_lists.append([mass, mass_2, per])
+
+#                     python_results.append(
+#                         sana12(
+#                             mass, mass_2, sep, per, sep_min, sep_max, 0.15, 5.5, -0.55
+#                         )
+#                     )
+
+#         # GO over the results and check whether they are equal (within tolerance)
+#         for i in range(len(python_results)):
+#             msg = "Error: Value perl: {} Value python: {} for mass, mass2, per: {}".format(
+#                 perl_results[i], python_results[i], str(input_lists[i])
+#             )
+#             self.assertLess(
+#                 np.abs(python_results[i] - perl_results[i]), self.tolerance, msg=msg
+#             )
 
 
 if __name__ == "__main__":
diff --git a/binarycpython/tests/tests_population_extensions/test__analytics.py b/binarycpython/tests/tests_population_extensions/test_analytics.py
similarity index 100%
rename from binarycpython/tests/tests_population_extensions/test__analytics.py
rename to binarycpython/tests/tests_population_extensions/test_analytics.py
diff --git a/binarycpython/tests/tests_population_extensions/test__cache.py b/binarycpython/tests/tests_population_extensions/test_cache.py
similarity index 100%
rename from binarycpython/tests/tests_population_extensions/test__cache.py
rename to binarycpython/tests/tests_population_extensions/test_cache.py
diff --git a/binarycpython/tests/tests_population_extensions/test__condor.py b/binarycpython/tests/tests_population_extensions/test_condor.py
similarity index 100%
rename from binarycpython/tests/tests_population_extensions/test__condor.py
rename to binarycpython/tests/tests_population_extensions/test_condor.py
diff --git a/binarycpython/tests/tests_population_extensions/test__dataIO.py b/binarycpython/tests/tests_population_extensions/test_dataIO.py
similarity index 100%
rename from binarycpython/tests/tests_population_extensions/test__dataIO.py
rename to binarycpython/tests/tests_population_extensions/test_dataIO.py
diff --git a/binarycpython/tests/tests_population_extensions/test__grid_logging.py b/binarycpython/tests/tests_population_extensions/test_grid_logging.py
similarity index 100%
rename from binarycpython/tests/tests_population_extensions/test__grid_logging.py
rename to binarycpython/tests/tests_population_extensions/test_grid_logging.py
diff --git a/binarycpython/tests/tests_population_extensions/test__grid_options_defaults.py b/binarycpython/tests/tests_population_extensions/test_grid_options_defaults.py
similarity index 100%
rename from binarycpython/tests/tests_population_extensions/test__grid_options_defaults.py
rename to binarycpython/tests/tests_population_extensions/test_grid_options_defaults.py
diff --git a/binarycpython/tests/tests_population_extensions/test__gridcode.py b/binarycpython/tests/tests_population_extensions/test_gridcode.py
similarity index 100%
rename from binarycpython/tests/tests_population_extensions/test__gridcode.py
rename to binarycpython/tests/tests_population_extensions/test_gridcode.py
diff --git a/binarycpython/tests/tests_population_extensions/test__metadata.py b/binarycpython/tests/tests_population_extensions/test_metadata.py
similarity index 100%
rename from binarycpython/tests/tests_population_extensions/test__metadata.py
rename to binarycpython/tests/tests_population_extensions/test_metadata.py
diff --git a/binarycpython/tests/tests_population_extensions/test__slurm.py b/binarycpython/tests/tests_population_extensions/test_slurm.py
similarity index 100%
rename from binarycpython/tests/tests_population_extensions/test__slurm.py
rename to binarycpython/tests/tests_population_extensions/test_slurm.py
diff --git a/binarycpython/tests/tests_population_extensions/test__spacing_functions.py b/binarycpython/tests/tests_population_extensions/test_spacing_functions.py
similarity index 100%
rename from binarycpython/tests/tests_population_extensions/test__spacing_functions.py
rename to binarycpython/tests/tests_population_extensions/test_spacing_functions.py
diff --git a/binarycpython/tests/tests_population_extensions/test__version_info.py b/binarycpython/tests/tests_population_extensions/test_version_info.py
similarity index 100%
rename from binarycpython/tests/tests_population_extensions/test__version_info.py
rename to binarycpython/tests/tests_population_extensions/test_version_info.py
-- 
GitLab