Esempio n. 1
0
    def test_str_uncertain(self):

        self.parameter = Parameter("gbar_Na", 120, cp.Uniform(110, 130))

        result = str(self.parameter)

        self.assertEqual(result, "gbar_Na: 120 - Uncertain")
Esempio n. 2
0
    def test_init_object_dist(self):
        parameter_list = [Parameter("gbar_Na", 120, cp.Uniform(110, 130)),
                          Parameter("gbar_K", 36),
                          Parameter("gbar_L", 10.3)]

        parameters = Parameters(parameter_list, distribution=cp.Uniform(110, 130))

        self.assertIsInstance(parameters, Parameters)
        self.assertIsInstance(parameters["gbar_Na"], Parameter)
        self.assertIsInstance(parameters["gbar_K"], Parameter)
        self.assertIsInstance(parameters["gbar_L"], Parameter)
        self.assertIsInstance(parameters.distribution, cp.Dist)
Esempio n. 3
0
    def setUp(self):
        self.parameter = Parameter("gbar_Na", 120)

        self.parameter_filename = "example_hoc.hoc"

        self.folder = os.path.dirname(os.path.realpath(__file__))

        self.test_data_dir = os.path.join(self.folder, "data")
        self.data_file = "example_hoc.hoc"
        self.output_test_dir = ".tests/"

        if os.path.isdir(self.output_test_dir):
            shutil.rmtree(self.output_test_dir)
        os.makedirs(self.output_test_dir)
Esempio n. 4
0
    def test_reset_parameter_file(self):
        parameter_file = os.path.join(self.output_test_dir, self.parameter_filename)

        shutil.copy(os.path.join(self.test_data_dir, self.parameter_filename),
                    parameter_file)

        self.parameter = Parameter("test", 12)

        self.parameter.reset_parameter_file(parameter_file)

        compare_file = os.path.join(self.test_data_dir, "example_hoc_control.hoc")

        result = subprocess.call(["diff", parameter_file, compare_file])
        self.assertEqual(result, 0)
Esempio n. 5
0
    def test_setitem(self):

        parameter = Parameter("gbar_Na", 120, cp.Uniform(110, 130))
        parameters = Parameters()

        parameters["gbar_Na"] = parameter

        self.assertTrue("gbar_Na" in parameters.parameters)
        self.assertIsInstance(parameters["gbar_Na"], Parameter)
Esempio n. 6
0
    def test_init_function(self):
        def distribution(x):
            return cp.Uniform(x - 10, x + 10)

        parameter = Parameter("gbar_Na", 120, distribution)

        self.assertEqual(parameter.name, "gbar_Na")
        self.assertEqual(parameter.value, 120)
        self.assertIsInstance(parameter.distribution, cp.Distribution)
Esempio n. 7
0
    def test_init_chaospy(self):
        parameter = Parameter("gbar_Na", 120, cp.Uniform(110, 130))

        self.assertTrue(parameter.name, "gbar_Na")
        self.assertTrue(parameter.value, 120)
        self.assertIsInstance(parameter.distribution, cp.Distribution)
Esempio n. 8
0
    def test_init_none(self):
        parameter = Parameter("gbar_Na", 120)

        self.assertEqual(parameter.name, "gbar_Na")
        self.assertEqual(parameter.value, 120)
Esempio n. 9
0
class TestParameter(unittest.TestCase):
    def setUp(self):
        self.parameter = Parameter("gbar_Na", 120)

        self.parameter_filename = "example_hoc.hoc"

        self.folder = os.path.dirname(os.path.realpath(__file__))

        self.test_data_dir = os.path.join(self.folder, "data")
        self.data_file = "example_hoc.hoc"
        self.output_test_dir = ".tests/"

        if os.path.isdir(self.output_test_dir):
            shutil.rmtree(self.output_test_dir)
        os.makedirs(self.output_test_dir)

    def tearDown(self):
        if os.path.isdir(self.output_test_dir):
            shutil.rmtree(self.output_test_dir)

    def test_init_none(self):
        parameter = Parameter("gbar_Na", 120)

        self.assertEqual(parameter.name, "gbar_Na")
        self.assertEqual(parameter.value, 120)

    def test_init_function(self):
        def distribution(x):
            return cp.Uniform(x - 10, x + 10)

        parameter = Parameter("gbar_Na", 120, distribution)

        self.assertEqual(parameter.name, "gbar_Na")
        self.assertEqual(parameter.value, 120)
        self.assertIsInstance(parameter.distribution, cp.Distribution)

    def test_init_chaospy(self):
        parameter = Parameter("gbar_Na", 120, cp.Uniform(110, 130))

        self.assertTrue(parameter.name, "gbar_Na")
        self.assertTrue(parameter.value, 120)
        self.assertIsInstance(parameter.distribution, cp.Distribution)

    def test_set_distribution_none(self):
        distribution = None
        self.parameter.distribution = distribution

        self.assertIsNone(self.parameter.distribution)

    def test_set_distribution_function(self):
        def distribution_function(x):
            return cp.Uniform(x - 10, x + 10)

        self.parameter.distribution = distribution_function

        # self.assertEqual(self.parameter.distribution, cp.Uniform(110, 130))
        self.assertIsInstance(self.parameter.distribution, cp.Distribution)

    def test_set_distribution_function_not_return_dist(self):
        def distribution_function(x):
            return x

        with self.assertRaises(TypeError):
            self.parameter.distribution = distribution_function

    def test_set_distribution_int(self):
        distribution = 1
        with self.assertRaises(TypeError):
            self.parameter.distribution = distribution

    def test_set_distribution_chaospy(self):
        distribution = cp.Uniform(110, 130)
        self.parameter.distribution = distribution

        # self.assertEqual(self.parameter.distribution, cp.Uniform(110, 130))
        self.assertIsInstance(self.parameter.distribution, cp.Distribution)

    def test_set_parameters_file(self):
        parameter_file = os.path.join(self.output_test_dir,
                                      self.parameter_filename)

        shutil.copy(os.path.join(self.test_data_dir, self.parameter_filename),
                    parameter_file)

        self.parameter = Parameter("test", 120)

        self.parameter.set_parameter_file(parameter_file, 12)

        compare_file = os.path.join(self.test_data_dir,
                                    "example_hoc_control.hoc")

        result = subprocess.call(["diff", parameter_file, compare_file])
        self.assertEqual(result, 0)

    def test_reset_parameter_file(self):
        parameter_file = os.path.join(self.output_test_dir,
                                      self.parameter_filename)

        shutil.copy(os.path.join(self.test_data_dir, self.parameter_filename),
                    parameter_file)

        self.parameter = Parameter("test", 12)

        self.parameter.reset_parameter_file(parameter_file)

        compare_file = os.path.join(self.test_data_dir,
                                    "example_hoc_control.hoc")

        result = subprocess.call(["diff", parameter_file, compare_file])
        self.assertEqual(result, 0)

    def test_str(self):
        result = str(self.parameter)

        self.assertEqual(result, "gbar_Na: 120")

    def test_str_uncertain(self):

        self.parameter = Parameter("gbar_Na", 120, cp.Uniform(110, 130))

        result = str(self.parameter)

        self.assertEqual(result, "gbar_Na: 120 - Uncertain")