def testInit(self):
        numVertices = 0
        numFeatures = 1
        vList = VertexList(numVertices, numFeatures)
        graph = SparseGraph(vList)

        numVertices = 10
        numFeatures = 1
        vList = VertexList(numVertices, numFeatures)
        graph = SparseGraph(vList)
        self.assertEquals(graph.weightMatrixType(), scipy.sparse.csr_matrix)

        self.assertRaises(ValueError, SparseGraph, [])
        self.assertRaises(ValueError, SparseGraph, vList, 1)
        self.assertRaises(ValueError, SparseGraph, vList, True, 1)

        #Now test invalid values of W
        W = numpy.zeros((numVertices, numVertices))
        self.assertRaises(ValueError, SparseGraph, vList, True, W)

        W = scipy.sparse.lil_matrix((numVertices + 1, numVertices))
        self.assertRaises(ValueError, SparseGraph, vList, True, W)

        W = scipy.sparse.lil_matrix((numVertices, numVertices))
        W[0, 1] = 1
        self.assertRaises(ValueError, SparseGraph, vList, True, W)

        W = scipy.sparse.lil_matrix((numVertices, numVertices))
        graph = SparseGraph(vList, W=W)

        self.assertEquals(graph.weightMatrixType(), scipy.sparse.lil_matrix)

        #Test intialising with non-empty graph
        numVertices = 10
        W = scipy.sparse.csr_matrix((numVertices, numVertices))
        W[1, 0] = 1.1
        W[0, 1] = 1.1
        graph = SparseGraph(numVertices, W=W)

        self.assertEquals(graph[1, 0], 1.1)

        #Test just specifying number of vertices
        graph = SparseGraph(numVertices)
        self.assertEquals(graph.size, numVertices)

        #Try creating a sparse matrix of dtype int
        graph = SparseGraph(numVertices, dtype=numpy.int)
        self.assertEquals(graph.W.dtype, numpy.int)
        graph[0, 0] = 1.2

        self.assertEquals(graph[0, 0], 1)

        #Test the different sparse matrix formats
        graph = SparseGraph(numVertices, frmt="lil")
        self.assertEquals(type(graph.W), scipy.sparse.lil_matrix)

        graph = SparseGraph(numVertices, frmt="csr")
        self.assertEquals(type(graph.W), scipy.sparse.csr_matrix)

        graph = SparseGraph(numVertices, frmt="csc")
        self.assertEquals(type(graph.W), scipy.sparse.csc_matrix)
    def testInit(self):
        numVertices = 0
        numFeatures = 1
        vList = VertexList(numVertices, numFeatures)
        graph = SparseGraph(vList)

        numVertices = 10
        numFeatures = 1
        vList = VertexList(numVertices, numFeatures)
        graph = SparseGraph(vList)
        self.assertEquals(graph.weightMatrixType(), scipy.sparse.csr_matrix)

        self.assertRaises(ValueError, SparseGraph, [])
        self.assertRaises(ValueError, SparseGraph, vList, 1)
        self.assertRaises(ValueError, SparseGraph, vList, True, 1)

        #Now test invalid values of W
        W = numpy.zeros((numVertices, numVertices))
        self.assertRaises(ValueError, SparseGraph, vList, True, W)

        W = scipy.sparse.lil_matrix((numVertices+1, numVertices))
        self.assertRaises(ValueError, SparseGraph, vList, True, W)

        W = scipy.sparse.lil_matrix((numVertices, numVertices))
        W[0, 1] = 1
        self.assertRaises(ValueError, SparseGraph, vList, True, W)

        W = scipy.sparse.lil_matrix((numVertices, numVertices))
        graph = SparseGraph(vList, W=W)

        self.assertEquals(graph.weightMatrixType(), scipy.sparse.lil_matrix)
        
        #Test intialising with non-empty graph 
        numVertices = 10 
        W = scipy.sparse.csr_matrix((numVertices, numVertices))
        W[1, 0] = 1.1 
        W[0, 1] = 1.1 
        graph = SparseGraph(numVertices, W=W)
        
        self.assertEquals(graph[1, 0], 1.1)
        
        #Test just specifying number of vertices 
        graph = SparseGraph(numVertices)
        self.assertEquals(graph.size, numVertices)
        
        #Try creating a sparse matrix of dtype int 
        graph = SparseGraph(numVertices, dtype=numpy.int)
        self.assertEquals(graph.W.dtype, numpy.int)
        graph[0, 0] = 1.2 
        
        self.assertEquals(graph[0, 0], 1)
        
        
        #Test the different sparse matrix formats 
        graph = SparseGraph(numVertices, frmt="lil")
        self.assertEquals(type(graph.W), scipy.sparse.lil_matrix)
        
        graph = SparseGraph(numVertices, frmt="csr")
        self.assertEquals(type(graph.W), scipy.sparse.csr_matrix)
        
        graph = SparseGraph(numVertices, frmt="csc")
        self.assertEquals(type(graph.W), scipy.sparse.csc_matrix)