def test_instantiation(self): name = 'test' resolution = [0, 1, 2] lower_bound = 0 upper_bound = 2.1 par = parameters.RealParameter(name, lower_bound, upper_bound, resolution) self.assertEqual(par.name, name) self.assertEqual(par.resolution, resolution) self.assertEqual(par.lower_bound, lower_bound) self.assertEqual(par.upper_bound, upper_bound) name = 'test' resolution = [0, 1,2] lower_bound = 2.1 upper_bound = 0 with self.assertRaises(ValueError): par = parameters.RealParameter(name, lower_bound, upper_bound, resolution) with self.assertRaises(ValueError): resolution = [-1, 0] par = parameters.RealParameter(name, lower_bound, upper_bound, resolution) resolution = [0, 1, 3] par = parameters.RealParameter(name, lower_bound, upper_bound, resolution)
def test_experiment_generator(self): sampler = LHSSampler() shared_abc_1 = parameters.RealParameter("shared ab 1", 0, 1) shared_abc_2 = parameters.RealParameter("shared ab 2", 0, 1) unique_a = parameters.RealParameter("unique a ", 0, 1) unique_b = parameters.RealParameter("unique b ", 0, 1) uncertainties = [shared_abc_1, shared_abc_2, unique_a, unique_b] designs = sampler.generate_designs(uncertainties, 10) designs.kind = parameters.Scenario # everything shared model_a = Model("A", mock.Mock()) model_b = Model("B", mock.Mock()) model_a.uncertainties = [shared_abc_1, shared_abc_2, unique_a] model_b.uncertainties = [shared_abc_1, shared_abc_2, unique_b] model_structures = [model_a, model_b] policies = [parameters.Policy('policy 1'), parameters.Policy('policy 2'), parameters.Policy('policy 3')] gen = parameters.experiment_generator(designs, model_structures, policies) experiments = [] for entry in gen: experiments.append(entry) self.assertEqual(len(experiments), 2*3*10)
def test_comparison(self): name = 'test' resolution = [0, 1,2] lower_bound = 0 upper_bound = 2.0 par1 = parameters.RealParameter(name, lower_bound, upper_bound, resolution) par2 = parameters.RealParameter(name, lower_bound, upper_bound, resolution) self.assertTrue(par1==par2) name = 'test' par1 = parameters.RealParameter(name, lower_bound, upper_bound, resolution) name = 'what?' par2 = parameters.RealParameter(name, lower_bound, upper_bound, resolution) self.assertFalse(par1==par2)
def test_params(self): name = 'test' resolution = [0, 1, 2] lower_bound = 0 upper_bound = 2.1 par = parameters.RealParameter(name, lower_bound, upper_bound, resolution) self.assertEqual(par.params, (0, 2.1))
def test_to_csv(self, mock_pandas): params = [parameters.RealParameter('a', 0.1, 1.5), parameters.IntegerParameter('b', 0, 10), parameters.CategoricalParameter('c', ['a', 'b'])] parameters.parameters_to_csv(params, 'a.csv') # TODO:: add assertions mock_pandas.DataFrame.from_dict.assert_called()