예제 #1
0
 def test_ndarray(self):
     interface = intf.get_matrix_interface(np.ndarray)
     # const_to_matrix
     mat = interface.const_to_matrix([1,2,3])
     self.assertEquals(interface.size(mat), (3,1))
     mat = interface.const_to_matrix([1,2])
     self.assertEquals(interface.size(mat), (2,1))
     # identity
     mat = interface.identity(4)
     cvxopt_dense = intf.get_matrix_interface(cvxopt.matrix)
     cmp_mat = interface.const_to_matrix(cvxopt_dense.identity(4))
     self.assertEquals(interface.size(mat), interface.size(cmp_mat))
     assert not (mat - cmp_mat).any()
     # scalar_matrix
     mat = interface.scalar_matrix(2,4,3)
     self.assertEquals(interface.size(mat), (4,3))
     self.assertEquals(interface.index(mat, (1,2)), 2)
     # reshape
     mat = interface.const_to_matrix([[1,2,3],[3,4,5]])
     mat = interface.reshape(mat, (6,1))
     self.assertEquals(interface.index(mat, (4,0)), 4)
     # index
     mat = interface.const_to_matrix([[1,2,3,4],[3,4,5,6]])
     self.assertEquals( interface.index(mat, (0,1)), 3)
     mat = interface.index(mat, (slice(1,4,2), slice(0,2,None)))
     self.assertEquals(list(mat.flatten('C')), [2,4,4,6])
     # Scalars and matrices.
     scalar = interface.const_to_matrix(2)
     mat = interface.const_to_matrix([1,2,3])
     self.assertItemsEqual(scalar*mat, interface.const_to_matrix([2,4,6]))
     self.assertItemsEqual(scalar - mat, interface.const_to_matrix([1,0,-1]))
예제 #2
0
 def test_numpy_matrix(self):
     interface = intf.get_matrix_interface(np.matrix)
     # const_to_matrix
     mat = interface.const_to_matrix([1,2,3])
     self.assertEquals(interface.size(mat), (3,1))
     mat = interface.const_to_matrix([[1],[2],[3]])
     self.assertEquals(mat[0,0], 1)
     # identity
     mat = interface.identity(4)
     cvxopt_dense = intf.get_matrix_interface(cvxopt.matrix)
     cmp_mat = interface.const_to_matrix(cvxopt_dense.identity(4))
     self.assertEquals(interface.size(mat), interface.size(cmp_mat))
     assert not (mat - cmp_mat).any()
     # scalar_matrix
     mat = interface.scalar_matrix(2,4,3)
     self.assertEquals(interface.size(mat), (4,3))
     self.assertEquals(interface.index(mat, (1,2)), 2)
     # reshape
     mat = interface.const_to_matrix([[1,2,3],[3,4,5]])
     mat = interface.reshape(mat, (6,1))
     self.assertEquals(interface.index(mat, (4,0)), 4)
     # index
     mat = interface.const_to_matrix([[1,2,3,4],[3,4,5,6]])
     self.assertEquals( interface.index(mat, (0,1)), 3)
     mat = interface.index(mat, (slice(1,4,2), slice(0,2,None)))
     assert not (mat - np.matrix("2 4; 4 6")).any()
예제 #3
0
 def test_cvxopt_sparse(self):
     interface = intf.get_matrix_interface(cvxopt.spmatrix)
     # const_to_matrix
     mat = interface.const_to_matrix([1,2,3])
     self.assertEquals(interface.size(mat), (3,1))
     # identity
     mat = interface.identity(4)
     cmp_mat = interface.const_to_matrix(np.eye(4))
     self.assertEquals(interface.size(mat), interface.size(cmp_mat))
     assert not mat - cmp_mat
     # scalar_matrix
     mat = interface.scalar_matrix(2,4,3)
     self.assertEquals(interface.size(mat), (4,3))
     self.assertEquals(interface.index(mat, (1,2)), 2)
     # reshape
     mat = interface.const_to_matrix([[1,2,3],[3,4,5]])
     mat = interface.reshape(mat, (6,1))
     self.assertEquals(interface.index(mat, (4,0)), 4)
     # Test scalars.
     scalar = interface.scalar_matrix(1, 1, 1)
     self.assertEquals(type(scalar), cvxopt.spmatrix)
     scalar = interface.scalar_matrix(1, 1, 3)
     self.assertEquals(scalar.size, (1,3))
     # index
     mat = interface.const_to_matrix([[1,2,3,4],[3,4,5,6]])
     self.assertEquals( interface.index(mat, (0,1)), 3)
     mat = interface.index(mat, (slice(1,4,2), slice(0,2,None)))
     self.assertEquals(list(mat), [2,4,4,6])