def test_parameter_iterable(self): par = Parameter("test") par.add_interval(3, 4.5, True) par.add_option(7, True) self.assertFalse(par.is_legal([0.5, 3.2, 5.0])) self.assertTrue(par.is_legal([3.1, 4.2, 4.4])) self.assertTrue(par.is_legal([3.1, 4.2, 4.4, 7]))
def test_parameter_multiple_options(self): par = Parameter("test") par.add_option(9.8, True) self.assertRaises(ValueError, par.add_option, 3, False) self.assertFalse(par.is_legal(-831.0)) self.assertTrue(par.is_legal(9.8)) self.assertFalse(par.is_legal(3))
def test_clear_intervals(self): # FIXME par = Parameter("test") par.add_interval(3, 4.5, True) # self.assertEqual(par.__intervals, [[3, 4.5]]) #FIXME par.clear_intervals() par.add_option(9.7, True) # self.assertEqual(par.__options, [9.7]) par.clear_options()
def test_parameter_legal_option_bool(self): par = Parameter("test") par.add_option(True, True) self.assertFalse(par.is_legal(10)) self.assertFalse(par.is_legal(9.8)) self.assertTrue(par.is_legal(True)) self.assertFalse(par.is_legal("A")) self.assertFalse(par.is_legal(38))
def test_parameter_illegal_interval_plus_legal_option(self): par = Parameter("test") par.add_interval(None, 8.5, False) # minus infinite to 8.5 par.add_option(5, True) self.assertFalse(par.is_legal(-831.0)) self.assertFalse(par.is_legal(8.5)) self.assertTrue(par.is_legal(5.0)) self.assertTrue(par.is_legal(10.0)) self.assertTrue(par.is_legal(11.0))
def test_parameter_legal_option_int_and_float(self): par = Parameter("test") par.add_option(38, True) par.add_option(9.8, True) self.assertFalse(par.is_legal(10)) self.assertTrue(par.is_legal(9.8)) self.assertFalse(par.is_legal(True)) self.assertFalse(par.is_legal("A")) self.assertTrue(par.is_legal(38))
def test_parameter_legal_option_string(self): par = Parameter("test") par.add_option(["B", "A"], True) self.assertFalse(par.is_legal(10)) self.assertFalse(par.is_legal(9.8)) self.assertFalse(par.is_legal(True)) self.assertTrue(par.is_legal("A")) self.assertTrue(par.is_legal("B")) self.assertFalse(par.is_legal("C")) self.assertFalse(par.is_legal(38))
def test_parameter_legal_option_fromlist(self): par = Parameter("test") par.add_option([9, 8, 38], True) self.assertFalse(par.is_legal(10)) self.assertFalse(par.is_legal(9.8)) self.assertFalse(par.is_legal(True)) self.assertFalse(par.is_legal("A")) self.assertTrue(par.is_legal(38)) self.assertTrue(par.is_legal(38.0)) self.assertTrue(par.is_legal(8))
def test_parameter_illegal_interval_plus_illegal_option(self): par = Parameter("test") par.add_interval(None, 8.5, False) # minus infinite to 8.5 par.add_option( 5, False) # this is stupid, already accounted in the interval par.add_option(11, False) self.assertFalse(par.is_legal(-831.0)) self.assertFalse(par.is_legal(8.5)) # illegal because closed interval self.assertFalse(par.is_legal(5.0)) self.assertTrue(par.is_legal(10.0)) self.assertFalse(par.is_legal(11.0))
def test_parameter_get_options(self): """ Ensure get_options returns the options as required """ par = Parameter("test") par.add_interval(None, 8.5, False) # minus infinite to 8.5 par.add_option( 5, True) # this is stupid, already accounted in the interval par.add_option(11, True) retrieved_options = par.get_options() self.assertEqual(len(retrieved_options), 2) self.assertEqual(retrieved_options[0], 5.0) self.assertEqual(retrieved_options[1], 11.0) self.assertTrue(par.get_options_are_legal())
def test_print(self): par = Parameter("test") par.add_interval(3, 4.5, True) par.add_option(9.8, True) print(par)
def test_print_legal_interval(self): par = Parameter("test") par.add_interval(3, 4.5, True) par.add_option(9.8, True) par.print_parameter_constraints()
def test_values_different_types(self): par = Parameter("test") par.add_option(9.8, True) with pytest.raises(TypeError): par.add_option(True, True)