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")
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)
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 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_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)
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_init_none(self): parameter = Parameter("gbar_Na", 120) self.assertEqual(parameter.name, "gbar_Na") self.assertEqual(parameter.value, 120)
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")