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]))
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()
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])