Пример #1
0
    def test_is_bipartite(self):
        biadjacency = star_wars(metadata=False)
        adjacency = bipartite2undirected(biadjacency)
        self.assertTrue(is_bipartite(adjacency))

        bipartite, pred = is_bipartite(adjacency, return_biadjacency=True)
        self.assertEqual(bipartite, True)
        self.assertEqual(np.all(biadjacency.data == pred.data), True)

        adjacency = sparse.identity(2, format='csr')
        bipartite, biadjacency = is_bipartite(adjacency,
                                              return_biadjacency=True)
        self.assertEqual(bipartite, False)
        self.assertIsNone(biadjacency)

        adjacency = directed2undirected(cyclic_digraph(3))
        bipartite, biadjacency = is_bipartite(adjacency,
                                              return_biadjacency=True)
        self.assertEqual(bipartite, False)
        self.assertIsNone(biadjacency)

        with self.assertRaises(ValueError):
            is_bipartite(cyclic_digraph(3))

        self.assertTrue(~is_bipartite(sparse.eye(3)))
Пример #2
0
    def test_largest_cc(self):
        adjacency = cyclic_digraph(3)
        adjacency += adjacency.T
        largest_cc, indices = largest_connected_component(adjacency,
                                                          return_labels=True)

        self.assertAlmostEqual(
            np.linalg.norm(largest_cc.toarray() -
                           np.array([[0, 1, 1], [1, 0, 1], [1, 1, 0]])), 0)
        self.assertEqual(np.linalg.norm(indices - np.array([0, 1, 2])), 0)

        biadjacency = star_wars(metadata=False)
        largest_cc, indices = largest_connected_component(biadjacency,
                                                          return_labels=True)

        self.assertAlmostEqual(
            np.linalg.norm(
                largest_cc.toarray() -
                np.array([[1, 0, 1], [1, 0, 0], [1, 1, 1], [0, 1, 1]])), 0)
        self.assertEqual(np.linalg.norm(indices[0] - np.array([0, 1, 2, 3])),
                         0)
        self.assertEqual(np.linalg.norm(indices[1] - np.array([0, 1, 2])), 0)

        self.assertTrue(
            isinstance(
                largest_connected_component(adjacency, return_labels=False),
                sparse.csr_matrix))
Пример #3
0
 def test_bilouvain(self):
     biadjacency = star_wars()
     adjacency = bipartite2undirected(biadjacency)
     louvain = Louvain(modularity='newman')
     labels1 = louvain.fit_transform(adjacency)
     louvain.fit(biadjacency)
     labels2 = np.concatenate((louvain.labels_row_, louvain.labels_col_))
     self.assertTrue((labels1 == labels2).all())
Пример #4
0
    def test_bimodularity(self):
        biadjacency = star_wars()
        labels_row = np.array([0, 0, 1, 1])
        labels_col = np.array([0, 1, 0])
        self.assertEqual(bimodularity(biadjacency, labels_row, labels_col),
                         0.1875)

        with self.assertRaises(ValueError):
            bimodularity(biadjacency, labels_row[:2], labels_col)
        with self.assertRaises(ValueError):
            bimodularity(biadjacency, labels_row, labels_col[:2])
Пример #5
0
    def test_aggregate(self):
        adjacency = house()
        biadjacency = star_wars()

        louvain = Louvain(return_aggregate=True)
        louvain.fit(adjacency)
        self.assertTrue(np.issubdtype(louvain.adjacency_.dtype, np.float_))

        bilouvain = BiLouvain(return_aggregate=True)
        bilouvain.fit(biadjacency)
        self.assertTrue(np.issubdtype(bilouvain.biadjacency_.dtype, np.float_))
Пример #6
0
    def test_options(self):
        biadjacency = star_wars(metadata=False)
        n_row, n_col = biadjacency.shape
        min_dim = min(n_row, n_col) - 1
        gsvd = GSVD(n_components=5,
                    regularization=0.,
                    solver='halko',
                    relative_regularization=True)

        with self.assertWarns(Warning):
            gsvd.fit(biadjacency)
        self.assertEqual(gsvd.embedding_row_.shape, (n_row, min_dim))
        self.assertEqual(gsvd.embedding_col_.shape, (n_col, min_dim))

        gsvd = GSVD(n_components=1,
                    regularization=0.1,
                    solver='halko',
                    relative_regularization=True)
        gsvd.fit(biadjacency)
        gsvd.predict(np.random.rand(n_col))
Пример #7
0
 def setUp(self):
     """Simple regularized adjacency and biadjacency for tests."""
     self.undirected = SparseLR(house(), [(np.ones(5), np.ones(5))])
     self.bipartite = SparseLR(star_wars(), [(np.ones(4), np.ones(3))])
Пример #8
0
 def setUp(self):
     """Basic biadjacency for tests."""
     self.biadjacency = star_wars()