def test_parameters(self): p = Parameter(name='p') self.assertEqual(p.name(), "p") self.assertEqual(p.size, (1, 1)) p = Parameter(4, 3, sign="positive") with self.assertRaises(Exception) as cm: p.value = 1 self.assertEqual(str(cm.exception), "Invalid dimensions (1,1) for Parameter value.") val = -np.ones((4, 3)) val[0, 0] = 2 p = Parameter(4, 3, sign="positive") with self.assertRaises(Exception) as cm: p.value = val self.assertEqual(str(cm.exception), "Invalid sign for Parameter value.") p = Parameter(4, 3, sign="negative") with self.assertRaises(Exception) as cm: p.value = val self.assertEqual(str(cm.exception), "Invalid sign for Parameter value.") # No error for unknown sign. p = Parameter(4, 3) p.value = val
def test_parameters_successes(self): # Parameter names and dimensions p = Parameter(name='p') self.assertEqual(p.name(), "p") self.assertEqual(p.shape, tuple()) # Entry-wise constraints on parameter values. val = -np.ones((4, 3)) val[0, 0] = 2 p = Parameter((4, 3)) p.value = val # Initialize a parameter with a value; later, set it to None. p = Parameter(value=10) self.assertEqual(p.value, 10) p.value = 10 p.value = None self.assertEqual(p.value, None) # Test parameter representation. p = Parameter((4, 3), nonpos=True) self.assertEqual(repr(p), 'Parameter((4, 3), nonpos=True)') # Test valid diagonal parameter. p = Parameter((2, 2), diag=True) p.value = sp.csc_matrix(np.eye(2)) self.assertItemsAlmostEqual(p.value.todense(), np.eye(2), places=10)
def test_parameters(self): p = Parameter(name='p') self.assertEqual(p.name(), "p") self.assertEqual(p.size, (1,1)) p = Parameter(4, 3, sign="positive") with self.assertRaises(Exception) as cm: p.value = 1 self.assertEqual(str(cm.exception), "Invalid dimensions (1,1) for Parameter value.") val = -np.ones((4,3)) val[0,0] = 2 p = Parameter(4, 3, sign="positive") with self.assertRaises(Exception) as cm: p.value = val self.assertEqual(str(cm.exception), "Invalid sign for Parameter value.") p = Parameter(4, 3, sign="negative") with self.assertRaises(Exception) as cm: p.value = val self.assertEqual(str(cm.exception), "Invalid sign for Parameter value.") # No error for unknown sign. p = Parameter(4, 3) p.value = val
def test_parameters_failures(self): p = Parameter(name='p') self.assertEqual(p.name(), "p") self.assertEqual(p.shape, tuple()) p = Parameter((4, 3), nonneg=True) with self.assertRaises(Exception) as cm: p.value = 1 self.assertEqual(str(cm.exception), "Invalid dimensions () for Parameter value.") val = -np.ones((4, 3)) val[0, 0] = 2 p = Parameter((4, 3), nonneg=True) with self.assertRaises(Exception) as cm: p.value = val self.assertEqual(str(cm.exception), "Parameter value must be nonnegative.") p = Parameter((4, 3), nonpos=True) with self.assertRaises(Exception) as cm: p.value = val self.assertEqual(str(cm.exception), "Parameter value must be nonpositive.") with self.assertRaises(Exception) as cm: p = Parameter(2, 1, nonpos=True, value=[2, 1]) self.assertEqual(str(cm.exception), "Parameter value must be nonpositive.") with self.assertRaises(Exception) as cm: p = Parameter((4, 3), nonneg=True, value=[1, 2]) self.assertEqual(str(cm.exception), "Invalid dimensions (2,) for Parameter value.") with self.assertRaises(Exception) as cm: p = Parameter((2, 2), diag=True, symmetric=True) self.assertEqual(str(cm.exception), "Cannot set more than one special attribute in Parameter.") # Boolean with self.assertRaises(Exception) as cm: p = Parameter((2, 2), boolean=True, value=[[1, 1], [1, -1]]) self.assertEqual(str(cm.exception), "Parameter value must be boolean.") # Integer with self.assertRaises(Exception) as cm: p = Parameter((2, 2), integer=True, value=[[1, 1.5], [1, -1]]) self.assertEqual(str(cm.exception), "Parameter value must be integer.") # Diag. with self.assertRaises(Exception) as cm: p = Parameter((2, 2), diag=True, value=[[1, 1], [1, -1]]) self.assertEqual(str(cm.exception), "Parameter value must be diagonal.") # Symmetric. with self.assertRaises(Exception) as cm: p = Parameter((2, 2), symmetric=True, value=[[1, 1], [-1, -1]]) self.assertEqual(str(cm.exception), "Parameter value must be symmetric.")
def test_parameters(self): p = Parameter(name='p') self.assertEqual(p.name(), "p") self.assertEqual(p.size, (1, 1)) p = Parameter(4, 3, sign="positive") with self.assertRaises(Exception) as cm: p.value = 1 self.assertEqual(str(cm.exception), "Invalid dimensions (1, 1) for Parameter value.") val = -np.ones((4, 3)) val[0, 0] = 2 p = Parameter(4, 3, sign="positive") with self.assertRaises(Exception) as cm: p.value = val self.assertEqual(str(cm.exception), "Invalid sign for Parameter value.") p = Parameter(4, 3, sign="negative") with self.assertRaises(Exception) as cm: p.value = val self.assertEqual(str(cm.exception), "Invalid sign for Parameter value.") # No error for unknown sign. p = Parameter(4, 3) p.value = val # Initialize a parameter with a value. p = Parameter(value=10) self.assertEqual(p.value, 10) # Test assigning None. p.value = 10 p.value = None assert p.value is None with self.assertRaises(Exception) as cm: p = Parameter(2, 1, sign="negative", value=[2, 1]) self.assertEqual(str(cm.exception), "Invalid sign for Parameter value.") with self.assertRaises(Exception) as cm: p = Parameter(4, 3, sign="positive", value=[1, 2]) self.assertEqual(str(cm.exception), "Invalid dimensions (2, 1) for Parameter value.") # Test repr. p = Parameter(4, 3, sign="negative") self.assertEqual(repr(p), 'Parameter(4, 3, sign="NEGATIVE")')
def test_parameters(self): p = Parameter(name='p') self.assertEqual(p.name(), "p") self.assertEqual(p.size, (1, 1)) p = Parameter(4, 3, sign="positive") with self.assertRaises(Exception) as cm: p.value = 1 self.assertEqual(str(cm.exception), "Invalid dimensions (1, 1) for Parameter value.") val = -np.ones((4, 3)) val[0, 0] = 2 p = Parameter(4, 3, sign="positive") with self.assertRaises(Exception) as cm: p.value = val self.assertEqual(str(cm.exception), "Invalid sign for Parameter value.") p = Parameter(4, 3, sign="negative") with self.assertRaises(Exception) as cm: p.value = val self.assertEqual(str(cm.exception), "Invalid sign for Parameter value.") # No error for unknown sign. p = Parameter(4, 3) p.value = val # Initialize a parameter with a value. p = Parameter(value=10) self.assertEqual(p.value, 10) # Test assigning None. p.value = 10 p.value = None assert p.value is None with self.assertRaises(Exception) as cm: p = Parameter(2, 1, sign="negative", value=[2, 1]) self.assertEqual(str(cm.exception), "Invalid sign for Parameter value.") with self.assertRaises(Exception) as cm: p = Parameter(4, 3, sign="positive", value=[1, 2]) self.assertEqual(str(cm.exception), "Invalid dimensions (2, 1) for Parameter value.") # Test repr. p = Parameter(4, 3, sign="negative") self.assertEqual(repr(p), 'Parameter(4, 3, sign="NEGATIVE")')
def test_parameters(self): p = Parameter(name='p') self.assertEqual(p.name(), "p") self.assertEqual(p.size, (1,1))