コード例 #1
0
 def test_misshapen_matrices(self):
     data = [[3, 2, 0], [2, 0, 1]]  # this is utter gibberish
     with self.assertRaises(ValueError):
         _validate_and_build_edge_list(
             graph=np.array(data),
             is_weighted=True,
             weight_attribute="weight",
             check_directed=True,
             weight_default=1.0,
         )
     with self.assertRaises(ValueError):
         _validate_and_build_edge_list(
             graph=scipy.sparse.csr_matrix(data),
             is_weighted=True,
             weight_attribute="weight",
             check_directed=True,
             weight_default=1.0,
         )
コード例 #2
0
 def test_empty_edge_list(self):
     edges = []
     results = _validate_and_build_edge_list(
         graph=edges,
         is_weighted=True,
         weight_attribute="weight",
         check_directed=False,
         weight_default=1.0,
     )
     self.assertEqual([], results[1])
コード例 #3
0
    def test_unweighted_nx(self):
        graph = nx.Graph()
        graph.add_edge("dwayne", "nick")
        graph.add_edge("nick", "ben")

        with self.assertRaises(ValueError):
            _validate_and_build_edge_list(
                graph=graph,
                is_weighted=True,
                weight_attribute="weight",
                check_directed=False,
                weight_default=None,
            )

        _, edges = _validate_and_build_edge_list(
            graph=graph,
            is_weighted=True,
            weight_attribute="weight",
            check_directed=False,
            weight_default=3.33333,
        )
        self.assertEqual(
            [("dwayne", "nick", 3.33333), ("nick", "ben", 3.33333)],
            edges,
        )

        graph.add_edge("salad", "sandwich", weight=100)
        _, edges = _validate_and_build_edge_list(
            graph=graph,
            is_weighted=True,
            weight_attribute="weight",
            check_directed=False,
            weight_default=3.33333,
        )
        self.assertEqual(
            [
                ("dwayne", "nick", 3.33333),
                ("nick", "ben", 3.33333),
                ("salad", "sandwich", 100),
            ],
            edges,
        )
コード例 #4
0
    def test_empty_adj_matrices(self):
        dense = np.array([])
        with self.assertRaises(ValueError):
            _validate_and_build_edge_list(
                graph=dense,
                is_weighted=True,
                weight_attribute="weight",
                check_directed=True,
                weight_default=1.0,
            )

        sparse = scipy.sparse.csr_matrix([])
        with self.assertRaises(ValueError):
            _validate_and_build_edge_list(
                graph=sparse,
                is_weighted=True,
                weight_attribute="weight",
                check_directed=True,
                weight_default=1.0,
            )
コード例 #5
0
    def test_assert_wrong_types_in_tuples(self):
        edges = [(True, 4, "sandwich")]
        with self.assertRaises(ValueError):
            _validate_and_build_edge_list(
                graph=edges,
                is_weighted=True,
                weight_attribute="weight",
                check_directed=False,
                weight_default=1.0,
            )

        edges = [(True, False, 3.2)]
        results = _validate_and_build_edge_list(
            graph=edges,
            is_weighted=True,
            weight_attribute="weight",
            check_directed=False,
            weight_default=1.0,
        )
        self.assertEqual([("True", "False", 3.2)], results[1])
コード例 #6
0
    def test_valid_nx(self):
        graph = add_edges_to_graph(nx.Graph())
        expected = [("nick", "dwayne", 2.2), ("dwayne", "ben", 0.001)]
        _, edges = _validate_and_build_edge_list(
            graph=graph,
            is_weighted=True,
            weight_attribute="weight",
            check_directed=False,
            weight_default=1.0,
        )
        self.assertEqual(expected, edges)

        with self.assertRaises(TypeError):
            graph = add_edges_to_graph(nx.DiGraph())
            _validate_and_build_edge_list(
                graph=graph,
                is_weighted=True,
                weight_attribute="weight",
                check_directed=False,
                weight_default=1.0,
            )

        with self.assertRaises(TypeError):
            graph = add_edges_to_graph(nx.MultiGraph())
            _validate_and_build_edge_list(
                graph=graph,
                is_weighted=True,
                weight_attribute="weight",
                check_directed=False,
                weight_default=1.0,
            )

        with self.assertRaises(TypeError):
            graph = add_edges_to_graph(nx.MultiDiGraph())
            _validate_and_build_edge_list(
                graph=graph,
                is_weighted=True,
                weight_attribute="weight",
                check_directed=False,
                weight_default=1.0,
            )
コード例 #7
0
    def test_matrices(self):
        graph = add_edges_to_graph(nx.Graph())
        di_graph = add_edges_to_graph(nx.DiGraph())

        dense_undirected = nx.to_numpy_array(graph)
        dense_directed = nx.to_numpy_array(di_graph)

        sparse_undirected = nx.to_scipy_sparse_matrix(graph)
        sparse_directed = nx.to_scipy_sparse_matrix(di_graph)

        expected = [("0", "1", 2.2), ("1", "2", 0.001)]
        _, edges = _validate_and_build_edge_list(
            graph=dense_undirected,
            is_weighted=True,
            weight_attribute="weight",
            check_directed=True,
            weight_default=1.0,
        )
        self.assertEqual(expected, edges)
        _, edges = _validate_and_build_edge_list(
            graph=sparse_undirected,
            is_weighted=True,
            weight_attribute="weight",
            check_directed=True,
            weight_default=1.0,
        )
        self.assertEqual(expected, edges)

        with self.assertRaises(ValueError):
            _validate_and_build_edge_list(
                graph=dense_directed,
                is_weighted=True,
                weight_attribute="weight",
                check_directed=True,
                weight_default=1.0,
            )

        with self.assertRaises(ValueError):
            _validate_and_build_edge_list(
                graph=sparse_directed,
                is_weighted=True,
                weight_attribute="weight",
                check_directed=True,
                weight_default=1.0,
            )