diff --git a/2022-round-1/29riyasaxena/nx_dev_test_output.txt b/2022-round-1/29riyasaxena/nx_dev_test_output.txt new file mode 100644 index 0000000..d406a6b --- /dev/null +++ b/2022-round-1/29riyasaxena/nx_dev_test_output.txt @@ -0,0 +1,380 @@ +============================= test session starts ============================== +platform linux -- Python 3.10.4, pytest-7.1.1, pluggy-1.0.0 +rootdir: /home/riya/Documents/Outreachy/Project-2/1/networkx +plugins: cov-3.0.0 +collected 4900 items / 4 skipped + +networkx/algorithms/approximation/tests/test_approx_clust_coeff.py ..... [ 0%] +. [ 0%] +networkx/algorithms/approximation/tests/test_clique.py ........ [ 0%] +networkx/algorithms/approximation/tests/test_connectivity.py ........... [ 0%] +....... [ 0%] +networkx/algorithms/approximation/tests/test_distance_measures.py ...... [ 0%] +.. [ 0%] +networkx/algorithms/approximation/tests/test_dominating_set.py ... [ 0%] +networkx/algorithms/approximation/tests/test_kcomponents.py ............ [ 1%] +.... [ 1%] +networkx/algorithms/approximation/tests/test_matching.py . [ 1%] +networkx/algorithms/approximation/tests/test_maxcut.py ..... [ 1%] +networkx/algorithms/approximation/tests/test_ramsey.py . [ 1%] +networkx/algorithms/approximation/tests/test_steinertree.py .... [ 1%] +networkx/algorithms/approximation/tests/test_traveling_salesman.py ..... [ 1%] +...............................s......s. [ 2%] +networkx/algorithms/approximation/tests/test_treewidth.py ............ [ 2%] +networkx/algorithms/approximation/tests/test_vertex_cover.py .... [ 2%] +networkx/algorithms/assortativity/tests/test_connectivity.py .......... [ 2%] +networkx/algorithms/assortativity/tests/test_correlation.py ............ [ 3%] +....... [ 3%] +networkx/algorithms/assortativity/tests/test_mixing.py ................. [ 3%] +.. [ 3%] +networkx/algorithms/assortativity/tests/test_neighbor_degree.py ...... [ 3%] +networkx/algorithms/assortativity/tests/test_pairs.py ........... [ 4%] +networkx/algorithms/bipartite/tests/test_basic.py ............... [ 4%] +networkx/algorithms/bipartite/tests/test_centrality.py ...... [ 4%] +networkx/algorithms/bipartite/tests/test_cluster.py ......... [ 4%] +networkx/algorithms/bipartite/tests/test_covering.py .... [ 4%] +networkx/algorithms/bipartite/tests/test_edgelist.py .............. [ 4%] +networkx/algorithms/bipartite/tests/test_generators.py .......... [ 5%] +networkx/algorithms/bipartite/tests/test_matching.py ................... [ 5%] +. [ 5%] +networkx/algorithms/bipartite/tests/test_matrix.py ........... [ 5%] +networkx/algorithms/bipartite/tests/test_project.py ................. [ 6%] +networkx/algorithms/bipartite/tests/test_redundancy.py ... [ 6%] +networkx/algorithms/bipartite/tests/test_spectral_bipartivity.py ... [ 6%] +networkx/algorithms/centrality/tests/test_betweenness_centrality.py .... [ 6%] +..................................... [ 7%] +networkx/algorithms/centrality/tests/test_betweenness_centrality_subset.py . [ 7%] +................ [ 7%] +networkx/algorithms/centrality/tests/test_closeness_centrality.py ...... [ 7%] +....... [ 7%] +networkx/algorithms/centrality/tests/test_current_flow_betweenness_centrality.py . [ 7%] +............... [ 8%] +networkx/algorithms/centrality/tests/test_current_flow_betweenness_centrality_subset.py . [ 8%] +........ [ 8%] +networkx/algorithms/centrality/tests/test_current_flow_closeness.py ... [ 8%] +networkx/algorithms/centrality/tests/test_degree_centrality.py ....... [ 8%] +networkx/algorithms/centrality/tests/test_dispersion.py ... [ 8%] +networkx/algorithms/centrality/tests/test_eigenvector_centrality.py .... [ 8%] +........ [ 8%] +networkx/algorithms/centrality/tests/test_group.py ..................... [ 9%] +... [ 9%] +networkx/algorithms/centrality/tests/test_harmonic_centrality.py ....... [ 9%] +...... [ 9%] +networkx/algorithms/centrality/tests/test_katz_centrality.py ........... [ 9%] +............... [ 10%] +networkx/algorithms/centrality/tests/test_load_centrality.py ........... [ 10%] +...... [ 10%] +networkx/algorithms/centrality/tests/test_percolation_centrality.py ... [ 10%] +networkx/algorithms/centrality/tests/test_reaching.py .............. [ 10%] +networkx/algorithms/centrality/tests/test_second_order_centrality.py ... [ 10%] +.... [ 10%] +networkx/algorithms/centrality/tests/test_subgraph.py ..... [ 10%] +networkx/algorithms/centrality/tests/test_trophic.py .......... [ 11%] +networkx/algorithms/centrality/tests/test_voterank.py ..... [ 11%] +networkx/algorithms/coloring/tests/test_coloring.py ................ [ 11%] +networkx/algorithms/community/tests/test_asyn_fluid.py ..... [ 11%] +networkx/algorithms/community/tests/test_centrality.py ..... [ 11%] +networkx/algorithms/community/tests/test_kclique.py ........ [ 11%] +networkx/algorithms/community/tests/test_kernighan_lin.py ........ [ 12%] +networkx/algorithms/community/tests/test_label_propagation.py .......... [ 12%] +. [ 12%] +networkx/algorithms/community/tests/test_louvain.py ........ [ 12%] +networkx/algorithms/community/tests/test_lukes.py .... [ 12%] +networkx/algorithms/community/tests/test_modularity_max.py ............. [ 12%] +.... [ 12%] +networkx/algorithms/community/tests/test_quality.py ....... [ 13%] +networkx/algorithms/community/tests/test_utils.py .... [ 13%] +networkx/algorithms/components/tests/test_attracting.py .... [ 13%] +networkx/algorithms/components/tests/test_biconnected.py ............. [ 13%] +networkx/algorithms/components/tests/test_connected.py ........ [ 13%] +networkx/algorithms/components/tests/test_semiconnected.py ........ [ 13%] +networkx/algorithms/components/tests/test_strongly_connected.py ........ [ 14%] +...... [ 14%] +networkx/algorithms/components/tests/test_weakly_connected.py ...... [ 14%] +networkx/algorithms/connectivity/tests/test_connectivity.py ............ [ 14%] +...................... [ 14%] +networkx/algorithms/connectivity/tests/test_cuts.py .................... [ 15%] +. [ 15%] +networkx/algorithms/connectivity/tests/test_disjoint_paths.py .......... [ 15%] +........ [ 15%] +networkx/algorithms/connectivity/tests/test_edge_augmentation.py ....... [ 15%] +............. [ 16%] +networkx/algorithms/connectivity/tests/test_edge_kcomponents.py ........ [ 16%] +............. [ 16%] +networkx/algorithms/connectivity/tests/test_kcomponents.py .sss...... [ 16%] +networkx/algorithms/connectivity/tests/test_kcutsets.py s........s..... [ 17%] +networkx/algorithms/connectivity/tests/test_stoer_wagner.py ..... [ 17%] +networkx/algorithms/flow/tests/test_gomory_hu.py ....s.... [ 17%] +networkx/algorithms/flow/tests/test_maxflow.py ......................... [ 17%] +.. [ 17%] +networkx/algorithms/flow/tests/test_maxflow_large_graph.py ...s.. [ 18%] +networkx/algorithms/flow/tests/test_mincost.py ................... [ 18%] +networkx/algorithms/flow/tests/test_networksimplex.py .................. [ 18%] +.... [ 18%] +networkx/algorithms/isomorphism/tests/test_ismags.py .......... [ 19%] +networkx/algorithms/isomorphism/tests/test_isomorphism.py .... [ 19%] +networkx/algorithms/isomorphism/tests/test_isomorphvf2.py .............. [ 19%] +. [ 19%] +networkx/algorithms/isomorphism/tests/test_match_helpers.py .. [ 19%] +networkx/algorithms/isomorphism/tests/test_temporalisomorphvf2.py ...... [ 19%] +...... [ 19%] +networkx/algorithms/isomorphism/tests/test_tree_isomorphism.py ..... [ 19%] +networkx/algorithms/isomorphism/tests/test_vf2userfunc.py .............. [ 20%] +.............. [ 20%] +networkx/algorithms/link_analysis/tests/test_hits.py ........ [ 20%] +networkx/algorithms/link_analysis/tests/test_pagerank.py ............... [ 20%] +..................................... [ 21%] +networkx/algorithms/minors/tests/test_contraction.py ................... [ 22%] +............ [ 22%] +networkx/algorithms/operators/tests/test_all.py .................. [ 22%] +networkx/algorithms/operators/tests/test_binary.py .................... [ 23%] +networkx/algorithms/operators/tests/test_product.py .................... [ 23%] +....... [ 23%] +networkx/algorithms/operators/tests/test_unary.py ... [ 23%] +networkx/algorithms/shortest_paths/tests/test_astar.py ............. [ 23%] +networkx/algorithms/shortest_paths/tests/test_dense.py ........ [ 24%] +networkx/algorithms/shortest_paths/tests/test_dense_numpy.py ....... [ 24%] +networkx/algorithms/shortest_paths/tests/test_generic.py ............... [ 24%] +....... [ 24%] +networkx/algorithms/shortest_paths/tests/test_unweighted.py ............ [ 24%] + [ 24%] +networkx/algorithms/shortest_paths/tests/test_weighted.py .............. [ 25%] +....................................... [ 26%] +networkx/algorithms/tests/test_asteroidal.py . [ 26%] +networkx/algorithms/tests/test_boundary.py ............. [ 26%] +networkx/algorithms/tests/test_bridges.py ...... [ 26%] +networkx/algorithms/tests/test_chains.py .... [ 26%] +networkx/algorithms/tests/test_chordal.py .......... [ 26%] +networkx/algorithms/tests/test_clique.py .............. [ 27%] +networkx/algorithms/tests/test_cluster.py .............................. [ 27%] +.......... [ 27%] +networkx/algorithms/tests/test_communicability.py .. [ 27%] +networkx/algorithms/tests/test_core.py ............. [ 28%] +networkx/algorithms/tests/test_covering.py ........ [ 28%] +networkx/algorithms/tests/test_cuts.py ................. [ 28%] +networkx/algorithms/tests/test_cycles.py ............................... [ 29%] +... [ 29%] +networkx/algorithms/tests/test_d_separation.py ............. [ 29%] +networkx/algorithms/tests/test_dag.py .................................. [ 30%] +................... [ 30%] +networkx/algorithms/tests/test_distance_measures.py .................... [ 31%] +............. [ 31%] +networkx/algorithms/tests/test_distance_regular.py ....... [ 31%] +networkx/algorithms/tests/test_dominance.py ...................... [ 31%] +networkx/algorithms/tests/test_dominating.py ..... [ 32%] +networkx/algorithms/tests/test_efficiency.py ....... [ 32%] +networkx/algorithms/tests/test_euler.py .............................. [ 32%] +networkx/algorithms/tests/test_graph_hashing.py ........................ [ 33%] + [ 33%] +networkx/algorithms/tests/test_graphical.py ............. [ 33%] +networkx/algorithms/tests/test_hierarchy.py ..... [ 33%] +networkx/algorithms/tests/test_hybrid.py .. [ 33%] +networkx/algorithms/tests/test_isolate.py ... [ 33%] +networkx/algorithms/tests/test_link_prediction.py ...................... [ 34%] +................................................... [ 35%] +networkx/algorithms/tests/test_lowest_common_ancestors.py .............. [ 35%] +........... [ 35%] +networkx/algorithms/tests/test_matching.py ............................. [ 36%] +................ [ 36%] +networkx/algorithms/tests/test_max_weight_clique.py ..... [ 36%] +networkx/algorithms/tests/test_mis.py ........ [ 36%] +networkx/algorithms/tests/test_moral.py . [ 36%] +networkx/algorithms/tests/test_node_classification.py ............... [ 37%] +networkx/algorithms/tests/test_node_classification_deprecations.py .... [ 37%] +networkx/algorithms/tests/test_non_randomness.py ...... [ 37%] +networkx/algorithms/tests/test_planar_drawing.py ............ [ 37%] +networkx/algorithms/tests/test_planarity.py ............................ [ 38%] +.. [ 38%] +networkx/algorithms/tests/test_reciprocity.py ..... [ 38%] +networkx/algorithms/tests/test_regular.py ............. [ 38%] +networkx/algorithms/tests/test_richclub.py ........ [ 38%] +networkx/algorithms/tests/test_similarity.py ........................... [ 39%] +................. [ 39%] +networkx/algorithms/tests/test_simple_paths.py ......................... [ 40%] +................................................ [ 41%] +networkx/algorithms/tests/test_smallworld.py .... [ 41%] +networkx/algorithms/tests/test_smetric.py .. [ 41%] +networkx/algorithms/tests/test_sparsifiers.py ....... [ 41%] +networkx/algorithms/tests/test_structuralholes.py ............ [ 41%] +networkx/algorithms/tests/test_summarization.py ................. [ 42%] +networkx/algorithms/tests/test_swap.py ............. [ 42%] +networkx/algorithms/tests/test_threshold.py .................. [ 42%] +networkx/algorithms/tests/test_tournament.py ..................... [ 43%] +networkx/algorithms/tests/test_triads.py ........ [ 43%] +networkx/algorithms/tests/test_vitality.py ...... [ 43%] +networkx/algorithms/tests/test_voronoi.py .......... [ 43%] +networkx/algorithms/tests/test_wiener.py .... [ 43%] +networkx/algorithms/traversal/tests/test_beamsearch.py .. [ 43%] +networkx/algorithms/traversal/tests/test_bfs.py .............. [ 44%] +networkx/algorithms/traversal/tests/test_dfs.py ................. [ 44%] +networkx/algorithms/traversal/tests/test_edgebfs.py ................ [ 44%] +networkx/algorithms/traversal/tests/test_edgedfs.py ............... [ 45%] +networkx/algorithms/tree/tests/test_branchings.py ...................... [ 45%] +..... [ 45%] +networkx/algorithms/tree/tests/test_coding.py .............. [ 45%] +networkx/algorithms/tree/tests/test_decomposition.py ..... [ 46%] +networkx/algorithms/tree/tests/test_mst.py ............................. [ 46%] +................. [ 46%] +networkx/algorithms/tree/tests/test_operations.py ... [ 47%] +networkx/algorithms/tree/tests/test_recognition.py ..................... [ 47%] +.... [ 47%] +networkx/classes/tests/test_coreviews.py ............................... [ 48%] +.......................... [ 48%] +networkx/classes/tests/test_digraph.py ................................. [ 49%] +............................................... [ 50%] +networkx/classes/tests/test_digraph_historical.py ...................... [ 50%] +.................... [ 51%] +networkx/classes/tests/test_filters.py ........... [ 51%] +networkx/classes/tests/test_function.py ................................ [ 52%] +.................................... [ 52%] +networkx/classes/tests/test_graph.py ................................... [ 53%] +........................... [ 54%] +networkx/classes/tests/test_graph_historical.py ........................ [ 54%] +.......... [ 54%] +networkx/classes/tests/test_graphviews.py .............................. [ 55%] +..... [ 55%] +networkx/classes/tests/test_multidigraph.py ............................ [ 56%] +................................................................. [ 57%] +networkx/classes/tests/test_multigraph.py .............................. [ 57%] +................................................ [ 58%] +networkx/classes/tests/test_ordered.py ..... [ 59%] +networkx/classes/tests/test_reportviews.py ............................. [ 59%] +........................................................................ [ 61%] +........................................................................ [ 62%] +................................................................ [ 63%] +networkx/classes/tests/test_special.py ................................. [ 64%] +........................................................................ [ 66%] +........................................................................ [ 67%] +........................................................................ [ 68%] +........................................................................ [ 70%] +........................................................................ [ 71%] +........................................................................ [ 73%] +........................................................................ [ 74%] +........................................................................ [ 76%] +... [ 76%] +networkx/classes/tests/test_subgraphviews.py ........................... [ 76%] +..... [ 77%] +networkx/drawing/tests/test_layout.py .......................... [ 77%] +networkx/drawing/tests/test_pylab.py ................................... [ 78%] +........................................................ [ 79%] +networkx/generators/tests/test_atlas.py ........ [ 79%] +networkx/generators/tests/test_classic.py .............................. [ 80%] + [ 80%] +networkx/generators/tests/test_cographs.py . [ 80%] +networkx/generators/tests/test_community.py ................ [ 80%] +networkx/generators/tests/test_degree_seq.py ................... [ 80%] +networkx/generators/tests/test_directed.py ........ [ 81%] +networkx/generators/tests/test_duplication.py ....... [ 81%] +networkx/generators/tests/test_ego.py .. [ 81%] +networkx/generators/tests/test_expanders.py .... [ 81%] +networkx/generators/tests/test_geometric.py ....................... [ 81%] +networkx/generators/tests/test_harary_graph.py .. [ 81%] +networkx/generators/tests/test_internet_as_graphs.py ..... [ 81%] +networkx/generators/tests/test_intersection.py .... [ 82%] +networkx/generators/tests/test_interval_graph.py ........ [ 82%] +networkx/generators/tests/test_joint_degree_seq.py .... [ 82%] +networkx/generators/tests/test_lattice.py ...................... [ 82%] +networkx/generators/tests/test_line.py .............................. [ 83%] +networkx/generators/tests/test_mycielski.py ... [ 83%] +networkx/generators/tests/test_nonisomorphic_trees.py ..... [ 83%] +networkx/generators/tests/test_random_clustered.py .... [ 83%] +networkx/generators/tests/test_random_graphs.py ........................ [ 84%] +....................................... [ 84%] +networkx/generators/tests/test_small.py ................................ [ 85%] +....... [ 85%] +networkx/generators/tests/test_spectral_graph_forge.py . [ 85%] +networkx/generators/tests/test_stochastic.py ...... [ 85%] +networkx/generators/tests/test_sudoku.py ...... [ 85%] +networkx/generators/tests/test_trees.py ....... [ 86%] +networkx/generators/tests/test_triads.py .. [ 86%] +networkx/linalg/tests/test_algebraic_connectivity.py ................... [ 86%] +.................................................................... [ 87%] +networkx/linalg/tests/test_attrmatrix.py ..... [ 88%] +networkx/linalg/tests/test_bethehessian.py . [ 88%] +networkx/linalg/tests/test_graphmatrix.py .... [ 88%] +networkx/linalg/tests/test_laplacian.py .... [ 88%] +networkx/linalg/tests/test_modularity.py ... [ 88%] +networkx/linalg/tests/test_spectrum.py ..... [ 88%] +networkx/readwrite/json_graph/tests/test_adjacency.py ...... [ 88%] +networkx/readwrite/json_graph/tests/test_cytoscape.py ........ [ 88%] +networkx/readwrite/json_graph/tests/test_jit.py ..... [ 88%] +networkx/readwrite/json_graph/tests/test_node_link.py ......... [ 88%] +networkx/readwrite/json_graph/tests/test_tree.py .... [ 89%] +networkx/readwrite/tests/test_adjlist.py .................. [ 89%] +networkx/readwrite/tests/test_edgelist.py .......................... [ 89%] +networkx/readwrite/tests/test_getattr_nxyaml_removal.py .... [ 89%] +networkx/readwrite/tests/test_gexf.py ..................... [ 90%] +networkx/readwrite/tests/test_gml.py ..................... [ 90%] +networkx/readwrite/tests/test_gpickle.py .. [ 90%] +networkx/readwrite/tests/test_graph6.py ............................... [ 91%] +networkx/readwrite/tests/test_graphml.py ..................sssssssssssss [ 92%] +ssssssssssssssssssssssssssssss [ 92%] +networkx/readwrite/tests/test_leda.py .. [ 92%] +networkx/readwrite/tests/test_p2g.py ... [ 92%] +networkx/readwrite/tests/test_pajek.py ........ [ 93%] +networkx/readwrite/tests/test_sparse6.py ................ [ 93%] +networkx/readwrite/tests/test_text.py ....... [ 93%] +networkx/testing/tests/test_utils.py ..................... [ 93%] +networkx/tests/test_all_random_functions.py s [ 93%] +networkx/tests/test_convert.py ............... [ 94%] +networkx/tests/test_convert_numpy.py ................................... [ 94%] +........................................ [ 95%] +networkx/tests/test_convert_pandas.py ...................... [ 96%] +networkx/tests/test_convert_scipy.py ..................... [ 96%] +networkx/tests/test_exceptions.py ....... [ 96%] +networkx/tests/test_import.py .. [ 96%] +networkx/tests/test_lazy_imports.py .... [ 96%] +networkx/tests/test_relabel.py ....................... [ 97%] +networkx/utils/tests/test__init.py . [ 97%] +networkx/utils/tests/test_contextmanager.py . [ 97%] +networkx/utils/tests/test_decorators.py ................................ [ 98%] +... [ 98%] +networkx/utils/tests/test_heaps.py .. [ 98%] +networkx/utils/tests/test_mapped_queue.py .............................. [ 98%] +.......... [ 99%] +networkx/utils/tests/test_misc.py ...................................... [ 99%] + [ 99%] +networkx/utils/tests/test_random_sequence.py .... [ 99%] +networkx/utils/tests/test_rcm.py .. [ 99%] +networkx/utils/tests/test_unionfind.py ..... [100%] + +=============================== warnings summary =============================== +networkx/drawing/tests/test_pylab.py:419 + /home/riya/Documents/Outreachy/Project-2/1/networkx/networkx/drawing/tests/test_pylab.py:419: PytestUnknownMarkWarning: Unknown pytest.mark.mpl_image_compare - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html + @pytest.mark.mpl_image_compare + +networkx/utils/decorators.py:292 + /home/riya/Documents/Outreachy/Project-2/1/networkx/networkx/utils/decorators.py:292: DeprecationWarning: preserve_random_state is deprecated and will be removed in 3.0. + warnings.warn(msg, DeprecationWarning) + +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_ascent_fractional_solution +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_ascent_method_asymmetric +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent_asymmetric_3 +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent_fractional_asymmetric +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_asadpour_tsp + /home/riya/Documents/Outreachy/Project-2/1/networkx/networkx/algorithms/approximation/traveling_salesman.py:679: OptimizeWarning: A_eq does not appear to be of full row rank. To improve performance, check the problem formulation for redundant equality constraints. + program_result = optimize.linprog(c, A_eq=a_eq, b_eq=b_eq) + +networkx/classes/tests/test_ordered.py::TestOrderedFeatures::test_subgraph_order + /home/riya/Documents/Outreachy/Project-2/1/networkx/networkx/classes/tests/test_ordered.py:22: DeprecationWarning: OrderedDiGraph is deprecated and will be removed in version 3.0. + Use `DiGraph` instead, which guarantees order is preserved for + Python >= 3.7 + + cls.G = nx.OrderedDiGraph() + +networkx/linalg/tests/test_algebraic_connectivity.py::TestSpectralOrdering::test_cycle[lobpcg-False-expected_order0] + /home/riya/Documents/Outreachy/Project-2/1/networkx/networkx/linalg/algebraicconnectivity.py:301: UserWarning: Exited at iteration 10 with accuracies + [0.02743716] + not reaching the requested tolerance 1e-08. + sigma, X = sp.sparse.linalg.lobpcg( + +networkx/linalg/tests/test_algebraic_connectivity.py::TestSpectralOrdering::test_cycle[lobpcg-True-expected_order1] + /home/riya/Documents/Outreachy/Project-2/1/networkx/networkx/linalg/algebraicconnectivity.py:301: UserWarning: Exited at iteration 10 with accuracies + [0.00056623] + not reaching the requested tolerance 1e-08. + sigma, X = sp.sparse.linalg.lobpcg( + +-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html +========== 4847 passed, 57 skipped, 11 warnings in 150.72s (0:02:30) =========== + diff --git a/2022-round-1/29riyasaxena/nx_tutorial_script.py b/2022-round-1/29riyasaxena/nx_tutorial_script.py new file mode 100644 index 0000000..f0a71f5 --- /dev/null +++ b/2022-round-1/29riyasaxena/nx_tutorial_script.py @@ -0,0 +1,17 @@ +#import libraries +import networkx as nx + +#Digraph object +DG = nx.DiGraph() +DG.add_edges_from([(1, 2), (1, 3)]) # node 1,2,3 and connected them from 1->2->3 +DG.add_edge("Hello", "World!") # node and connecting them "Hello" -> "World!" +DG.add_edge("World!", (5, 6)) # node (5,6) and connecting them "World!" -> (5,6) +DG.add_edge(1, (5, 6)) # edge 1 -> (5,6) +DG.add_edge(1, "World!") # edge 1 -> "World!" + +# DiGraph +nx.draw(DG, with_labels=True) + +# Calculate the shortest path and print it +sp = nx.shortest_path(DG) +print(sp) diff --git a/2022-round-1/29riyasaxena/nx_version.txt b/2022-round-1/29riyasaxena/nx_version.txt new file mode 100644 index 0000000..c3787de --- /dev/null +++ b/2022-round-1/29riyasaxena/nx_version.txt @@ -0,0 +1 @@ +2.7.2rc1.dev0 \ No newline at end of file diff --git a/2022-round-1/Astroakanksha24/nx_dev_test_output.txt b/2022-round-1/Astroakanksha24/nx_dev_test_output.txt new file mode 100644 index 0000000..be756d0 --- /dev/null +++ b/2022-round-1/Astroakanksha24/nx_dev_test_output.txt @@ -0,0 +1,299 @@ +=========================================================================== test session starts =========================================================================== +platform win32 -- Python 3.9.0, pytest-7.1.1, pluggy-1.0.0 +rootdir: C:\Users\admin\Desktop\outreachy\networkx +plugins: anyio-3.3.3 +collected 4900 items / 4 skipped + +networkx\algorithms\approximation\tests\test_approx_clust_coeff.py ...... [ 0%] +networkx\algorithms\approximation\tests\test_clique.py ........ [ 0%] +networkx\algorithms\approximation\tests\test_connectivity.py .................. [ 0%] +networkx\algorithms\approximation\tests\test_distance_measures.py ........ [ 0%] +networkx\algorithms\approximation\tests\test_dominating_set.py ... [ 0%] +networkx\algorithms\approximation\tests\test_kcomponents.py ................ [ 1%] +networkx\algorithms\approximation\tests\test_matching.py . [ 1%] +networkx\algorithms\approximation\tests\test_maxcut.py ..... [ 1%] +networkx\algorithms\approximation\tests\test_ramsey.py . [ 1%] +networkx\algorithms\approximation\tests\test_steinertree.py .... [ 1%] +networkx\algorithms\approximation\tests\test_traveling_salesman.py ....................................s......s. [ 2%] +networkx\algorithms\approximation\tests\test_treewidth.py ............ [ 2%] +networkx\algorithms\approximation\tests\test_vertex_cover.py .... [ 2%] +networkx\algorithms\assortativity\tests\test_connectivity.py .......... [ 2%] +networkx\algorithms\assortativity\tests\test_correlation.py ................... [ 3%] +networkx\algorithms\assortativity\tests\test_mixing.py ................... [ 3%] +networkx\algorithms\assortativity\tests\test_neighbor_degree.py ...... [ 3%] +networkx\algorithms\assortativity\tests\test_pairs.py ........... [ 4%] +networkx\algorithms\bipartite\tests\test_basic.py ............... [ 4%] +networkx\algorithms\bipartite\tests\test_centrality.py ...... [ 4%] +networkx\algorithms\bipartite\tests\test_cluster.py ......... [ 4%] +networkx\algorithms\bipartite\tests\test_covering.py .... [ 4%] +networkx\algorithms\bipartite\tests\test_edgelist.py .............. [ 4%] +networkx\algorithms\bipartite\tests\test_generators.py .......... [ 5%] +networkx\algorithms\bipartite\tests\test_matching.py .................... [ 5%] +networkx\algorithms\bipartite\tests\test_matrix.py ........... [ 5%] +networkx\algorithms\bipartite\tests\test_project.py ................. [ 6%] +networkx\algorithms\bipartite\tests\test_redundancy.py ... [ 6%] +networkx\algorithms\bipartite\tests\test_spectral_bipartivity.py ... [ 6%] +networkx\algorithms\centrality\tests\test_betweenness_centrality.py ......................................... [ 7%] +networkx\algorithms\centrality\tests\test_betweenness_centrality_subset.py ................. [ 7%] +networkx\algorithms\centrality\tests\test_closeness_centrality.py ............. [ 7%] +networkx\algorithms\centrality\tests\test_current_flow_betweenness_centrality.py ................ [ 8%] +networkx\algorithms\centrality\tests\test_current_flow_betweenness_centrality_subset.py ......... [ 8%] +networkx\algorithms\centrality\tests\test_current_flow_closeness.py ... [ 8%] +networkx\algorithms\centrality\tests\test_degree_centrality.py ....... [ 8%] +networkx\algorithms\centrality\tests\test_dispersion.py ... [ 8%] +networkx\algorithms\centrality\tests\test_eigenvector_centrality.py ............ [ 8%] +networkx\algorithms\centrality\tests\test_group.py ........................ [ 9%] +networkx\algorithms\centrality\tests\test_harmonic_centrality.py ............. [ 9%] +networkx\algorithms\centrality\tests\test_katz_centrality.py .......................... [ 10%] +networkx\algorithms\centrality\tests\test_load_centrality.py ................. [ 10%] +networkx\algorithms\centrality\tests\test_percolation_centrality.py ... [ 10%] +networkx\algorithms\centrality\tests\test_reaching.py .............. [ 10%] +networkx\algorithms\centrality\tests\test_second_order_centrality.py ....... [ 10%] +networkx\algorithms\centrality\tests\test_subgraph.py ..... [ 10%] +networkx\algorithms\centrality\tests\test_trophic.py .......... [ 11%] +networkx\algorithms\centrality\tests\test_voterank.py ..... [ 11%] +networkx\algorithms\coloring\tests\test_coloring.py ................ [ 11%] +networkx\algorithms\community\tests\test_asyn_fluid.py ..... [ 11%] +networkx\algorithms\community\tests\test_centrality.py ..... [ 11%] +networkx\algorithms\community\tests\test_kclique.py ........ [ 11%] +networkx\algorithms\community\tests\test_kernighan_lin.py ........ [ 12%] +networkx\algorithms\community\tests\test_label_propagation.py ........... [ 12%] +networkx\algorithms\community\tests\test_louvain.py ........ [ 12%] +networkx\algorithms\community\tests\test_lukes.py .... [ 12%] +networkx\algorithms\community\tests\test_modularity_max.py ................. [ 12%] +networkx\algorithms\community\tests\test_quality.py ....... [ 13%] +networkx\algorithms\community\tests\test_utils.py .... [ 13%] +networkx\algorithms\components\tests\test_attracting.py .... [ 13%] +networkx\algorithms\components\tests\test_biconnected.py ............. [ 13%] +networkx\algorithms\components\tests\test_connected.py ........ [ 13%] +networkx\algorithms\components\tests\test_semiconnected.py ........ [ 13%] +networkx\algorithms\components\tests\test_strongly_connected.py .............. [ 14%] +networkx\algorithms\components\tests\test_weakly_connected.py ...... [ 14%] +networkx\algorithms\connectivity\tests\test_connectivity.py .................................. [ 14%] +networkx\algorithms\connectivity\tests\test_cuts.py ..................... [ 15%] +networkx\algorithms\connectivity\tests\test_disjoint_paths.py .................. [ 15%] +networkx\algorithms\connectivity\tests\test_edge_augmentation.py .................... [ 16%] +networkx\algorithms\connectivity\tests\test_edge_kcomponents.py ..................... [ 16%] +networkx\algorithms\connectivity\tests\test_kcomponents.py .sss...... [ 16%] +networkx\algorithms\connectivity\tests\test_kcutsets.py s........s..... [ 17%] +networkx\algorithms\connectivity\tests\test_stoer_wagner.py ..... [ 17%] +networkx\algorithms\flow\tests\test_gomory_hu.py ....s.... [ 17%] +networkx\algorithms\flow\tests\test_maxflow.py ........................... [ 17%] +networkx\algorithms\flow\tests\test_maxflow_large_graph.py ...s.. [ 18%] +networkx\algorithms\flow\tests\test_mincost.py ................... [ 18%] +networkx\algorithms\flow\tests\test_networksimplex.py ...................... [ 18%] +networkx\algorithms\isomorphism\tests\test_ismags.py .......... [ 19%] +networkx\algorithms\isomorphism\tests\test_isomorphism.py .... [ 19%] +networkx\algorithms\isomorphism\tests\test_isomorphvf2.py ............... [ 19%] +networkx\algorithms\isomorphism\tests\test_match_helpers.py .. [ 19%] +networkx\algorithms\isomorphism\tests\test_temporalisomorphvf2.py ............ [ 19%] +networkx\algorithms\isomorphism\tests\test_tree_isomorphism.py ..... [ 19%] +networkx\algorithms\isomorphism\tests\test_vf2userfunc.py ............................ [ 20%] +networkx\algorithms\link_analysis\tests\test_hits.py ........ [ 20%] +networkx\algorithms\link_analysis\tests\test_pagerank.py .................................................... [ 21%] +networkx\algorithms\minors\tests\test_contraction.py ............................... [ 22%] +networkx\algorithms\operators\tests\test_all.py .................. [ 22%] +networkx\algorithms\operators\tests\test_binary.py .................... [ 23%] +networkx\algorithms\operators\tests\test_product.py ........................... [ 23%] +networkx\algorithms\operators\tests\test_unary.py ... [ 23%] +networkx\algorithms\shortest_paths\tests\test_astar.py ............. [ 23%] +networkx\algorithms\shortest_paths\tests\test_dense.py ........ [ 24%] +networkx\algorithms\shortest_paths\tests\test_dense_numpy.py ....... [ 24%] +networkx\algorithms\shortest_paths\tests\test_generic.py ...................... [ 24%] +networkx\algorithms\shortest_paths\tests\test_unweighted.py ............ [ 24%] +networkx\algorithms\shortest_paths\tests\test_weighted.py ..................................................... [ 26%] +networkx\algorithms\tests\test_asteroidal.py . [ 26%] +networkx\algorithms\tests\test_boundary.py ............. [ 26%] +networkx\algorithms\tests\test_bridges.py ...... [ 26%] +networkx\algorithms\tests\test_chains.py .... [ 26%] +networkx\algorithms\tests\test_chordal.py .......... [ 26%] +networkx\algorithms\tests\test_clique.py .............. [ 27%] +networkx\algorithms\tests\test_cluster.py ........................................ [ 27%] +networkx\algorithms\tests\test_communicability.py .. [ 27%] +networkx\algorithms\tests\test_core.py ............. [ 28%] +networkx\algorithms\tests\test_covering.py ........ [ 28%] +networkx\algorithms\tests\test_cuts.py ................. [ 28%] +networkx\algorithms\tests\test_cycles.py .................................. [ 29%] +networkx\algorithms\tests\test_d_separation.py ............. [ 29%] +networkx\algorithms\tests\test_dag.py ..................................................... [ 30%] +networkx\algorithms\tests\test_distance_measures.py ................................. [ 31%] +networkx\algorithms\tests\test_distance_regular.py ....... [ 31%] +networkx\algorithms\tests\test_dominance.py ...................... [ 31%] +networkx\algorithms\tests\test_dominating.py ..... [ 32%] +networkx\algorithms\tests\test_efficiency.py ....... [ 32%] +networkx\algorithms\tests\test_euler.py .............................. [ 32%] +networkx\algorithms\tests\test_graph_hashing.py ........................ [ 33%] +networkx\algorithms\tests\test_graphical.py ............. [ 33%] +networkx\algorithms\tests\test_hierarchy.py ..... [ 33%] +networkx\algorithms\tests\test_hybrid.py .. [ 33%] +networkx\algorithms\tests\test_isolate.py ... [ 33%] +networkx\algorithms\tests\test_link_prediction.py ......................................................................... [ 35%] +networkx\algorithms\tests\test_lowest_common_ancestors.py ......................... [ 35%] +networkx\algorithms\tests\test_matching.py ............................................. [ 36%] +networkx\algorithms\tests\test_max_weight_clique.py ..... [ 36%] +networkx\algorithms\tests\test_mis.py ........ [ 36%] +networkx\algorithms\tests\test_moral.py . [ 36%] +networkx\algorithms\tests\test_node_classification.py ............... [ 37%] +networkx\algorithms\tests\test_node_classification_deprecations.py .... [ 37%] +networkx\algorithms\tests\test_non_randomness.py ...... [ 37%] +networkx\algorithms\tests\test_planar_drawing.py ............ [ 37%] +networkx\algorithms\tests\test_planarity.py .............................. [ 38%] +networkx\algorithms\tests\test_reciprocity.py ..... [ 38%] +networkx\algorithms\tests\test_regular.py ............. [ 38%] +networkx\algorithms\tests\test_richclub.py ........ [ 38%] +networkx\algorithms\tests\test_similarity.py ............................................ [ 39%] +networkx\algorithms\tests\test_simple_paths.py ......................................................................... [ 41%] +networkx\algorithms\tests\test_smallworld.py .... [ 41%] +networkx\algorithms\tests\test_smetric.py .. [ 41%] +networkx\algorithms\tests\test_sparsifiers.py ....... [ 41%] +networkx\algorithms\tests\test_structuralholes.py ............ [ 41%] +networkx\algorithms\tests\test_summarization.py ................. [ 42%] +networkx\algorithms\tests\test_swap.py ............. [ 42%] +networkx\algorithms\tests\test_threshold.py .................. [ 42%] +networkx\algorithms\tests\test_tournament.py ..................... [ 43%] +networkx\algorithms\tests\test_triads.py ........ [ 43%] +networkx\algorithms\tests\test_vitality.py ...... [ 43%] +networkx\algorithms\tests\test_voronoi.py .......... [ 43%] +networkx\algorithms\tests\test_wiener.py .... [ 43%] +networkx\algorithms\traversal\tests\test_beamsearch.py .. [ 43%] +networkx\algorithms\traversal\tests\test_bfs.py .............. [ 44%] +networkx\algorithms\traversal\tests\test_dfs.py ................. [ 44%] +networkx\algorithms\traversal\tests\test_edgebfs.py ................ [ 44%] +networkx\algorithms\traversal\tests\test_edgedfs.py ............... [ 45%] +networkx\algorithms\tree\tests\test_branchings.py ........................... [ 45%] +networkx\algorithms\tree\tests\test_coding.py .............. [ 45%] +networkx\algorithms\tree\tests\test_decomposition.py ..... [ 46%] +networkx\algorithms\tree\tests\test_mst.py .............................................. [ 46%] +networkx\algorithms\tree\tests\test_operations.py ... [ 47%] +networkx\algorithms\tree\tests\test_recognition.py ......................... [ 47%] +networkx\classes\tests\test_coreviews.py ......................................................... [ 48%] +networkx\classes\tests\test_digraph.py ................................................................................ [ 50%] +networkx\classes\tests\test_digraph_historical.py .......................................... [ 51%] +networkx\classes\tests\test_filters.py ........... [ 51%] +networkx\classes\tests\test_function.py .................................................................... [ 52%] +networkx\classes\tests\test_graph.py .............................................................. [ 54%] +networkx\classes\tests\test_graph_historical.py .................................. [ 54%] +networkx\classes\tests\test_graphviews.py ................................... [ 55%] +networkx\classes\tests\test_multidigraph.py ............................................................................................. [ 57%] +networkx\classes\tests\test_multigraph.py .............................................................................. [ 58%] +networkx\classes\tests\test_ordered.py ..... [ 59%] +networkx\classes\tests\test_reportviews.py ......................................................................................................................... [ 61%] +.................................................................................................................... [ 63%] +networkx\classes\tests\test_special.py ............................................................................................................................. [ 66%] +.................................................................................................................................................................... [ 69%] +.................................................................................................................................................................... [ 73%] +............................................................................................................................................................... [ 76%] +networkx\classes\tests\test_subgraphviews.py ................................ [ 77%] +networkx\drawing\tests\test_layout.py .......................... [ 77%] +networkx\drawing\tests\test_pylab.py ........................................................................................... [ 79%] +networkx\generators\tests\test_atlas.py ........ [ 79%] +networkx\generators\tests\test_classic.py .............................. [ 80%] +networkx\generators\tests\test_cographs.py . [ 80%] +networkx\generators\tests\test_community.py ................ [ 80%] +networkx\generators\tests\test_degree_seq.py ................... [ 80%] +networkx\generators\tests\test_directed.py ........ [ 81%] +networkx\generators\tests\test_duplication.py ....... [ 81%] +networkx\generators\tests\test_ego.py .. [ 81%] +networkx\generators\tests\test_expanders.py .... [ 81%] +networkx\generators\tests\test_geometric.py ....................... [ 81%] +networkx\generators\tests\test_harary_graph.py .. [ 81%] +networkx\generators\tests\test_internet_as_graphs.py ..... [ 81%] +networkx\generators\tests\test_intersection.py .... [ 82%] +networkx\generators\tests\test_interval_graph.py ........ [ 82%] +networkx\generators\tests\test_joint_degree_seq.py .... [ 82%] +networkx\generators\tests\test_lattice.py ...................... [ 82%] +networkx\generators\tests\test_line.py .............................. [ 83%] +networkx\generators\tests\test_mycielski.py ... [ 83%] +networkx\generators\tests\test_nonisomorphic_trees.py ..... [ 83%] +networkx\generators\tests\test_random_clustered.py .... [ 83%] +networkx\generators\tests\test_random_graphs.py ............................................................... [ 84%] +networkx\generators\tests\test_small.py ....................................... [ 85%] +networkx\generators\tests\test_spectral_graph_forge.py . [ 85%] +networkx\generators\tests\test_stochastic.py ...... [ 85%] +networkx\generators\tests\test_sudoku.py ...... [ 85%] +networkx\generators\tests\test_trees.py ....... [ 86%] +networkx\generators\tests\test_triads.py .. [ 86%] +networkx\linalg\tests\test_algebraic_connectivity.py ....................................................................................... [ 87%] +networkx\linalg\tests\test_attrmatrix.py ..... [ 88%] +networkx\linalg\tests\test_bethehessian.py . [ 88%] +networkx\linalg\tests\test_graphmatrix.py .... [ 88%] +networkx\linalg\tests\test_laplacian.py .... [ 88%] +networkx\linalg\tests\test_modularity.py ... [ 88%] +networkx\linalg\tests\test_spectrum.py ..... [ 88%] +networkx\readwrite\json_graph\tests\test_adjacency.py ...... [ 88%] +networkx\readwrite\json_graph\tests\test_cytoscape.py ........ [ 88%] +networkx\readwrite\json_graph\tests\test_jit.py ..... [ 88%] +networkx\readwrite\json_graph\tests\test_node_link.py ......... [ 88%] +networkx\readwrite\json_graph\tests\test_tree.py .... [ 89%] +networkx\readwrite\tests\test_adjlist.py .................. [ 89%] +networkx\readwrite\tests\test_edgelist.py .......................... [ 89%] +networkx\readwrite\tests\test_getattr_nxyaml_removal.py .... [ 89%] +networkx\readwrite\tests\test_gexf.py ..................... [ 90%] +networkx\readwrite\tests\test_gml.py ..................... [ 90%] +networkx\readwrite\tests\test_gpickle.py .. [ 90%] +networkx\readwrite\tests\test_graph6.py ............................... [ 91%] +networkx\readwrite\tests\test_graphml.py ..................sssssssssssssssssssssssssssssssssssssssssss [ 92%] +networkx\readwrite\tests\test_leda.py .. [ 92%] +networkx\readwrite\tests\test_p2g.py ... [ 92%] +networkx\readwrite\tests\test_pajek.py ........ [ 93%] +networkx\readwrite\tests\test_sparse6.py ................ [ 93%] +networkx\readwrite\tests\test_text.py ....... [ 93%] +networkx\testing\tests\test_utils.py ..................... [ 93%] +networkx\tests\test_all_random_functions.py s [ 93%] +networkx\tests\test_convert.py ............... [ 94%] +networkx\tests\test_convert_numpy.py ........................................................................... [ 95%] +networkx\tests\test_convert_pandas.py ...................... [ 96%] +networkx\tests\test_convert_scipy.py ..................... [ 96%] +networkx\tests\test_exceptions.py ....... [ 96%] +networkx\tests\test_import.py .. [ 96%] +networkx\tests\test_lazy_imports.py .... [ 96%] +networkx\tests\test_relabel.py ....................... [ 97%] +networkx\utils\tests\test__init.py . [ 97%] +networkx\utils\tests\test_contextmanager.py . [ 97%] +networkx\utils\tests\test_decorators.py ................................... [ 98%] +networkx\utils\tests\test_heaps.py .. [ 98%] +networkx\utils\tests\test_mapped_queue.py ........................................ [ 99%] +networkx\utils\tests\test_misc.py ...................................... [ 99%] +networkx\utils\tests\test_random_sequence.py .... [ 99%] +networkx\utils\tests\test_rcm.py .. [ 99%] +networkx\utils\tests\test_unionfind.py ..... [100%] + +============================================================================ warnings summary ============================================================================= +networkx\drawing\tests\test_pylab.py:419 + C:\Users\admin\Desktop\outreachy\networkx\networkx\drawing\tests\test_pylab.py:419: PytestUnknownMarkWarning: Unknown pytest.mark.mpl_image_compare - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html + @pytest.mark.mpl_image_compare + +networkx\utils\decorators.py:292 + C:\Users\admin\Desktop\outreachy\networkx\networkx\utils\decorators.py:292: DeprecationWarning: preserve_random_state is deprecated and will be removed in 3.0. + warnings.warn(msg, DeprecationWarning) + +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_ascent_fractional_solution +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_ascent_method_asymmetric +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent_asymmetric_3 +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent_fractional_asymmetric +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_asadpour_tsp + C:\Users\admin\Desktop\outreachy\networkx\networkx\algorithms\approximation\traveling_salesman.py:679: OptimizeWarning: A_eq does not appear to be of full row rank. To improve performance, check the problem formulation for redundant equality constraints. + program_result = optimize.linprog(c, A_eq=a_eq, b_eq=b_eq) + +networkx/classes/tests/test_ordered.py::TestOrderedFeatures::test_subgraph_order + C:\Users\admin\Desktop\outreachy\networkx\networkx\classes\tests\test_ordered.py:22: DeprecationWarning: OrderedDiGraph is deprecated and will be removed in version 3.0. + Use `DiGraph` instead, which guarantees order is preserved for + Python >= 3.7 + + cls.G = nx.OrderedDiGraph() + +networkx/linalg/tests/test_algebraic_connectivity.py::TestSpectralOrdering::test_cycle[lobpcg-False-expected_order0] + C:\Users\admin\Desktop\outreachy\networkx\networkx\linalg\algebraicconnectivity.py:301: UserWarning: Exited at iteration 10 with accuracies + [0.02743716] + not reaching the requested tolerance 1e-08. + sigma, X = sp.sparse.linalg.lobpcg( + +networkx/linalg/tests/test_algebraic_connectivity.py::TestSpectralOrdering::test_cycle[lobpcg-True-expected_order1] + C:\Users\admin\Desktop\outreachy\networkx\networkx\linalg\algebraicconnectivity.py:301: UserWarning: Exited at iteration 10 with accuracies + [0.00056623] + not reaching the requested tolerance 1e-08. + sigma, X = sp.sparse.linalg.lobpcg( + +-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html +======================================================== 4847 passed, 57 skipped, 11 warnings in 204.25s (0:03:24) ======================================================== diff --git a/2022-round-1/Astroakanksha24/nx_tutorial_script.py b/2022-round-1/Astroakanksha24/nx_tutorial_script.py new file mode 100644 index 0000000..84343d1 --- /dev/null +++ b/2022-round-1/Astroakanksha24/nx_tutorial_script.py @@ -0,0 +1,34 @@ +# Importing the libraries +import networkx as nx + + +# Creating DiGraph object +G = nx.DiGraph() + +# Adding nodes of type int +G.add_node(24) +G.add_node(38) + +# Adding nodes of type str +G.add_node("Amy") +G.add_node("Jake") +G.add_node("Rosa") +G.add_node("Gina") + +# Adding edges to nodes +G.add_edges_from([("Gina","Rosa"),("Gina","Amy"),("Gina","Jake"),("Jake","Amy")]) # Gina-->Rosa | Gina-->Amy | Gina-->Jake | Jake-->Amy +G.add_edges_from([("Gina",24),("Jake",38)]) # Gina-->24 | Jake-->38 +G.add_edge("Rosa",38) # Rosa-->38 +G.add_edge(24,(16,17)) # 24-->(16,17) +G.add_edge("Rosa",(16,17)) # Rosa-->(16,17) + +# Drawing the DiGraph +nx.draw(G, with_labels=True) + +# Printing the number of nodes and edges +print("Number of Nodes:", G.number_of_nodes()) +print("Number of Edges:", G.number_of_edges()) + +# Calculating the shortest path and printing it +shortest_path = nx.shortest_path(G) +print(shortest_path) \ No newline at end of file diff --git a/2022-round-1/Astroakanksha24/nx_version.txt b/2022-round-1/Astroakanksha24/nx_version.txt new file mode 100644 index 0000000..5588ae8 --- /dev/null +++ b/2022-round-1/Astroakanksha24/nx_version.txt @@ -0,0 +1 @@ +2.7.1 \ No newline at end of file diff --git a/2022-round-1/Beatrice1d/nx_version.txt b/2022-round-1/Beatrice1d/nx_version.txt new file mode 100644 index 0000000..5588ae8 --- /dev/null +++ b/2022-round-1/Beatrice1d/nx_version.txt @@ -0,0 +1 @@ +2.7.1 \ No newline at end of file diff --git a/2022-round-1/Lukong123/nx_tutorial_script.py b/2022-round-1/Lukong123/nx_tutorial_script.py new file mode 100644 index 0000000..0a595ce --- /dev/null +++ b/2022-round-1/Lukong123/nx_tutorial_script.py @@ -0,0 +1,35 @@ +#!/usr/bin/python3 + +import networkx as nx +import matplotlib.pyplot as plt + +# Create a NetworkX DiGraph graph object +DG = nx.DiGraph() + +# Adding nodes of multiple type + +# Adding nodes of type int (integer) +DG.add_nodes_from([1, 2, 3,]) + +# Adding nodes of type str (string) + +DG.add_nodes_from(['smile', 'code', 'Consistency']) + +# Adding nodes of type typle +DG.add_nodes_from([(5,6), (7, 8), (9, 10)]) + +# Adding multiple edges between nodes + +DG.add_edges_from([(1, 'smile'), (2, 3), (3, (5, 6)), +('code', (7,8)), ('consistency', (9, 10)), +('smile', 3),((7,8), 3), ('consitency', 'smile'), (1, (5,6)), +((9, 10), 1)]) + +# Calculating shortest path between all pairs of node + +path = dict(nx.all_pairs_shortest_path(DG)) +print(path) + +# plotting graph using networkx.draw + +nx.draw(DG) diff --git a/2022-round-1/ManasviGoyal/nx_version.txt b/2022-round-1/ManasviGoyal/nx_version.txt new file mode 100644 index 0000000..860487c --- /dev/null +++ b/2022-round-1/ManasviGoyal/nx_version.txt @@ -0,0 +1 @@ +2.7.1 diff --git a/2022-round-1/Saumay1/nx_version.txt b/2022-round-1/Saumay1/nx_version.txt new file mode 100644 index 0000000..860487c --- /dev/null +++ b/2022-round-1/Saumay1/nx_version.txt @@ -0,0 +1 @@ +2.7.1 diff --git a/2022-round-1/aliveevie/nx_dev_test_output.txt b/2022-round-1/aliveevie/nx_dev_test_output.txt new file mode 100644 index 0000000..adfd5ae --- /dev/null +++ b/2022-round-1/aliveevie/nx_dev_test_output.txt @@ -0,0 +1,312 @@ +================================================= test session starts ================================================== +platform linux -- Python 3.8.10, pytest-7.1.1, pluggy-1.0.0 +rootdir: /home/evie/networkx +plugins: cov-3.0.0 +collected 4891 items / 3 skipped + +networkx/algorithms/approximation/tests/test_approx_clust_coeff.py ...... [ 0%] +networkx/algorithms/approximation/tests/test_clique.py ........ [ 0%] +networkx/algorithms/approximation/tests/test_connectivity.py .................. [ 0%] +networkx/algorithms/approximation/tests/test_distance_measures.py ........ [ 0%] +networkx/algorithms/approximation/tests/test_dominating_set.py ... [ 0%] +networkx/algorithms/approximation/tests/test_kcomponents.py ................ [ 1%] +networkx/algorithms/approximation/tests/test_matching.py . [ 1%] +networkx/algorithms/approximation/tests/test_maxcut.py ..... [ 1%] +networkx/algorithms/approximation/tests/test_ramsey.py . [ 1%] +networkx/algorithms/approximation/tests/test_steinertree.py .... [ 1%] +networkx/algorithms/approximation/tests/test_traveling_salesman.py ....................................s......s. [ 2%] + [ 2%] +networkx/algorithms/approximation/tests/test_treewidth.py ............ [ 2%] +networkx/algorithms/approximation/tests/test_vertex_cover.py .... [ 2%] +networkx/algorithms/assortativity/tests/test_connectivity.py .......... [ 2%] +networkx/algorithms/assortativity/tests/test_correlation.py ................... [ 3%] +networkx/algorithms/assortativity/tests/test_mixing.py ................... [ 3%] +networkx/algorithms/assortativity/tests/test_neighbor_degree.py ...... [ 3%] +networkx/algorithms/assortativity/tests/test_pairs.py ........... [ 4%] +networkx/algorithms/bipartite/tests/test_basic.py ............... [ 4%] +networkx/algorithms/bipartite/tests/test_centrality.py ...... [ 4%] +networkx/algorithms/bipartite/tests/test_cluster.py ......... [ 4%] +networkx/algorithms/bipartite/tests/test_covering.py .... [ 4%] +networkx/algorithms/bipartite/tests/test_edgelist.py .............. [ 4%] +networkx/algorithms/bipartite/tests/test_generators.py .......... [ 5%] +networkx/algorithms/bipartite/tests/test_matching.py .................... [ 5%] +networkx/algorithms/bipartite/tests/test_matrix.py ........... [ 5%] +networkx/algorithms/bipartite/tests/test_project.py ................. [ 6%] +networkx/algorithms/bipartite/tests/test_redundancy.py ... [ 6%] +networkx/algorithms/bipartite/tests/test_spectral_bipartivity.py ... [ 6%] +networkx/algorithms/centrality/tests/test_betweenness_centrality.py ......................................... [ 7%] +networkx/algorithms/centrality/tests/test_betweenness_centrality_subset.py ................. [ 7%] +networkx/algorithms/centrality/tests/test_closeness_centrality.py ............. [ 7%] +networkx/algorithms/centrality/tests/test_current_flow_betweenness_centrality.py ................ [ 8%] +networkx/algorithms/centrality/tests/test_current_flow_betweenness_centrality_subset.py ......... [ 8%] +networkx/algorithms/centrality/tests/test_current_flow_closeness.py ... [ 8%] +networkx/algorithms/centrality/tests/test_degree_centrality.py ....... [ 8%] +networkx/algorithms/centrality/tests/test_dispersion.py ... [ 8%] +networkx/algorithms/centrality/tests/test_eigenvector_centrality.py ............ [ 8%] +networkx/algorithms/centrality/tests/test_group.py ........................ [ 9%] +networkx/algorithms/centrality/tests/test_harmonic_centrality.py ............. [ 9%] +networkx/algorithms/centrality/tests/test_katz_centrality.py .......................... [ 10%] +networkx/algorithms/centrality/tests/test_load_centrality.py ................. [ 10%] +networkx/algorithms/centrality/tests/test_percolation_centrality.py ... [ 10%] +networkx/algorithms/centrality/tests/test_reaching.py .............. [ 10%] +networkx/algorithms/centrality/tests/test_second_order_centrality.py ....... [ 10%] +networkx/algorithms/centrality/tests/test_subgraph.py ..... [ 10%] +networkx/algorithms/centrality/tests/test_trophic.py .......... [ 11%] +networkx/algorithms/centrality/tests/test_voterank.py ..... [ 11%] +networkx/algorithms/coloring/tests/test_coloring.py ................ [ 11%] +networkx/algorithms/community/tests/test_asyn_fluid.py ..... [ 11%] +networkx/algorithms/community/tests/test_centrality.py ..... [ 11%] +networkx/algorithms/community/tests/test_kclique.py ........ [ 12%] +networkx/algorithms/community/tests/test_kernighan_lin.py ........ [ 12%] +networkx/algorithms/community/tests/test_label_propagation.py ........... [ 12%] +networkx/algorithms/community/tests/test_louvain.py ........ [ 12%] +networkx/algorithms/community/tests/test_lukes.py .... [ 12%] +networkx/algorithms/community/tests/test_modularity_max.py ................. [ 12%] +networkx/algorithms/community/tests/test_quality.py ....... [ 13%] +networkx/algorithms/community/tests/test_utils.py .... [ 13%] +networkx/algorithms/components/tests/test_attracting.py .... [ 13%] +networkx/algorithms/components/tests/test_biconnected.py ............. [ 13%] +networkx/algorithms/components/tests/test_connected.py ........ [ 13%] +networkx/algorithms/components/tests/test_semiconnected.py ........ [ 13%] +networkx/algorithms/components/tests/test_strongly_connected.py .............. [ 14%] +networkx/algorithms/components/tests/test_weakly_connected.py ...... [ 14%] +networkx/algorithms/connectivity/tests/test_connectivity.py .................................. [ 14%] +networkx/algorithms/connectivity/tests/test_cuts.py ..................... [ 15%] +networkx/algorithms/connectivity/tests/test_disjoint_paths.py .................. [ 15%] +networkx/algorithms/connectivity/tests/test_edge_augmentation.py .................... [ 16%] +networkx/algorithms/connectivity/tests/test_edge_kcomponents.py ..................... [ 16%] +networkx/algorithms/connectivity/tests/test_kcomponents.py .sss...... [ 16%] +networkx/algorithms/connectivity/tests/test_kcutsets.py s........s..... [ 17%] +networkx/algorithms/connectivity/tests/test_stoer_wagner.py ..... [ 17%] +networkx/algorithms/flow/tests/test_gomory_hu.py ....s.... [ 17%] +networkx/algorithms/flow/tests/test_maxflow.py ........................... [ 17%] +networkx/algorithms/flow/tests/test_maxflow_large_graph.py ...s.. [ 18%] +networkx/algorithms/flow/tests/test_mincost.py ................... [ 18%] +networkx/algorithms/flow/tests/test_networksimplex.py ...................... [ 18%] +networkx/algorithms/isomorphism/tests/test_ismags.py .......... [ 19%] +networkx/algorithms/isomorphism/tests/test_isomorphism.py .... [ 19%] +networkx/algorithms/isomorphism/tests/test_isomorphvf2.py ............... [ 19%] +networkx/algorithms/isomorphism/tests/test_match_helpers.py .. [ 19%] +networkx/algorithms/isomorphism/tests/test_temporalisomorphvf2.py ............ [ 19%] +networkx/algorithms/isomorphism/tests/test_tree_isomorphism.py ..... [ 19%] +networkx/algorithms/isomorphism/tests/test_vf2userfunc.py ............................ [ 20%] +networkx/algorithms/link_analysis/tests/test_hits.py ........ [ 20%] +networkx/algorithms/link_analysis/tests/test_pagerank.py .................................................... [ 21%] +networkx/algorithms/minors/tests/test_contraction.py ............................... [ 22%] +networkx/algorithms/operators/tests/test_all.py .................. [ 22%] +networkx/algorithms/operators/tests/test_binary.py .................... [ 23%] +networkx/algorithms/operators/tests/test_product.py ........................... [ 23%] +networkx/algorithms/operators/tests/test_unary.py ... [ 23%] +networkx/algorithms/shortest_paths/tests/test_astar.py ............. [ 24%] +networkx/algorithms/shortest_paths/tests/test_dense.py ........ [ 24%] +networkx/algorithms/shortest_paths/tests/test_dense_numpy.py ....... [ 24%] +networkx/algorithms/shortest_paths/tests/test_generic.py ...................... [ 24%] +networkx/algorithms/shortest_paths/tests/test_unweighted.py ............ [ 25%] +networkx/algorithms/shortest_paths/tests/test_weighted.py ..................................................... [ 26%] +networkx/algorithms/tests/test_asteroidal.py . [ 26%] +networkx/algorithms/tests/test_boundary.py ............. [ 26%] +networkx/algorithms/tests/test_bridges.py ...... [ 26%] +networkx/algorithms/tests/test_chains.py .... [ 26%] +networkx/algorithms/tests/test_chordal.py .......... [ 26%] +networkx/algorithms/tests/test_clique.py .............. [ 27%] +networkx/algorithms/tests/test_cluster.py ........................................ [ 27%] +networkx/algorithms/tests/test_communicability.py .. [ 27%] +networkx/algorithms/tests/test_core.py ............. [ 28%] +networkx/algorithms/tests/test_covering.py ........ [ 28%] +networkx/algorithms/tests/test_cuts.py ................. [ 28%] +networkx/algorithms/tests/test_cycles.py .................................. [ 29%] +networkx/algorithms/tests/test_d_separation.py ............. [ 29%] +networkx/algorithms/tests/test_dag.py ..................................................... [ 30%] +networkx/algorithms/tests/test_distance_measures.py ................................. [ 31%] +networkx/algorithms/tests/test_distance_regular.py ....... [ 31%] +networkx/algorithms/tests/test_dominance.py ...................... [ 32%] +networkx/algorithms/tests/test_dominating.py ..... [ 32%] +networkx/algorithms/tests/test_efficiency.py ....... [ 32%] +networkx/algorithms/tests/test_euler.py .............................. [ 32%] +networkx/algorithms/tests/test_graph_hashing.py ........................ [ 33%] +networkx/algorithms/tests/test_graphical.py ............. [ 33%] +networkx/algorithms/tests/test_hierarchy.py ..... [ 33%] +networkx/algorithms/tests/test_hybrid.py .. [ 33%] +networkx/algorithms/tests/test_isolate.py ... [ 33%] +networkx/algorithms/tests/test_link_prediction.py .............................................................. [ 35%] +........... [ 35%] +networkx/algorithms/tests/test_lowest_common_ancestors.py ......................... [ 35%] +networkx/algorithms/tests/test_matching.py ............................................ [ 36%] +networkx/algorithms/tests/test_max_weight_clique.py ..... [ 36%] +networkx/algorithms/tests/test_mis.py ........ [ 37%] +networkx/algorithms/tests/test_moral.py . [ 37%] +networkx/algorithms/tests/test_node_classification.py ............... [ 37%] +networkx/algorithms/tests/test_node_classification_deprecations.py .... [ 37%] +networkx/algorithms/tests/test_non_randomness.py ...... [ 37%] +networkx/algorithms/tests/test_planar_drawing.py ............ [ 37%] +networkx/algorithms/tests/test_planarity.py .............................. [ 38%] +networkx/algorithms/tests/test_polynomials.py ........ [ 38%] +networkx/algorithms/tests/test_reciprocity.py ..... [ 38%] +networkx/algorithms/tests/test_regular.py ............. [ 38%] +networkx/algorithms/tests/test_richclub.py ........ [ 39%] +networkx/algorithms/tests/test_similarity.py ............................................ [ 39%] +networkx/algorithms/tests/test_simple_paths.py ................................................................. [ 41%] +........ [ 41%] +networkx/algorithms/tests/test_smallworld.py .... [ 41%] +networkx/algorithms/tests/test_smetric.py .. [ 41%] +networkx/algorithms/tests/test_sparsifiers.py ....... [ 41%] +networkx/algorithms/tests/test_structuralholes.py ............ [ 41%] +networkx/algorithms/tests/test_summarization.py ................. [ 42%] +networkx/algorithms/tests/test_swap.py ............. [ 42%] +networkx/algorithms/tests/test_threshold.py .................. [ 42%] +networkx/algorithms/tests/test_tournament.py ..................... [ 43%] +networkx/algorithms/tests/test_triads.py ........ [ 43%] +networkx/algorithms/tests/test_vitality.py ...... [ 43%] +networkx/algorithms/tests/test_voronoi.py .......... [ 43%] +networkx/algorithms/tests/test_wiener.py .... [ 43%] +networkx/algorithms/traversal/tests/test_beamsearch.py .. [ 44%] +networkx/algorithms/traversal/tests/test_bfs.py .............. [ 44%] +networkx/algorithms/traversal/tests/test_dfs.py ................. [ 44%] +networkx/algorithms/traversal/tests/test_edgebfs.py ................ [ 44%] +networkx/algorithms/traversal/tests/test_edgedfs.py ............... [ 45%] +networkx/algorithms/tree/tests/test_branchings.py ........................... [ 45%] +networkx/algorithms/tree/tests/test_coding.py .............. [ 46%] +networkx/algorithms/tree/tests/test_decomposition.py ..... [ 46%] +networkx/algorithms/tree/tests/test_mst.py .............................................. [ 47%] +networkx/algorithms/tree/tests/test_operations.py ... [ 47%] +networkx/algorithms/tree/tests/test_recognition.py ......................... [ 47%] +networkx/classes/tests/test_coreviews.py ......................................................... [ 48%] +networkx/classes/tests/test_digraph.py ......................................................................... [ 50%] +....... [ 50%] +networkx/classes/tests/test_digraph_historical.py .......................................... [ 51%] +networkx/classes/tests/test_filters.py ........... [ 51%] +networkx/classes/tests/test_function.py .................................................................... [ 53%] +networkx/classes/tests/test_graph.py .............................................................. [ 54%] +networkx/classes/tests/test_graph_historical.py .................................. [ 54%] +networkx/classes/tests/test_graphviews.py ................................... [ 55%] +networkx/classes/tests/test_multidigraph.py .................................................................... [ 57%] +......................... [ 57%] +networkx/classes/tests/test_multigraph.py ...................................................................... [ 59%] +........ [ 59%] +networkx/classes/tests/test_ordered.py ..... [ 59%] +networkx/classes/tests/test_reportviews.py ..................................................................... [ 60%] +................................................................................................................ [ 62%] +........................................................ [ 64%] +networkx/classes/tests/test_special.py ......................................................................... [ 65%] +................................................................................................................ [ 67%] +................................................................................................................ [ 70%] +................................................................................................................ [ 72%] +................................................................................................................ [ 74%] +........................................................................................... [ 76%] +networkx/classes/tests/test_subgraphviews.py ................................ [ 77%] +networkx/drawing/tests/test_layout.py .......................... [ 77%] +networkx/drawing/tests/test_pylab.py ........................................................................... [ 79%] +................ [ 79%] +networkx/generators/tests/test_atlas.py ........ [ 79%] +networkx/generators/tests/test_classic.py .............................. [ 80%] +networkx/generators/tests/test_cographs.py . [ 80%] +networkx/generators/tests/test_community.py ................ [ 80%] +networkx/generators/tests/test_degree_seq.py ................... [ 81%] +networkx/generators/tests/test_directed.py ........ [ 81%] +networkx/generators/tests/test_duplication.py ....... [ 81%] +networkx/generators/tests/test_ego.py .. [ 81%] +networkx/generators/tests/test_expanders.py .... [ 81%] +networkx/generators/tests/test_geometric.py ....................... [ 82%] +networkx/generators/tests/test_harary_graph.py .. [ 82%] +networkx/generators/tests/test_internet_as_graphs.py ..... [ 82%] +networkx/generators/tests/test_intersection.py .... [ 82%] +networkx/generators/tests/test_interval_graph.py ........ [ 82%] +networkx/generators/tests/test_joint_degree_seq.py .... [ 82%] +networkx/generators/tests/test_lattice.py ...................... [ 83%] +networkx/generators/tests/test_line.py .............................. [ 83%] +networkx/generators/tests/test_mycielski.py ... [ 83%] +networkx/generators/tests/test_nonisomorphic_trees.py ..... [ 83%] +networkx/generators/tests/test_random_clustered.py .... [ 83%] +networkx/generators/tests/test_random_graphs.py ............................................................... [ 85%] +networkx/generators/tests/test_small.py ....................................... [ 85%] +networkx/generators/tests/test_spectral_graph_forge.py . [ 85%] +networkx/generators/tests/test_stochastic.py ...... [ 86%] +networkx/generators/tests/test_sudoku.py ...... [ 86%] +networkx/generators/tests/test_trees.py ....... [ 86%] +networkx/generators/tests/test_triads.py .. [ 86%] +networkx/linalg/tests/test_algebraic_connectivity.py ........................................................... [ 87%] +............................ [ 88%] +networkx/linalg/tests/test_attrmatrix.py ..... [ 88%] +networkx/linalg/tests/test_bethehessian.py . [ 88%] +networkx/linalg/tests/test_graphmatrix.py .... [ 88%] +networkx/linalg/tests/test_laplacian.py .... [ 88%] +networkx/linalg/tests/test_modularity.py ... [ 88%] +networkx/linalg/tests/test_spectrum.py ..... [ 88%] +networkx/readwrite/json_graph/tests/test_adjacency.py ...... [ 88%] +networkx/readwrite/json_graph/tests/test_cytoscape.py ........ [ 88%] +networkx/readwrite/json_graph/tests/test_jit.py ..... [ 89%] +networkx/readwrite/json_graph/tests/test_node_link.py ......... [ 89%] +networkx/readwrite/json_graph/tests/test_tree.py .... [ 89%] +networkx/readwrite/tests/test_adjlist.py .................. [ 89%] +networkx/readwrite/tests/test_edgelist.py .......................... [ 90%] +networkx/readwrite/tests/test_getattr_nxyaml_removal.py .... [ 90%] +networkx/readwrite/tests/test_gexf.py ..................... [ 90%] +networkx/readwrite/tests/test_gml.py ..................... [ 91%] +networkx/readwrite/tests/test_gpickle.py .. [ 91%] +networkx/readwrite/tests/test_graph6.py ............... [ 91%] +networkx/readwrite/tests/test_graphml.py ..................sssssssssssssssssssssssssssssssssssssssssss [ 92%] +networkx/readwrite/tests/test_leda.py .. [ 92%] +networkx/readwrite/tests/test_p2g.py ... [ 92%] +networkx/readwrite/tests/test_pajek.py ........ [ 93%] +networkx/readwrite/tests/test_sparse6.py ................ [ 93%] +networkx/readwrite/tests/test_text.py ....... [ 93%] +networkx/testing/tests/test_utils.py ..................... [ 93%] +networkx/tests/test_all_random_functions.py s [ 93%] +networkx/tests/test_convert.py ............... [ 94%] +networkx/tests/test_convert_numpy.py ........................................................................... [ 95%] + [ 95%] +networkx/tests/test_convert_pandas.py ...................... [ 96%] +networkx/tests/test_convert_scipy.py ..................... [ 96%] +networkx/tests/test_exceptions.py ....... [ 96%] +networkx/tests/test_import.py .. [ 96%] +networkx/tests/test_lazy_imports.py .... [ 96%] +networkx/tests/test_relabel.py ....................... [ 97%] +networkx/utils/tests/test__init.py . [ 97%] +networkx/utils/tests/test_contextmanager.py . [ 97%] +networkx/utils/tests/test_decorators.py ................................... [ 98%] +networkx/utils/tests/test_heaps.py .. [ 98%] +networkx/utils/tests/test_mapped_queue.py ........................................ [ 98%] +networkx/utils/tests/test_misc.py ...................................... [ 99%] +networkx/utils/tests/test_random_sequence.py .... [ 99%] +networkx/utils/tests/test_rcm.py .. [ 99%] +networkx/utils/tests/test_unionfind.py ..... [100%] + +=================================================== warnings summary =================================================== +networkx/drawing/tests/test_pylab.py:419 + /home/evie/networkx/networkx/drawing/tests/test_pylab.py:419: PytestUnknownMarkWarning: Unknown pytest.mark.mpl_image_compare - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html + @pytest.mark.mpl_image_compare + +networkx/utils/decorators.py:292 + /home/evie/networkx/networkx/utils/decorators.py:292: DeprecationWarning: preserve_random_state is deprecated and will be removed in 3.0. + warnings.warn(msg, DeprecationWarning) + +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_ascent_fractional_solution +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_ascent_method_asymmetric +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent_asymmetric_3 +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent_fractional_asymmetric +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_asadpour_tsp + /home/evie/networkx/networkx/algorithms/approximation/traveling_salesman.py:679: OptimizeWarning: A_eq does not appear to be of full row rank. To improve performance, check the problem formulation for redundant equality constraints. + program_result = optimize.linprog(c, A_eq=a_eq, b_eq=b_eq) + +networkx/classes/tests/test_ordered.py::TestOrderedFeatures::test_subgraph_order + /home/evie/networkx/networkx/classes/tests/test_ordered.py:22: DeprecationWarning: OrderedDiGraph is deprecated and will be removed in version 3.0. + Use `DiGraph` instead, which guarantees order is preserved for + Python >= 3.7 + + cls.G = nx.OrderedDiGraph() + +networkx/linalg/tests/test_algebraic_connectivity.py::TestSpectralOrdering::test_cycle[lobpcg-False-expected_order0] + /home/evie/networkx/networkx/linalg/algebraicconnectivity.py:301: UserWarning: Exited at iteration 10 with accuracies + [0.02743716] + not reaching the requested tolerance 1e-08. + sigma, X = sp.sparse.linalg.lobpcg( + +networkx/linalg/tests/test_algebraic_connectivity.py::TestSpectralOrdering::test_cycle[lobpcg-True-expected_order1] + /home/evie/networkx/networkx/linalg/algebraicconnectivity.py:301: UserWarning: Exited at iteration 10 with accuracies + [0.00056623] + not reaching the requested tolerance 1e-08. + sigma, X = sp.sparse.linalg.lobpcg( + +-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html +============================== 4838 passed, 56 skipped, 11 warnings in 349.48s (0:05:49) =============================== \ No newline at end of file diff --git a/2022-round-1/aliveevie/nx_notebook.ipynb b/2022-round-1/aliveevie/nx_notebook.ipynb new file mode 100644 index 0000000..696c4e8 --- /dev/null +++ b/2022-round-1/aliveevie/nx_notebook.ipynb @@ -0,0 +1,298 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "bc920c78", + "metadata": {}, + "outputs": [], + "source": [ + "# import the required libraries\n", + "import networkx as nx\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "e91f80bb", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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BlJTU3n44YcZN24c3bp149KlS/R/9Cks97+AVFH7xnwHhYzvp3T9f5vnKCLyv0QUPhGROwy9Xi8M9bWJ4cWLF+2G+vr4+BATE8MPP/xAeXk5Y8eOJdV/IEczqqrNSGtJzfFMIiJ3O6LwiYj8A6isrCQuLs5ODDMyMggPDycoKIiCcj0JLSYgkSnq/BoquZTDs/vekUONRUQaElH4RET+oZSUlHDixAliYmLYmlRFukvbWuX2rkYtlzJrQAue6dWsAVcpInLnUXsHXRERkTsCFxcX7r//fu6//34yv48j/eSNh/XeDjqThcSssgZanYjInYto0yAichdQqjM10HGMDXIcEZE7GVH4RETuApzVDbN546yue45QROSfgih8IiJ3Aa18nVHJ6/fnrJZLadVItC0TufsRhU9E5C5gTKebG1zfDlZgTMf6H0dE5E5HFD4RkbsATycVvVt41aWFD6ju47u/pZfYyiByTyAKn4jIXcK0PiGo5XUbmquWy3iuT0gDr0hE5M5EFD4RkbuEcH9X5g5thYOidn/W1V6drUS7MpF7BrGPT0TkLsJmND3v90R0JjM3s6eQSKojvblDW4kG1SL3FKJzi4jIXcjpjGK+2HeRvefzkFDdnG5DLZdipTqn91yfEDHSE7nnEIVPROQupqBcz+YTGSRmlVGqM+KsVtCqkZYxHf3EQhaRexZR+ERERERE7inE4hYRERERkXsKUfhERERERO4pROETEREREbmnEIVPREREROSeQhQ+EREREZF7ClH4RERERETuKUThExERERG5pxCFT0RERETknkIUPhERERGRewpR+ERERERE7ilE4RMRERERuacQhU9ERERE5J5CFD4RERERkXsKUfhERERERO4pROETEREREbmnEIVPREREROSeQhQ+EREREZF7ClH4RERERETuKUThExERERG5pxCFT0RERETknkIUPhERERGRe4r/A7CQ3Cq1qx1rAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Generate the graph with n=100, and p=0.3\n", + "G = nx.erdos_renyi_graph(n=100, p=0.3, seed=None, directed=False)\n", + "nx.draw(G)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "d40b3577", + "metadata": {}, + "outputs": [], + "source": [ + "# calculate the degree of centrality\n", + "HG = nx.degree_centrality(G)\n", + "values = [] #in same order as traversing keys\n", + "keys = [] #also needed to preserve order\n", + "# use for loop to pull out the HG keys and values\n", + "for key in HG.keys():\n", + " keys.append(key)\n", + " values.append(HG[key])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "2d26ff50", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[0.26262626262626265,\n", + " 0.36363636363636365,\n", + " 0.26262626262626265,\n", + " 0.30303030303030304,\n", + " 0.29292929292929293]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "values[0:5]" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "b1de7d93", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# plot the Histogram\n", + "plt.hist(values, bins=10)\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "e39b9b5d", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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s2cPHTp04K677uLEiRNMmjQJvV5PixYtaNSoEZC7i/+1NzVJ9NRqtdy+TBRFLBYLP//8M2kn9ha7n6Z354+0qVWB1157jfj4eLp06UJMTEyuzEbIXocLDw+X983capDP276ZTCZ0uuu3WVDEey0qlUoWPcjusuL1eqlTpw69evXKt02YLxoBmKq14LnpM3n88cflaey4uKs9ZBMTE+W134CAANatW0eXLtnWRO+++y4hISH4+/uTlpZGWloa9evXp2LFirz33nu88MILjB07lu+++y7PjiwXLlygQ4cONGjQgMcee4x27dqRlJREv3792LBhA6dPn6ZRo0Y4nU727duniN4tjBLxKdC/f3+qVq3KPffcw/79+zl8+DC1atWiZs2aHD16lIEDB9K2bVuGDRvGjh07ePPNN+natSsffPABTw0aRJ/hjxPU9n40lRrhcrmuWyNSqVSoEg+T/OdCPJdPsm/fPhYuXMiMGTMQRRGbzZbtMjFuHBqNhhMnTnD69Gm6du2K2+0mNjYWnU5HfHw89erVY/jw4Wzbto3q1avz559/ykkPUhZnZGQkJpOJkydP5jpOKdlEqgGD7BozrVaLIAjy1GFRkj0qX9mJJe0I32w6KCexLFmyRH5eQEAALVq0oE6dOuzbt4/t27dnJ6/4qFuM2hSIymWV39tqteZyM5DeS84UNfih8bjQ21M48+d3101hajQaVCpVnmuRhw8fzre4HK66PpQkgV8URQ7ZAmjZrBkajYYNGzbQpk0buT4yMTERp9MpC9fatWt58803OXPmjDxomzx5Mi+88AJZWVl8/fXXjBw5kmnTpjFhwgSef/55WrRocd37Hj16lLvvvptHHnmE4OBgBg4cCCAXn7/00kt8+eWXfPLJJ9x7770lOEKF8oAifAoANGjQgO3bt3PfffcxfPhwdu7cSdOmTalTpw6bN2+mY8eOVKpUif/973+88sorzJgxg9WrV/Piiy/iTDzOhe9f5pMvFvH0B9+jC4/DPzQCwWXDlXSSgc0rMXvhDDQaDWPGjKF69ep8//338nRa5cqVSUlJISoqiqCgIE6ePMmMGTPo1q0bw4YNo2PHjmg0GgYNGoTX66VBgwZcuHCBc+fOodVmO85LCTonT57k0qVLCIJAr169WLduHXa7HZVKRYUKFTh9+vR1xy6KohwRWvaswJX0D/6t7sP0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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Generate the graph with n=100, and p=0.6\n", + "G_2 = nx.erdos_renyi_graph(n=100, p=0.6, seed=None, directed=False)\n", + "nx.draw(G_2)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "c93ef753", + "metadata": {}, + "outputs": [], + "source": [ + "HG2 = nx.degree_centrality(G_2)\n", + "values2 = []\n", + "keys2 = []\n", + "for key in HG2.keys():\n", + " keys2.append(key)\n", + " values2.append(HG2[key])" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "0bb4df67", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[0.6363636363636365, 0.7272727272727273, 0.5555555555555556]" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "values2[0:3]" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "e5fb7564", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.hist(values2, bins=10)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "aea0fe9b", + "metadata": {}, + "source": [ + "It was shown that the degree of centrality increase as the probability edge increase, the values changed due change in the probabilty edge." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "1b301cc5", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# The barabasi albert graph\n", + "BG = nx.barabasi_albert_graph(n=100, m=3, seed=None, initial_graph=None)\n", + "nx.draw(BG)" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "993a7a73", + "metadata": {}, + "outputs": [], + "source": [ + "# compute the degree of centrality\n", + "DC = nx.degree_centrality(BG)\n", + "values3 = []\n", + "keys3 = []\n", + "for key in DC.keys():\n", + " keys3.append(key)\n", + " values3.append(DC[key])" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "1a5dd3d1", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "#plot the graph\n", + "plt.hist(values3, bins=10)\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "id": "a01f3792", + "metadata": {}, + "source": [ + "This shows that the barabasi albert graph has a low degree of centrality as compared to erdos renyi graph. There no strong connection between the edges and the node, as it can depict from the chart, the degree of centrality is approaching zero " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1539e0d7", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.8.10" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/2022-round-1/aliveevie/nx_pull_requests.txt b/2022-round-1/aliveevie/nx_pull_requests.txt new file mode 100644 index 0000000..5baab73 --- /dev/null +++ b/2022-round-1/aliveevie/nx_pull_requests.txt @@ -0,0 +1 @@ + https://github.com/aliveevie/networkx/pull/new/structured_labelled_array-4217 \ No newline at end of file diff --git a/2022-round-1/aliveevie/nx_tutorial_script.py b/2022-round-1/aliveevie/nx_tutorial_script.py new file mode 100644 index 0000000..bfe3e86 --- /dev/null +++ b/2022-round-1/aliveevie/nx_tutorial_script.py @@ -0,0 +1,12 @@ +import networkx as nx +TG = nx.DiGraph() +TG.add_nodes_from([ + (4, {"color": "red"}), + (5, {"color": "green"}), + (6, {"color": "blue"}), + (7, {"internship":"outreachy"}), +]) +TG.add_edges_from([(4, 5), (6, 7)]) +sp = dict(nx.all_pairs_shortest_path(TG)) +nx.draw(TG) +sp \ No newline at end of file diff --git a/2022-round-1/aliveevie/nx_version.txt b/2022-round-1/aliveevie/nx_version.txt new file mode 100644 index 0000000..5588ae8 --- /dev/null +++ b/2022-round-1/aliveevie/nx_version.txt @@ -0,0 +1 @@ +2.7.1 \ No newline at end of file diff --git a/2022-round-1/anareyegen/nx_dev_test_output.txt b/2022-round-1/anareyegen/nx_dev_test_output.txt new file mode 100644 index 0000000..59ccfc6 --- /dev/null +++ b/2022-round-1/anareyegen/nx_dev_test_output.txt @@ -0,0 +1,381 @@ +============================= test session starts ============================== +platform darwin -- Python 3.10.4, pytest-7.1.1, pluggy-1.0.0 +rootdir: /Users/anaryegen/Desktop/Programming/networkx +plugins: cov-3.0.0 +collected 4986 items / 4 skipped + +networkx/algorithms/approximation/tests/test_approx_clust_coeff.py ..... [ 0%] +. [ 0%] +networkx/algorithms/approximation/tests/test_clique.py ........ [ 0%] +networkx/algorithms/approximation/tests/test_connectivity.py ........... [ 0%] +....... [ 0%] +networkx/algorithms/approximation/tests/test_distance_measures.py ...... [ 0%] +.. [ 0%] +networkx/algorithms/approximation/tests/test_dominating_set.py ... [ 0%] +networkx/algorithms/approximation/tests/test_kcomponents.py ............ [ 1%] +.... [ 1%] +networkx/algorithms/approximation/tests/test_matching.py . [ 1%] +networkx/algorithms/approximation/tests/test_maxcut.py ..... [ 1%] +networkx/algorithms/approximation/tests/test_ramsey.py . [ 1%] +networkx/algorithms/approximation/tests/test_steinertree.py .... [ 1%] +networkx/algorithms/approximation/tests/test_traveling_salesman.py ..... [ 1%] +...............................s......s. [ 2%] +networkx/algorithms/approximation/tests/test_treewidth.py ............ [ 2%] +networkx/algorithms/approximation/tests/test_vertex_cover.py .... [ 2%] +networkx/algorithms/assortativity/tests/test_connectivity.py .......... [ 2%] +networkx/algorithms/assortativity/tests/test_correlation.py ............ [ 3%] +....... [ 3%] +networkx/algorithms/assortativity/tests/test_mixing.py ................. [ 3%] +.. [ 3%] +networkx/algorithms/assortativity/tests/test_neighbor_degree.py ...... [ 3%] +networkx/algorithms/assortativity/tests/test_pairs.py ........... [ 3%] +networkx/algorithms/bipartite/tests/test_basic.py ............... [ 4%] +networkx/algorithms/bipartite/tests/test_centrality.py ...... [ 4%] +networkx/algorithms/bipartite/tests/test_cluster.py ......... [ 4%] +networkx/algorithms/bipartite/tests/test_covering.py .... [ 4%] +networkx/algorithms/bipartite/tests/test_edgelist.py .............. [ 4%] +networkx/algorithms/bipartite/tests/test_generators.py .......... [ 5%] +networkx/algorithms/bipartite/tests/test_matching.py ................... [ 5%] +. [ 5%] +networkx/algorithms/bipartite/tests/test_matrix.py ........... [ 5%] +networkx/algorithms/bipartite/tests/test_project.py ................. [ 6%] +networkx/algorithms/bipartite/tests/test_redundancy.py ... [ 6%] +networkx/algorithms/bipartite/tests/test_spectral_bipartivity.py ... [ 6%] +networkx/algorithms/centrality/tests/test_betweenness_centrality.py .... [ 6%] +..................................... [ 6%] +networkx/algorithms/centrality/tests/test_betweenness_centrality_subset.py . [ 7%] +................ [ 7%] +networkx/algorithms/centrality/tests/test_closeness_centrality.py ...... [ 7%] +....... [ 7%] +networkx/algorithms/centrality/tests/test_current_flow_betweenness_centrality.py . [ 7%] +............... [ 7%] +networkx/algorithms/centrality/tests/test_current_flow_betweenness_centrality_subset.py . [ 7%] +........ [ 8%] +networkx/algorithms/centrality/tests/test_current_flow_closeness.py ... [ 8%] +networkx/algorithms/centrality/tests/test_degree_centrality.py ....... [ 8%] +networkx/algorithms/centrality/tests/test_dispersion.py ... [ 8%] +networkx/algorithms/centrality/tests/test_eigenvector_centrality.py .... [ 8%] +........ [ 8%] +networkx/algorithms/centrality/tests/test_group.py ..................... [ 9%] +... [ 9%] +networkx/algorithms/centrality/tests/test_harmonic_centrality.py ....... [ 9%] +...... [ 9%] +networkx/algorithms/centrality/tests/test_katz_centrality.py ........... [ 9%] +............... [ 9%] +networkx/algorithms/centrality/tests/test_load_centrality.py ........... [ 10%] +...... [ 10%] +networkx/algorithms/centrality/tests/test_percolation_centrality.py ... [ 10%] +networkx/algorithms/centrality/tests/test_reaching.py .............. [ 10%] +networkx/algorithms/centrality/tests/test_second_order_centrality.py ... [ 10%] +.... [ 10%] +networkx/algorithms/centrality/tests/test_subgraph.py ..... [ 10%] +networkx/algorithms/centrality/tests/test_trophic.py .......... [ 10%] +networkx/algorithms/centrality/tests/test_voterank.py ..... [ 11%] +networkx/algorithms/coloring/tests/test_coloring.py ................ [ 11%] +networkx/algorithms/community/tests/test_asyn_fluid.py ..... [ 11%] +networkx/algorithms/community/tests/test_centrality.py ..... [ 11%] +networkx/algorithms/community/tests/test_kclique.py ........ [ 11%] +networkx/algorithms/community/tests/test_kernighan_lin.py ........ [ 11%] +networkx/algorithms/community/tests/test_label_propagation.py .......... [ 12%] +. [ 12%] +networkx/algorithms/community/tests/test_louvain.py ........ [ 12%] +networkx/algorithms/community/tests/test_lukes.py .... [ 12%] +networkx/algorithms/community/tests/test_modularity_max.py ............. [ 12%] +.... [ 12%] +networkx/algorithms/community/tests/test_quality.py ....... [ 12%] +networkx/algorithms/community/tests/test_utils.py .... [ 12%] +networkx/algorithms/components/tests/test_attracting.py .... [ 13%] +networkx/algorithms/components/tests/test_biconnected.py ............. [ 13%] +networkx/algorithms/components/tests/test_connected.py ........ [ 13%] +networkx/algorithms/components/tests/test_semiconnected.py ........ [ 13%] +networkx/algorithms/components/tests/test_strongly_connected.py ........ [ 13%] +...... [ 13%] +networkx/algorithms/components/tests/test_weakly_connected.py ...... [ 14%] +networkx/algorithms/connectivity/tests/test_connectivity.py ............ [ 14%] +...................... [ 14%] +networkx/algorithms/connectivity/tests/test_cuts.py .................... [ 15%] +. [ 15%] +networkx/algorithms/connectivity/tests/test_disjoint_paths.py .......... [ 15%] +........ [ 15%] +networkx/algorithms/connectivity/tests/test_edge_augmentation.py ....... [ 15%] +............. [ 15%] +networkx/algorithms/connectivity/tests/test_edge_kcomponents.py ........ [ 16%] +............. [ 16%] +networkx/algorithms/connectivity/tests/test_kcomponents.py .sss...... [ 16%] +networkx/algorithms/connectivity/tests/test_kcutsets.py s........s..... [ 16%] +networkx/algorithms/connectivity/tests/test_stoer_wagner.py ..... [ 16%] +networkx/algorithms/flow/tests/test_gomory_hu.py ....s.... [ 17%] +networkx/algorithms/flow/tests/test_maxflow.py ......................... [ 17%] +.. [ 17%] +networkx/algorithms/flow/tests/test_maxflow_large_graph.py ...s.. [ 17%] +networkx/algorithms/flow/tests/test_mincost.py ................... [ 18%] +networkx/algorithms/flow/tests/test_networksimplex.py .................. [ 18%] +.... [ 18%] +networkx/algorithms/isomorphism/tests/test_ismags.py .......... [ 18%] +networkx/algorithms/isomorphism/tests/test_isomorphism.py .... [ 18%] +networkx/algorithms/isomorphism/tests/test_isomorphvf2.py .............. [ 19%] +. [ 19%] +networkx/algorithms/isomorphism/tests/test_match_helpers.py .. [ 19%] +networkx/algorithms/isomorphism/tests/test_temporalisomorphvf2.py ...... [ 19%] +...... [ 19%] +networkx/algorithms/isomorphism/tests/test_tree_isomorphism.py ..... [ 19%] +networkx/algorithms/isomorphism/tests/test_vf2userfunc.py .............. [ 19%] +.............. [ 20%] +networkx/algorithms/link_analysis/tests/test_hits.py ........ [ 20%] +networkx/algorithms/link_analysis/tests/test_pagerank.py ............... [ 20%] +..................................... [ 21%] +networkx/algorithms/minors/tests/test_contraction.py ................... [ 21%] +............ [ 21%] +networkx/algorithms/operators/tests/test_all.py .................. [ 22%] +networkx/algorithms/operators/tests/test_binary.py .................... [ 22%] +networkx/algorithms/operators/tests/test_product.py .................... [ 23%] +....... [ 23%] +networkx/algorithms/operators/tests/test_unary.py ... [ 23%] +networkx/algorithms/shortest_paths/tests/test_astar.py ............. [ 23%] +networkx/algorithms/shortest_paths/tests/test_dense.py ........ [ 23%] +networkx/algorithms/shortest_paths/tests/test_dense_numpy.py ....... [ 23%] +networkx/algorithms/shortest_paths/tests/test_generic.py ............... [ 24%] +....... [ 24%] +networkx/algorithms/shortest_paths/tests/test_unweighted.py ............ [ 24%] + [ 24%] +networkx/algorithms/shortest_paths/tests/test_weighted.py .............. [ 24%] +....................................... [ 25%] +networkx/algorithms/tests/test_asteroidal.py . [ 25%] +networkx/algorithms/tests/test_boundary.py ............. [ 25%] +networkx/algorithms/tests/test_bridges.py ...... [ 25%] +networkx/algorithms/tests/test_chains.py .... [ 26%] +networkx/algorithms/tests/test_chordal.py .......... [ 26%] +networkx/algorithms/tests/test_clique.py .............. [ 26%] +networkx/algorithms/tests/test_cluster.py .............................. [ 27%] +.......... [ 27%] +networkx/algorithms/tests/test_communicability.py .. [ 27%] +networkx/algorithms/tests/test_core.py ............. [ 27%] +networkx/algorithms/tests/test_covering.py ........ [ 27%] +networkx/algorithms/tests/test_cuts.py ................. [ 28%] +networkx/algorithms/tests/test_cycles.py ............................... [ 28%] +... [ 28%] +networkx/algorithms/tests/test_d_separation.py ............. [ 29%] +networkx/algorithms/tests/test_dag.py .................................. [ 29%] +................... [ 30%] +networkx/algorithms/tests/test_distance_measures.py .................... [ 30%] +............. [ 30%] +networkx/algorithms/tests/test_distance_regular.py ....... [ 30%] +networkx/algorithms/tests/test_dominance.py ...................... [ 31%] +networkx/algorithms/tests/test_dominating.py ..... [ 31%] +networkx/algorithms/tests/test_efficiency.py ....... [ 31%] +networkx/algorithms/tests/test_euler.py .............................. [ 32%] +networkx/algorithms/tests/test_graph_hashing.py ........................ [ 32%] + [ 32%] +networkx/algorithms/tests/test_graphical.py ............. [ 32%] +networkx/algorithms/tests/test_hierarchy.py ..... [ 33%] +networkx/algorithms/tests/test_hybrid.py .. [ 33%] +networkx/algorithms/tests/test_isolate.py ... [ 33%] +networkx/algorithms/tests/test_link_prediction.py ...................... [ 33%] +................................................... [ 34%] +networkx/algorithms/tests/test_lowest_common_ancestors.py .............. [ 34%] +........... [ 35%] +networkx/algorithms/tests/test_matching.py ............................. [ 35%] +................ [ 36%] +networkx/algorithms/tests/test_max_weight_clique.py ..... [ 36%] +networkx/algorithms/tests/test_mis.py ........ [ 36%] +networkx/algorithms/tests/test_moral.py . [ 36%] +networkx/algorithms/tests/test_node_classification.py ............... [ 36%] +networkx/algorithms/tests/test_node_classification_deprecations.py .... [ 36%] +networkx/algorithms/tests/test_non_randomness.py ...... [ 36%] +networkx/algorithms/tests/test_planar_drawing.py ............ [ 37%] +networkx/algorithms/tests/test_planarity.py ............................ [ 37%] +.. [ 37%] +networkx/algorithms/tests/test_reciprocity.py ..... [ 37%] +networkx/algorithms/tests/test_regular.py ............. [ 38%] +networkx/algorithms/tests/test_richclub.py ........ [ 38%] +networkx/algorithms/tests/test_similarity.py ........................... [ 38%] +................. [ 39%] +networkx/algorithms/tests/test_simple_paths.py ......................... [ 39%] +................................................ [ 40%] +networkx/algorithms/tests/test_smallworld.py .... [ 40%] +networkx/algorithms/tests/test_smetric.py .. [ 40%] +networkx/algorithms/tests/test_sparsifiers.py ....... [ 40%] +networkx/algorithms/tests/test_structuralholes.py ............ [ 41%] +networkx/algorithms/tests/test_summarization.py ................. [ 41%] +networkx/algorithms/tests/test_swap.py ............. [ 41%] +networkx/algorithms/tests/test_threshold.py .................. [ 42%] +networkx/algorithms/tests/test_tournament.py ..................... [ 42%] +networkx/algorithms/tests/test_triads.py ........ [ 42%] +networkx/algorithms/tests/test_vitality.py ...... [ 42%] +networkx/algorithms/tests/test_voronoi.py .......... [ 42%] +networkx/algorithms/tests/test_wiener.py .... [ 43%] +networkx/algorithms/traversal/tests/test_beamsearch.py .. [ 43%] +networkx/algorithms/traversal/tests/test_bfs.py .............. [ 43%] +networkx/algorithms/traversal/tests/test_dfs.py ................. [ 43%] +networkx/algorithms/traversal/tests/test_edgebfs.py ................ [ 43%] +networkx/algorithms/traversal/tests/test_edgedfs.py ............... [ 44%] +networkx/algorithms/tree/tests/test_branchings.py ...................... [ 44%] +..... [ 44%] +networkx/algorithms/tree/tests/test_coding.py .............. [ 45%] +networkx/algorithms/tree/tests/test_decomposition.py ..... [ 45%] +networkx/algorithms/tree/tests/test_mst.py ............................. [ 45%] +................. [ 46%] +networkx/algorithms/tree/tests/test_operations.py ... [ 46%] +networkx/algorithms/tree/tests/test_recognition.py ..................... [ 46%] +.... [ 46%] +networkx/classes/tests/test_coreviews.py ............................... [ 47%] +.......................... [ 47%] +networkx/classes/tests/test_digraph.py ................................. [ 48%] +............................................... [ 49%] +networkx/classes/tests/test_digraph_historical.py ...................... [ 49%] +.................... [ 50%] +networkx/classes/tests/test_filters.py ........... [ 50%] +networkx/classes/tests/test_function.py ................................ [ 51%] +.................................... [ 51%] +networkx/classes/tests/test_graph.py ................................... [ 52%] +........................... [ 53%] +networkx/classes/tests/test_graph_historical.py ........................ [ 53%] +.......... [ 53%] +networkx/classes/tests/test_graphviews.py .............................. [ 54%] +..... [ 54%] +networkx/classes/tests/test_multidigraph.py ............................ [ 55%] +........................................................................ [ 56%] +........................................................................ [ 57%] +....... [ 58%] +networkx/classes/tests/test_multigraph.py .............................. [ 58%] +................................................ [ 59%] +networkx/classes/tests/test_ordered.py ..... [ 59%] +networkx/classes/tests/test_reportviews.py ............................. [ 60%] +........................................................................ [ 61%] +........................................................................ [ 63%] +................................................................ [ 64%] +networkx/classes/tests/test_special.py ................................. [ 65%] +........................................................................ [ 66%] +........................................................................ [ 68%] +........................................................................ [ 69%] +........................................................................ [ 70%] +........................................................................ [ 72%] +........................................................................ [ 73%] +........................................................................ [ 75%] +........................................................................ [ 76%] +... [ 76%] +networkx/classes/tests/test_subgraphviews.py ........................... [ 77%] +..... [ 77%] +networkx/drawing/tests/test_layout.py .......................... [ 77%] +networkx/drawing/tests/test_pylab.py ................................... [ 78%] +........................................................ [ 79%] +networkx/generators/tests/test_atlas.py ........ [ 79%] +networkx/generators/tests/test_classic.py .............................. [ 80%] + [ 80%] +networkx/generators/tests/test_cographs.py . [ 80%] +networkx/generators/tests/test_community.py ................ [ 80%] +networkx/generators/tests/test_degree_seq.py ................... [ 81%] +networkx/generators/tests/test_directed.py ........ [ 81%] +networkx/generators/tests/test_duplication.py ....... [ 81%] +networkx/generators/tests/test_ego.py .. [ 81%] +networkx/generators/tests/test_expanders.py .... [ 81%] +networkx/generators/tests/test_geometric.py ....................... [ 82%] +networkx/generators/tests/test_harary_graph.py .. [ 82%] +networkx/generators/tests/test_internet_as_graphs.py ..... [ 82%] +networkx/generators/tests/test_intersection.py .... [ 82%] +networkx/generators/tests/test_interval_graph.py ........ [ 82%] +networkx/generators/tests/test_joint_degree_seq.py .... [ 82%] +networkx/generators/tests/test_lattice.py ...................... [ 83%] +networkx/generators/tests/test_line.py .............................. [ 83%] +networkx/generators/tests/test_mycielski.py ... [ 83%] +networkx/generators/tests/test_nonisomorphic_trees.py ..... [ 83%] +networkx/generators/tests/test_random_clustered.py .... [ 83%] +networkx/generators/tests/test_random_graphs.py ........................ [ 84%] +....................................... [ 85%] +networkx/generators/tests/test_small.py ................................ [ 85%] +....... [ 85%] +networkx/generators/tests/test_spectral_graph_forge.py . [ 85%] +networkx/generators/tests/test_stochastic.py ...... [ 86%] +networkx/generators/tests/test_sudoku.py ...... [ 86%] +networkx/generators/tests/test_trees.py ....... [ 86%] +networkx/generators/tests/test_triads.py .. [ 86%] +networkx/linalg/tests/test_algebraic_connectivity.py ................... [ 86%] +.................................................................... [ 88%] +networkx/linalg/tests/test_attrmatrix.py ..... [ 88%] +networkx/linalg/tests/test_bethehessian.py . [ 88%] +networkx/linalg/tests/test_graphmatrix.py .... [ 88%] +networkx/linalg/tests/test_laplacian.py .... [ 88%] +networkx/linalg/tests/test_modularity.py ... [ 88%] +networkx/linalg/tests/test_spectrum.py ..... [ 88%] +networkx/readwrite/json_graph/tests/test_adjacency.py ...... [ 88%] +networkx/readwrite/json_graph/tests/test_cytoscape.py ........ [ 88%] +networkx/readwrite/json_graph/tests/test_jit.py ..... [ 88%] +networkx/readwrite/json_graph/tests/test_node_link.py ......... [ 89%] +networkx/readwrite/json_graph/tests/test_tree.py .... [ 89%] +networkx/readwrite/tests/test_adjlist.py .................. [ 89%] +networkx/readwrite/tests/test_edgelist.py .......................... [ 90%] +networkx/readwrite/tests/test_getattr_nxyaml_removal.py .... [ 90%] +networkx/readwrite/tests/test_gexf.py ..................... [ 90%] +networkx/readwrite/tests/test_gml.py ..................... [ 90%] +networkx/readwrite/tests/test_gpickle.py .. [ 91%] +networkx/readwrite/tests/test_graph6.py ............................... [ 91%] +networkx/readwrite/tests/test_graphml.py ..................sssssssssssss [ 92%] +ssssssssssssssssssssssssssssss [ 92%] +networkx/readwrite/tests/test_leda.py .. [ 92%] +networkx/readwrite/tests/test_p2g.py ... [ 92%] +networkx/readwrite/tests/test_pajek.py ........ [ 93%] +networkx/readwrite/tests/test_sparse6.py ................ [ 93%] +networkx/readwrite/tests/test_text.py ....... [ 93%] +networkx/testing/tests/test_utils.py ..................... [ 94%] +networkx/tests/test_all_random_functions.py s [ 94%] +networkx/tests/test_convert.py ............... [ 94%] +networkx/tests/test_convert_numpy.py ................................... [ 95%] +........................................ [ 95%] +networkx/tests/test_convert_pandas.py ...................... [ 96%] +networkx/tests/test_convert_scipy.py ..................... [ 96%] +networkx/tests/test_exceptions.py ....... [ 96%] +networkx/tests/test_import.py .. [ 96%] +networkx/tests/test_lazy_imports.py .... [ 96%] +networkx/tests/test_relabel.py ....................... [ 97%] +networkx/utils/tests/test__init.py . [ 97%] +networkx/utils/tests/test_contextmanager.py . [ 97%] +networkx/utils/tests/test_decorators.py ................................ [ 98%] +... [ 98%] +networkx/utils/tests/test_heaps.py .. [ 98%] +networkx/utils/tests/test_mapped_queue.py .............................. [ 98%] +.......... [ 99%] +networkx/utils/tests/test_misc.py ...................................... [ 99%] + [ 99%] +networkx/utils/tests/test_random_sequence.py .... [ 99%] +networkx/utils/tests/test_rcm.py .. [ 99%] +networkx/utils/tests/test_unionfind.py ..... [100%] + +=============================== warnings summary =============================== +networkx/drawing/tests/test_pylab.py:419 + /Users/anaryegen/Desktop/Programming/networkx/networkx/drawing/tests/test_pylab.py:419: PytestUnknownMarkWarning: Unknown pytest.mark.mpl_image_compare - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html + @pytest.mark.mpl_image_compare + +networkx/utils/decorators.py:292 + /Users/anaryegen/Desktop/Programming/networkx/networkx/utils/decorators.py:292: DeprecationWarning: preserve_random_state is deprecated and will be removed in 3.0. + warnings.warn(msg, DeprecationWarning) + +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_ascent_fractional_solution +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_ascent_method_asymmetric +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent_asymmetric_3 +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent_fractional_asymmetric +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_asadpour_tsp + /Users/anaryegen/Desktop/Programming/networkx/networkx/algorithms/approximation/traveling_salesman.py:679: OptimizeWarning: A_eq does not appear to be of full row rank. To improve performance, check the problem formulation for redundant equality constraints. + program_result = optimize.linprog(c, A_eq=a_eq, b_eq=b_eq) + +networkx/classes/tests/test_ordered.py::TestOrderedFeatures::test_subgraph_order + /Users/anaryegen/Desktop/Programming/networkx/networkx/classes/tests/test_ordered.py:22: DeprecationWarning: OrderedDiGraph is deprecated and will be removed in version 3.0. + Use `DiGraph` instead, which guarantees order is preserved for + Python >= 3.7 + + cls.G = nx.OrderedDiGraph() + +networkx/linalg/tests/test_algebraic_connectivity.py::TestSpectralOrdering::test_cycle[lobpcg-False-expected_order0] + /Users/anaryegen/Desktop/Programming/networkx/networkx/linalg/algebraicconnectivity.py:301: UserWarning: Exited at iteration 10 with accuracies + [0.02743716] + not reaching the requested tolerance 1e-08. + sigma, X = sp.sparse.linalg.lobpcg( + +networkx/linalg/tests/test_algebraic_connectivity.py::TestSpectralOrdering::test_cycle[lobpcg-True-expected_order1] + /Users/anaryegen/Desktop/Programming/networkx/networkx/linalg/algebraicconnectivity.py:301: UserWarning: Exited at iteration 10 with accuracies + [0.00056623] + not reaching the requested tolerance 1e-08. + sigma, X = sp.sparse.linalg.lobpcg( + +-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html +=========== 4933 passed, 57 skipped, 11 warnings in 72.76s (0:01:12) =========== \ No newline at end of file diff --git a/2022-round-1/anareyegen/nx_tutorial_script.py b/2022-round-1/anareyegen/nx_tutorial_script.py new file mode 100644 index 0000000..bda1025 --- /dev/null +++ b/2022-round-1/anareyegen/nx_tutorial_script.py @@ -0,0 +1,39 @@ +import networkx as nx + +DG = nx.DiGraph() + +# Adding nodes +DG.add_node("a") +DG.add_node("t") +DG.add_node("w") +DG.add_node("f") +DG.add_node("o") +DG.add_node("q") +DG.add_node("e") + + +# Adding edges to nodes +DG.add_edges_from([("a","t"),("a","f"),("t","o"),("w","o"), ("f","t"), ("q","e")]) +DG.add_edges_from([("a",4),("f",8), ("t", 2), ("w", 5), ("f", 7), ("q", 1)]) +DG.add_edge("o", 10) +DG.add_edge("w",(1,7)) + +# Drawing the DiGraph +nx.draw(DG, with_labels=True) + +# Find and print the shortest path +shortest_path = nx.shortest_path(DG) +print(shortest_path) +print(list(DG.successors('a'))) + +# Output: +# print(shortest_path) {'a': {'a': ['a'], 't': ['a', 't'], 'f': ['a', 'f'], 4: ['a', 4], +# 'o': ['a', 't', 'o'], 2: ['a', 't', 2], 8: ['a', 'f', 8], 7: ['a', 'f', 7], +# 10: ['a', 't', 'o', 10]}, 't': {'t': ['t'], 'o': ['t', 'o'], 2: ['t', 2], 10: ['t', 'o', 10]}, +# 'w': {'w': ['w'], 'o': ['w', 'o'], 5: ['w', 5], (1, 7): ['w', (1, 7)], 10: ['w', 'o', 10]}, +# 'f': {'f': ['f'], 't': ['f', 't'], 8: ['f', 8], 7: ['f', 7], 'o': ['f', 't', 'o'], +# 2: ['f', 't', 2], 10: ['f', 't', 'o', 10]}, 'o': {'o': ['o'], 10: ['o', 10]}, +# 'q': {'q': ['q'], 'e': ['q', 'e'], 1: ['q', 1]}, 'e': {'e': ['e']}, 4: {4: [4]}, +# 8: {8: [8]}, 2: {2: [2]}, 5: {5: [5]}, 7: {7: [7]}, 1: {1: [1]}, 10: {10: [10]}, +# (1, 7): {(1, 7): [(1, 7)]}} +# print(list(DG.successors('a'))): ['t', 'f', 4] \ No newline at end of file diff --git a/2022-round-1/anareyegen/nx_version.txt b/2022-round-1/anareyegen/nx_version.txt new file mode 100644 index 0000000..5588ae8 --- /dev/null +++ b/2022-round-1/anareyegen/nx_version.txt @@ -0,0 +1 @@ +2.7.1 \ No newline at end of file diff --git a/2022-round-1/deepthi1107/nx_tutorial_script.py b/2022-round-1/deepthi1107/nx_tutorial_script.py new file mode 100644 index 0000000..12c5130 --- /dev/null +++ b/2022-round-1/deepthi1107/nx_tutorial_script.py @@ -0,0 +1,68 @@ +#!/usr/bin/env python +# coding: utf-8 + +# In[1]: + + +#importing the required libraries +import networkx as nx + + +# In[2]: + + +#Creating DiGraph +graph1=nx.DiGraph() + + +# In[3]: + + +#adding node 11,"N1",1,2,3,(4,5) +graph1.add_node(11) +graph1.add_node("N1") +L=[1,2,3] +graph1.add_nodes_from(L) +graph1.add_node((4,5)) + + +# In[4]: + + +#view of all the nodes inserted to the DiGraph +graph1.nodes() + + +# In[5]: + + +#adding edges 11->"N1",1->2,2->3,3->11,N1->(4,5),(4,5)->1 +graph1.add_edge(11,"N1") +graph1.add_edge(1,2) +graph1.add_edge(2,3) +graph1.add_edge(3,11) +graph1.add_edge("N1",(4,5)) +graph1.add_edge((4,5),1) + + +# In[6]: + + +#view of edges, connecting the nodes +graph1.edges() + + +# In[7]: + + +#visualization of DiGraph created +nx.draw(graph1,with_labels=1) + + +# In[8]: + + +#finding the shoretes path between the nodes and printing the shortest path +s_path = nx.shortest_path(graph1) +print(s_path) + diff --git a/2022-round-1/joyceannie/nx_dev_test_output.txt b/2022-round-1/joyceannie/nx_dev_test_output.txt new file mode 100644 index 0000000..de22ad9 --- /dev/null +++ b/2022-round-1/joyceannie/nx_dev_test_output.txt @@ -0,0 +1,267 @@ +================================================================================================================================================ test session starts ================================================================================================================================================ +platform win32 -- Python 3.9.9, pytest-7.1.1, pluggy-1.0.0 +rootdir: C:\Users\joyce\OneDrive\Desktop\My Data\networkx +plugins: cov-3.0.0 +collected 4891 items / 3 skipped + +networkx\algorithms\approximation\tests\test_approx_clust_coeff.py ...... [ 0%] +networkx\algorithms\approximation\tests\test_clique.py ........ [ 0%] +networkx\algorithms\approximation\tests\test_connectivity.py .................. [ 0%] +networkx\algorithms\approximation\tests\test_distance_measures.py ........ [ 0%] +networkx\algorithms\approximation\tests\test_dominating_set.py ... [ 0%] +networkx\algorithms\approximation\tests\test_kcomponents.py ................ [ 1%] +networkx\algorithms\approximation\tests\test_matching.py . [ 1%] +networkx\algorithms\approximation\tests\test_maxcut.py ..... [ 1%] +networkx\algorithms\approximation\tests\test_ramsey.py . [ 1%] +networkx\algorithms\approximation\tests\test_steinertree.py .... [ 1%] +networkx\algorithms\approximation\tests\test_traveling_salesman.py ....................................s......s. [ 2%] +networkx\algorithms\approximation\tests\test_treewidth.py ............ [ 2%] +networkx\algorithms\approximation\tests\test_vertex_cover.py .... [ 2%] +networkx\algorithms\assortativity\tests\test_connectivity.py .......... [ 2%] +networkx\algorithms\assortativity\tests\test_correlation.py ................... [ 3%] +networkx\algorithms\assortativity\tests\test_mixing.py ................... [ 3%] +networkx\algorithms\assortativity\tests\test_neighbor_degree.py ...... [ 3%] +networkx\algorithms\assortativity\tests\test_pairs.py ........... [ 4%] +networkx\algorithms\bipartite\tests\test_basic.py ............... [ 4%] +networkx\algorithms\bipartite\tests\test_centrality.py ...... [ 4%] +networkx\algorithms\bipartite\tests\test_cluster.py ......... [ 4%] +networkx\algorithms\bipartite\tests\test_covering.py .... [ 4%] +networkx\algorithms\bipartite\tests\test_edgelist.py .............. [ 4%] +networkx\algorithms\bipartite\tests\test_generators.py .......... [ 5%] +networkx\algorithms\bipartite\tests\test_matching.py .................... [ 5%] +networkx\algorithms\bipartite\tests\test_matrix.py ........... [ 5%] +networkx\algorithms\bipartite\tests\test_project.py ................. [ 6%] +networkx\algorithms\bipartite\tests\test_redundancy.py ... [ 6%] +networkx\algorithms\bipartite\tests\test_spectral_bipartivity.py ... [ 6%] +networkx\algorithms\centrality\tests\test_betweenness_centrality.py ......................................... [ 7%] +networkx\algorithms\centrality\tests\test_betweenness_centrality_subset.py ................. [ 7%] +networkx\algorithms\centrality\tests\test_closeness_centrality.py ............. [ 7%] +networkx\algorithms\centrality\tests\test_current_flow_betweenness_centrality.py ................ [ 8%] +networkx\algorithms\centrality\tests\test_current_flow_betweenness_centrality_subset.py ......... [ 8%] +networkx\algorithms\centrality\tests\test_current_flow_closeness.py ... [ 8%] +networkx\algorithms\centrality\tests\test_degree_centrality.py ....... [ 8%] +networkx\algorithms\centrality\tests\test_dispersion.py ... [ 8%] +networkx\algorithms\centrality\tests\test_eigenvector_centrality.py ............ [ 8%] +networkx\algorithms\centrality\tests\test_group.py ........................ [ 9%] +networkx\algorithms\centrality\tests\test_harmonic_centrality.py ............. [ 9%] +networkx\algorithms\centrality\tests\test_katz_centrality.py .......................... [ 10%] +networkx\algorithms\centrality\tests\test_load_centrality.py ................. [ 10%] +networkx\algorithms\centrality\tests\test_percolation_centrality.py ... [ 10%] +networkx\algorithms\centrality\tests\test_reaching.py .............. [ 10%] +networkx\algorithms\centrality\tests\test_second_order_centrality.py ....... [ 10%] +networkx\algorithms\centrality\tests\test_subgraph.py ..... [ 10%] +networkx\algorithms\centrality\tests\test_trophic.py .......... [ 11%] +networkx\algorithms\centrality\tests\test_voterank.py ..... [ 11%] +networkx\algorithms\coloring\tests\test_coloring.py ................ [ 11%] +networkx\algorithms\community\tests\test_asyn_fluid.py ..... [ 11%] +networkx\algorithms\community\tests\test_centrality.py ..... [ 11%] +networkx\algorithms\community\tests\test_kclique.py ........ [ 12%] +networkx\algorithms\community\tests\test_kernighan_lin.py ........ [ 12%] +networkx\algorithms\community\tests\test_label_propagation.py ........... [ 12%] +networkx\algorithms\community\tests\test_louvain.py ........ [ 12%] +networkx\algorithms\community\tests\test_lukes.py .... [ 12%] +networkx\algorithms\community\tests\test_modularity_max.py ................. [ 12%] +networkx\algorithms\community\tests\test_quality.py ....... [ 13%] +networkx\algorithms\community\tests\test_utils.py .... [ 13%] +networkx\algorithms\components\tests\test_attracting.py .... [ 13%] +networkx\algorithms\components\tests\test_biconnected.py ............. [ 13%] +networkx\algorithms\components\tests\test_connected.py ........ [ 13%] +networkx\algorithms\components\tests\test_semiconnected.py ........ [ 13%] +networkx\algorithms\components\tests\test_strongly_connected.py .............. [ 14%] +networkx\algorithms\components\tests\test_weakly_connected.py ...... [ 14%] +networkx\algorithms\shortest_paths\tests\test_unweighted.py ............ [ 25%] +networkx\algorithms\shortest_paths\tests\test_weighted.py ..................................................... [ 26%] +networkx\algorithms\tests\test_asteroidal.py . [ 26%] +networkx\algorithms\tests\test_boundary.py ............. [ 26%] +networkx\algorithms\tests\test_bridges.py ...... [ 26%] +networkx\algorithms\tests\test_chains.py .... [ 26%] +networkx\algorithms\tests\test_chordal.py .......... [ 26%] +networkx\algorithms\tests\test_clique.py .............. [ 27%] +networkx\algorithms\tests\test_cluster.py ........................................ [ 27%] +networkx\algorithms\tests\test_communicability.py .. [ 27%] +networkx\algorithms\tests\test_core.py ............. [ 28%] +networkx\algorithms\tests\test_covering.py ........ [ 28%] +networkx\algorithms\tests\test_cuts.py ................. [ 28%] +networkx\algorithms\tests\test_cycles.py .................................. [ 29%] +networkx\algorithms\tests\test_d_separation.py ............. [ 29%] +networkx\algorithms\tests\test_dag.py ..................................................... [ 30%] +networkx\algorithms\tests\test_distance_measures.py ................................. [ 31%] +networkx\algorithms\tests\test_distance_regular.py ....... [ 31%] +networkx\algorithms\tests\test_dominance.py ...................... [ 32%] +networkx\algorithms\tests\test_dominating.py ..... [ 32%] +networkx\algorithms\tests\test_efficiency.py ....... [ 32%] +networkx\algorithms\tests\test_euler.py .............................. [ 32%] +networkx\algorithms\tests\test_graph_hashing.py ........................ [ 33%] +networkx\algorithms\tests\test_graphical.py ............. [ 33%] +networkx\algorithms\tests\test_hierarchy.py ..... [ 33%] +networkx\algorithms\tests\test_hybrid.py .. [ 33%] +networkx\algorithms\tests\test_isolate.py ... [ 33%] +networkx\algorithms\tests\test_link_prediction.py ......................................................................... [ 35%] +networkx\algorithms\tests\test_lowest_common_ancestors.py ......................... [ 35%] +networkx\algorithms\tests\test_matching.py ............................................ [ 36%] +networkx\algorithms\tests\test_max_weight_clique.py ..... [ 36%] +networkx\algorithms\tests\test_mis.py ........ [ 37%] +networkx\algorithms\tests\test_moral.py . [ 37%] +networkx\algorithms\tests\test_node_classification.py ............... [ 37%] +networkx\algorithms\tests\test_node_classification_deprecations.py .... [ 37%] +networkx\algorithms\tests\test_non_randomness.py ...... [ 37%] +networkx\algorithms\tests\test_planar_drawing.py ............ [ 37%] +networkx\algorithms\tests\test_planarity.py .............................. [ 38%] +networkx\algorithms\tests\test_polynomials.py ........ [ 38%] +networkx\algorithms\tests\test_reciprocity.py ..... [ 38%] +networkx\algorithms\tests\test_regular.py ............. [ 38%] +networkx\algorithms\tests\test_richclub.py ........ [ 39%] +networkx\algorithms\tests\test_similarity.py ............................................ [ 39%] +networkx\algorithms\tests\test_simple_paths.py ......................................................................... [ 41%] +networkx\algorithms\tests\test_smallworld.py .... [ 41%] +networkx\algorithms\tests\test_smetric.py .. [ 41%] +networkx\algorithms\tests\test_sparsifiers.py ....... [ 41%] +networkx\algorithms\tests\test_structuralholes.py ............ [ 41%] +networkx\algorithms\tests\test_summarization.py ................. [ 42%] +networkx\algorithms\tests\test_swap.py ............. [ 42%] +networkx\algorithms\tests\test_threshold.py .................. [ 42%] +networkx\algorithms\tests\test_tournament.py ..................... [ 43%] +networkx\algorithms\tests\test_triads.py ........ [ 43%] +networkx\algorithms\tests\test_vitality.py ...... [ 43%] +networkx\algorithms\tests\test_voronoi.py .......... [ 43%] +networkx\algorithms\tests\test_wiener.py .... [ 43%] +networkx\algorithms\traversal\tests\test_beamsearch.py .. [ 44%] +networkx\algorithms\traversal\tests\test_bfs.py .............. [ 44%] +networkx\algorithms\traversal\tests\test_dfs.py ................. [ 44%] +networkx\algorithms\traversal\tests\test_edgebfs.py ................ [ 44%] +networkx\algorithms\traversal\tests\test_edgedfs.py ............... [ 45%] +networkx\algorithms\tree\tests\test_branchings.py ........................... [ 45%] +networkx\algorithms\tree\tests\test_coding.py .............. [ 46%] +networkx\algorithms\tree\tests\test_decomposition.py ..... [ 46%] +networkx\algorithms\tree\tests\test_mst.py .............................................. [ 47%] +networkx\algorithms\tree\tests\test_operations.py ... [ 47%] +networkx\algorithms\tree\tests\test_recognition.py ......................... [ 47%] +networkx\classes\tests\test_coreviews.py ......................................................... [ 48%] +networkx\classes\tests\test_digraph.py ................................................................................ [ 50%] +networkx\classes\tests\test_digraph_historical.py .......................................... [ 51%] +networkx\classes\tests\test_filters.py ........... [ 51%] +networkx\classes\tests\test_function.py .................................................................... [ 53%] +networkx\classes\tests\test_graph.py .............................................................. [ 54%] +networkx\classes\tests\test_graph_historical.py .................................. [ 54%] +networkx\classes\tests\test_graphviews.py ................................... [ 55%] +networkx\classes\tests\test_multidigraph.py ............................................................................................. [ 57%] +networkx\classes\tests\test_multigraph.py .............................................................................. [ 59%] +networkx\classes\tests\test_ordered.py ..... [ 59%] +networkx\classes\tests\test_reportviews.py ............................................................................................................................................................................................................................................. [ 64%] +networkx\classes\tests\test_special.py ....................................................................................................................................................................................................................................................................... [ 69%] +.............................................................................................................................................................................................................................................................................................................. [ 75%] +............................................... [ 76%] +networkx\classes\tests\test_subgraphviews.py ................................ [ 77%] +networkx\drawing\tests\test_layout.py .......................... [ 77%] +networkx\drawing\tests\test_pylab.py ........................................................................................... [ 79%] +networkx\generators\tests\test_atlas.py ........ [ 79%] +networkx\generators\tests\test_classic.py .............................. [ 80%] +networkx\generators\tests\test_cographs.py . [ 80%] +networkx\generators\tests\test_community.py ................ [ 80%] +networkx\generators\tests\test_degree_seq.py ................... [ 81%] +networkx\generators\tests\test_directed.py ........ [ 81%] +networkx\generators\tests\test_duplication.py ....... [ 81%] +networkx\generators\tests\test_ego.py .. [ 81%] +networkx\generators\tests\test_expanders.py .... [ 81%] +networkx\generators\tests\test_geometric.py ....................... [ 82%] +networkx\generators\tests\test_harary_graph.py .. [ 82%] +networkx\generators\tests\test_internet_as_graphs.py ..... [ 82%] +networkx\generators\tests\test_intersection.py .... [ 82%] +networkx\generators\tests\test_interval_graph.py ........ [ 82%] +networkx\generators\tests\test_joint_degree_seq.py .... [ 82%] +networkx\generators\tests\test_lattice.py ...................... [ 83%] +networkx\generators\tests\test_line.py .............................. [ 83%] +networkx\generators\tests\test_mycielski.py ... [ 83%] +networkx\generators\tests\test_nonisomorphic_trees.py ..... [ 83%] +networkx\generators\tests\test_random_clustered.py .... [ 83%] +networkx\generators\tests\test_random_graphs.py ............................................................... [ 85%] +networkx\generators\tests\test_small.py ....................................... [ 85%] +networkx\generators\tests\test_spectral_graph_forge.py . [ 85%] +networkx\generators\tests\test_stochastic.py ...... [ 86%] +networkx\generators\tests\test_sudoku.py ...... [ 86%] +networkx\generators\tests\test_trees.py ....... [ 86%] +networkx\generators\tests\test_triads.py .. [ 86%] +networkx\linalg\tests\test_algebraic_connectivity.py ....................................................................................... [ 88%] +networkx\linalg\tests\test_attrmatrix.py ..... [ 88%] +networkx\linalg\tests\test_bethehessian.py . [ 88%] +networkx\linalg\tests\test_graphmatrix.py .... [ 88%] +networkx\linalg\tests\test_laplacian.py .... [ 88%] +networkx\linalg\tests\test_modularity.py ... [ 88%] +networkx\linalg\tests\test_spectrum.py ..... [ 88%] +networkx\readwrite\json_graph\tests\test_adjacency.py ...... [ 88%] +networkx\readwrite\json_graph\tests\test_cytoscape.py ........ [ 88%] +networkx\readwrite\json_graph\tests\test_jit.py ..... [ 89%] +networkx\readwrite\json_graph\tests\test_node_link.py ......... [ 89%] +networkx\readwrite\json_graph\tests\test_tree.py .... [ 89%] +networkx\readwrite\tests\test_adjlist.py .................. [ 89%] +networkx\readwrite\tests\test_edgelist.py .......................... [ 90%] +networkx\readwrite\tests\test_getattr_nxyaml_removal.py .... [ 90%] +networkx\readwrite\tests\test_gexf.py ..................... [ 90%] +networkx\readwrite\tests\test_gml.py ..................... [ 91%] +networkx\readwrite\tests\test_gpickle.py .. [ 91%] +networkx\readwrite\tests\test_graph6.py ............... [ 91%] +networkx\readwrite\tests\test_graphml.py ..................sssssssssssssssssssssssssssssssssssssssssss [ 92%] +networkx\readwrite\tests\test_leda.py .. [ 92%] +networkx\readwrite\tests\test_p2g.py ... [ 92%] +networkx\readwrite\tests\test_pajek.py ........ [ 93%] +networkx\readwrite\tests\test_sparse6.py ................ [ 93%] +networkx\readwrite\tests\test_text.py ....... [ 93%] +networkx\testing\tests\test_utils.py ..................... [ 93%] +networkx\tests\test_all_random_functions.py s [ 93%] +networkx\tests\test_convert.py ............... [ 94%] +networkx\tests\test_convert_numpy.py ........................................................................... [ 95%] +networkx\tests\test_convert_pandas.py ...................... [ 96%] +networkx\tests\test_convert_scipy.py ..................... [ 96%] +networkx\tests\test_exceptions.py ....... [ 96%] +networkx\tests\test_import.py .. [ 96%] +networkx\tests\test_lazy_imports.py .... [ 96%] +networkx\tests\test_relabel.py ....................... [ 97%] +networkx\utils\tests\test__init.py . [ 97%] +networkx\utils\tests\test_contextmanager.py . [ 97%] +networkx\utils\tests\test_decorators.py ................................... [ 98%] +networkx\utils\tests\test_heaps.py .. [ 98%] +networkx\utils\tests\test_mapped_queue.py ........................................ [ 98%] +networkx\utils\tests\test_misc.py ...................................... [ 99%] +networkx\utils\tests\test_random_sequence.py .... [ 99%] +networkx\utils\tests\test_rcm.py .. [ 99%] +networkx\utils\tests\test_unionfind.py ..... [100%] + +================================================================================================================================================= warnings summary ================================================================================================================================================== +networkx\drawing\tests\test_pylab.py:419 + C:\Users\joyce\OneDrive\Desktop\My Data\networkx\networkx\drawing\tests\test_pylab.py:419: PytestUnknownMarkWarning: Unknown pytest.mark.mpl_image_compare - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html + @pytest.mark.mpl_image_compare + +networkx\utils\decorators.py:292 + C:\Users\joyce\OneDrive\Desktop\My Data\networkx\networkx\utils\decorators.py:292: DeprecationWarning: preserve_random_state is deprecated and will be removed in 3.0. + warnings.warn(msg, DeprecationWarning) + +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_ascent_fractional_solution +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_ascent_method_asymmetric +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent_asymmetric_3 +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent_fractional_asymmetric +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_asadpour_tsp + C:\Users\joyce\OneDrive\Desktop\My Data\networkx\networkx\algorithms\approximation\traveling_salesman.py:679: OptimizeWarning: A_eq does not appear to be of full row rank. To improve performance, check the problem formulation for redundant equality constraints. + program_result = optimize.linprog(c, A_eq=a_eq, b_eq=b_eq) + +networkx/classes/tests/test_ordered.py::TestOrderedFeatures::test_subgraph_order + C:\Users\joyce\OneDrive\Desktop\My Data\networkx\networkx\classes\tests\test_ordered.py:22: DeprecationWarning: OrderedDiGraph is deprecated and will be removed in version 3.0. + Use `DiGraph` instead, which guarantees order is preserved for + Python >= 3.7 + + cls.G = nx.OrderedDiGraph() + +networkx/linalg/tests/test_algebraic_connectivity.py::TestSpectralOrdering::test_cycle[lobpcg-False-expected_order0] + C:\Users\joyce\OneDrive\Desktop\My Data\networkx\networkx\linalg\algebraicconnectivity.py:301: UserWarning: Exited at iteration 10 with accuracies + [0.02743716] + not reaching the requested tolerance 1e-08. + sigma, X = sp.sparse.linalg.lobpcg( + +networkx/linalg/tests/test_algebraic_connectivity.py::TestSpectralOrdering::test_cycle[lobpcg-True-expected_order1] + C:\Users\joyce\OneDrive\Desktop\My Data\networkx\networkx\linalg\algebraicconnectivity.py:301: UserWarning: Exited at iteration 10 with accuracies + [0.00056623] + not reaching the requested tolerance 1e-08. + sigma, X = sp.sparse.linalg.lobpcg( + +-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html +============================================================================================================================= 4838 passed, 56 skipped, 11 warnings in 116.31s (0:01:56) ============================================================================================================================= \ No newline at end of file diff --git a/2022-round-1/joyceannie/nx_version.txt b/2022-round-1/joyceannie/nx_version.txt new file mode 100644 index 0000000..5588ae8 --- /dev/null +++ b/2022-round-1/joyceannie/nx_version.txt @@ -0,0 +1 @@ +2.7.1 \ No newline at end of file diff --git a/2022-round-1/pankaj892/nx_dev_test_output.txt b/2022-round-1/pankaj892/nx_dev_test_output.txt new file mode 100644 index 0000000..796b6a0 --- /dev/null +++ b/2022-round-1/pankaj892/nx_dev_test_output.txt @@ -0,0 +1,317 @@ +================================================= test session starts ================================================= +platform win32 -- Python 3.10.4, pytest-7.1.1, pluggy-1.0.0 +rootdir: C:\Users\Pankaj\networkx +plugins: cov-3.0.0 +collected 4987 items / 4 skipped + +networkx\networkx\algorithms\approximation\tests\test_approx_clust_coeff.py ...... [ 0%] +networkx\networkx\algorithms\approximation\tests\test_clique.py ........ [ 0%] +networkx\networkx\algorithms\approximation\tests\test_connectivity.py .................. [ 0%] +networkx\networkx\algorithms\approximation\tests\test_distance_measures.py ........ [ 0%] +networkx\networkx\algorithms\approximation\tests\test_dominating_set.py ... [ 0%] +networkx\networkx\algorithms\approximation\tests\test_kcomponents.py ................ [ 1%] +networkx\networkx\algorithms\approximation\tests\test_matching.py . [ 1%] +networkx\networkx\algorithms\approximation\tests\test_maxcut.py ..... [ 1%] +networkx\networkx\algorithms\approximation\tests\test_ramsey.py . [ 1%] +networkx\networkx\algorithms\approximation\tests\test_steinertree.py .... [ 1%] +networkx\networkx\algorithms\approximation\tests\test_traveling_salesman.py .................................... [ 2%] +s......s. [ 2%] +networkx\networkx\algorithms\approximation\tests\test_treewidth.py ............ [ 2%] +networkx\networkx\algorithms\approximation\tests\test_vertex_cover.py .... [ 2%] +networkx\networkx\algorithms\assortativity\tests\test_connectivity.py .......... [ 2%] +networkx\networkx\algorithms\assortativity\tests\test_correlation.py ................... [ 3%] +networkx\networkx\algorithms\assortativity\tests\test_mixing.py ................... [ 3%] +networkx\networkx\algorithms\assortativity\tests\test_neighbor_degree.py ...... [ 3%] +networkx\networkx\algorithms\assortativity\tests\test_pairs.py ........... [ 3%] +networkx\networkx\algorithms\bipartite\tests\test_basic.py ............... [ 4%] +networkx\networkx\algorithms\bipartite\tests\test_centrality.py ...... [ 4%] +networkx\networkx\algorithms\bipartite\tests\test_cluster.py ......... [ 4%] +networkx\networkx\algorithms\bipartite\tests\test_covering.py .... [ 4%] +networkx\networkx\algorithms\bipartite\tests\test_edgelist.py .............. [ 4%] +networkx\networkx\algorithms\bipartite\tests\test_generators.py .......... [ 5%] +networkx\networkx\algorithms\bipartite\tests\test_matching.py .................... [ 5%] +networkx\networkx\algorithms\bipartite\tests\test_matrix.py ........... [ 5%] +networkx\networkx\algorithms\bipartite\tests\test_project.py ................. [ 6%] +networkx\networkx\algorithms\bipartite\tests\test_redundancy.py ... [ 6%] +networkx\networkx\algorithms\bipartite\tests\test_spectral_bipartivity.py ... [ 6%] +networkx\networkx\algorithms\centrality\tests\test_betweenness_centrality.py ................................... [ 6%] +...... [ 6%] +networkx\networkx\algorithms\centrality\tests\test_betweenness_centrality_subset.py ................. [ 7%] +networkx\networkx\algorithms\centrality\tests\test_closeness_centrality.py ............. [ 7%] +networkx\networkx\algorithms\centrality\tests\test_current_flow_betweenness_centrality.py ................ [ 7%] +networkx\networkx\algorithms\centrality\tests\test_current_flow_betweenness_centrality_subset.py ......... [ 8%] +networkx\networkx\algorithms\centrality\tests\test_current_flow_closeness.py ... [ 8%] +networkx\networkx\algorithms\centrality\tests\test_degree_centrality.py ....... [ 8%] +networkx\networkx\algorithms\centrality\tests\test_dispersion.py ... [ 8%] +networkx\networkx\algorithms\centrality\tests\test_eigenvector_centrality.py ............ [ 8%] +networkx\networkx\algorithms\centrality\tests\test_group.py ........................ [ 9%] +networkx\networkx\algorithms\centrality\tests\test_harmonic_centrality.py ............. [ 9%] +networkx\networkx\algorithms\centrality\tests\test_katz_centrality.py .......................... [ 9%] +networkx\networkx\algorithms\centrality\tests\test_load_centrality.py ................. [ 10%] +networkx\networkx\algorithms\centrality\tests\test_percolation_centrality.py ... [ 10%] +networkx\networkx\algorithms\centrality\tests\test_reaching.py .............. [ 10%] +networkx\networkx\algorithms\centrality\tests\test_second_order_centrality.py ....... [ 10%] +networkx\networkx\algorithms\centrality\tests\test_subgraph.py ..... [ 10%] +networkx\networkx\algorithms\centrality\tests\test_trophic.py .......... [ 10%] +networkx\networkx\algorithms\centrality\tests\test_voterank.py ..... [ 11%] +networkx\networkx\algorithms\coloring\tests\test_coloring.py ................ [ 11%] +networkx\networkx\algorithms\community\tests\test_asyn_fluid.py ..... [ 11%] +networkx\networkx\algorithms\community\tests\test_centrality.py ..... [ 11%] +networkx\networkx\algorithms\community\tests\test_kclique.py ........ [ 11%] +networkx\networkx\algorithms\community\tests\test_kernighan_lin.py ........ [ 11%] +networkx\networkx\algorithms\community\tests\test_label_propagation.py ........... [ 12%] +networkx\networkx\algorithms\community\tests\test_louvain.py ........ [ 12%] +networkx\networkx\algorithms\community\tests\test_lukes.py .... [ 12%] +networkx\networkx\algorithms\community\tests\test_modularity_max.py ................. [ 12%] +networkx\networkx\algorithms\community\tests\test_quality.py ....... [ 12%] +networkx\networkx\algorithms\community\tests\test_utils.py .... [ 12%] +networkx\networkx\algorithms\components\tests\test_attracting.py .... [ 13%] +networkx\networkx\algorithms\components\tests\test_biconnected.py ............. [ 13%] +networkx\networkx\algorithms\components\tests\test_connected.py ........ [ 13%] +networkx\networkx\algorithms\components\tests\test_semiconnected.py ........ [ 13%] +networkx\networkx\algorithms\components\tests\test_strongly_connected.py .............. [ 13%] +networkx\networkx\algorithms\components\tests\test_weakly_connected.py ...... [ 14%] +networkx\networkx\algorithms\connectivity\tests\test_connectivity.py .................................. [ 14%] +networkx\networkx\algorithms\connectivity\tests\test_cuts.py ..................... [ 15%] +networkx\networkx\algorithms\connectivity\tests\test_disjoint_paths.py .................. [ 15%] +networkx\networkx\algorithms\connectivity\tests\test_edge_augmentation.py .................... [ 15%] +networkx\networkx\algorithms\connectivity\tests\test_edge_kcomponents.py ..................... [ 16%] +networkx\networkx\algorithms\connectivity\tests\test_kcomponents.py .sss...... [ 16%] +networkx\networkx\algorithms\connectivity\tests\test_kcutsets.py s........s..... [ 16%] +networkx\networkx\algorithms\connectivity\tests\test_stoer_wagner.py ..... [ 16%] +networkx\networkx\algorithms\flow\tests\test_gomory_hu.py ....s.... [ 17%] +networkx\networkx\algorithms\flow\tests\test_maxflow.py ........................... [ 17%] +networkx\networkx\algorithms\flow\tests\test_maxflow_large_graph.py ...s.. [ 17%] +networkx\networkx\algorithms\flow\tests\test_mincost.py ................... [ 18%] +networkx\networkx\algorithms\flow\tests\test_networksimplex.py ...................... [ 18%] +networkx\networkx\algorithms\isomorphism\tests\test_ismags.py .......... [ 18%] +networkx\networkx\algorithms\isomorphism\tests\test_isomorphism.py .... [ 18%] +networkx\networkx\algorithms\isomorphism\tests\test_isomorphvf2.py ............... [ 19%] +networkx\networkx\algorithms\isomorphism\tests\test_match_helpers.py .. [ 19%] +networkx\networkx\algorithms\isomorphism\tests\test_temporalisomorphvf2.py ............ [ 19%] +networkx\networkx\algorithms\isomorphism\tests\test_tree_isomorphism.py ..... [ 19%] +networkx\networkx\algorithms\isomorphism\tests\test_vf2userfunc.py ............................ [ 20%] +networkx\networkx\algorithms\link_analysis\tests\test_hits.py ........ [ 20%] +networkx\networkx\algorithms\link_analysis\tests\test_pagerank.py .............................................. [ 21%] +...... [ 21%] +networkx\networkx\algorithms\minors\tests\test_contraction.py ............................... [ 21%] +networkx\networkx\algorithms\operators\tests\test_all.py .................. [ 22%] +networkx\networkx\algorithms\operators\tests\test_binary.py .................... [ 22%] +networkx\networkx\algorithms\operators\tests\test_product.py ........................... [ 23%] +networkx\networkx\algorithms\operators\tests\test_unary.py ... [ 23%] +networkx\networkx\algorithms\shortest_paths\tests\test_astar.py ............. [ 23%] +networkx\networkx\algorithms\shortest_paths\tests\test_dense.py ........ [ 23%] +networkx\networkx\algorithms\shortest_paths\tests\test_dense_numpy.py ....... [ 23%] +networkx\networkx\algorithms\shortest_paths\tests\test_generic.py ...................... [ 24%] +networkx\networkx\algorithms\shortest_paths\tests\test_unweighted.py ............ [ 24%] +networkx\networkx\algorithms\shortest_paths\tests\test_weighted.py ............................................. [ 25%] +........ [ 25%] +networkx\networkx\algorithms\tests\test_asteroidal.py . [ 25%] +networkx\networkx\algorithms\tests\test_boundary.py ............. [ 25%] +networkx\networkx\algorithms\tests\test_bridges.py ...... [ 25%] +networkx\networkx\algorithms\tests\test_chains.py .... [ 26%] +networkx\networkx\algorithms\tests\test_chordal.py .......... [ 26%] +networkx\networkx\algorithms\tests\test_clique.py .............. [ 26%] +networkx\networkx\algorithms\tests\test_cluster.py ........................................ [ 27%] +networkx\networkx\algorithms\tests\test_communicability.py .. [ 27%] +networkx\networkx\algorithms\tests\test_core.py ............. [ 27%] +networkx\networkx\algorithms\tests\test_covering.py ........ [ 27%] +networkx\networkx\algorithms\tests\test_cuts.py ................. [ 28%] +networkx\networkx\algorithms\tests\test_cycles.py .................................. [ 28%] +networkx\networkx\algorithms\tests\test_d_separation.py ............. [ 29%] +networkx\networkx\algorithms\tests\test_dag.py ..................................................... [ 30%] +networkx\networkx\algorithms\tests\test_distance_measures.py ................................. [ 30%] +networkx\networkx\algorithms\tests\test_distance_regular.py ....... [ 30%] +networkx\networkx\algorithms\tests\test_dominance.py ...................... [ 31%] +networkx\networkx\algorithms\tests\test_dominating.py ..... [ 31%] +networkx\networkx\algorithms\tests\test_efficiency.py ....... [ 31%] +networkx\networkx\algorithms\tests\test_euler.py .............................. [ 32%] +networkx\networkx\algorithms\tests\test_graph_hashing.py ........................ [ 32%] +networkx\networkx\algorithms\tests\test_graphical.py ............. [ 32%] +networkx\networkx\algorithms\tests\test_hierarchy.py ..... [ 33%] +networkx\networkx\algorithms\tests\test_hybrid.py .. [ 33%] +networkx\networkx\algorithms\tests\test_isolate.py ... [ 33%] +networkx\networkx\algorithms\tests\test_link_prediction.py ..................................................... [ 34%] +.................... [ 34%] +networkx\networkx\algorithms\tests\test_lowest_common_ancestors.py ......................... [ 35%] +networkx\networkx\algorithms\tests\test_matching.py ............................................. [ 36%] +networkx\networkx\algorithms\tests\test_max_weight_clique.py ..... [ 36%] +networkx\networkx\algorithms\tests\test_mis.py ........ [ 36%] +networkx\networkx\algorithms\tests\test_moral.py . [ 36%] +networkx\networkx\algorithms\tests\test_node_classification.py ............... [ 36%] +networkx\networkx\algorithms\tests\test_node_classification_deprecations.py .... [ 36%] +networkx\networkx\algorithms\tests\test_non_randomness.py ...... [ 36%] +networkx\networkx\algorithms\tests\test_planar_drawing.py ............ [ 37%] +networkx\networkx\algorithms\tests\test_planarity.py .............................. [ 37%] +networkx\networkx\algorithms\tests\test_reciprocity.py ..... [ 37%] +networkx\networkx\algorithms\tests\test_regular.py ............. [ 38%] +networkx\networkx\algorithms\tests\test_richclub.py ........ [ 38%] +networkx\networkx\algorithms\tests\test_similarity.py ............................................ [ 39%] +networkx\networkx\algorithms\tests\test_simple_paths.py ........................................................ [ 40%] +................. [ 40%] +networkx\networkx\algorithms\tests\test_smallworld.py .... [ 40%] +networkx\networkx\algorithms\tests\test_smetric.py .. [ 40%] +networkx\networkx\algorithms\tests\test_sparsifiers.py ....... [ 40%] +networkx\networkx\algorithms\tests\test_structuralholes.py ............ [ 41%] +networkx\networkx\algorithms\tests\test_summarization.py ................. [ 41%] +networkx\networkx\algorithms\tests\test_swap.py ............. [ 41%] +networkx\networkx\algorithms\tests\test_threshold.py .................. [ 42%] +networkx\networkx\algorithms\tests\test_tournament.py ..................... [ 42%] +networkx\networkx\algorithms\tests\test_triads.py ........ [ 42%] +networkx\networkx\algorithms\tests\test_vitality.py ...... [ 42%] +networkx\networkx\algorithms\tests\test_voronoi.py .......... [ 42%] +networkx\networkx\algorithms\tests\test_wiener.py .... [ 42%] +networkx\networkx\algorithms\traversal\tests\test_beamsearch.py .. [ 43%] +networkx\networkx\algorithms\traversal\tests\test_bfs.py .............. [ 43%] +networkx\networkx\algorithms\traversal\tests\test_dfs.py ................. [ 43%] +networkx\networkx\algorithms\traversal\tests\test_edgebfs.py ................ [ 43%] +networkx\networkx\algorithms\traversal\tests\test_edgedfs.py ............... [ 44%] +networkx\networkx\algorithms\tree\tests\test_branchings.py ........................... [ 44%] +networkx\networkx\algorithms\tree\tests\test_coding.py .............. [ 45%] +networkx\networkx\algorithms\tree\tests\test_decomposition.py ..... [ 45%] +networkx\networkx\algorithms\tree\tests\test_mst.py .............................................. [ 46%] +networkx\networkx\algorithms\tree\tests\test_operations.py ... [ 46%] +networkx\networkx\algorithms\tree\tests\test_recognition.py ......................... [ 46%] +networkx\networkx\classes\tests\test_coreviews.py ......................................................... [ 47%] +networkx\networkx\classes\tests\test_digraph.py ................................................................ [ 49%] +................ [ 49%] +networkx\networkx\classes\tests\test_digraph_historical.py .......................................... [ 50%] +networkx\networkx\classes\tests\test_filters.py ........... [ 50%] +networkx\networkx\classes\tests\test_function.py ............................................................... [ 51%] +..... [ 51%] +networkx\networkx\classes\tests\test_graph.py .............................................................. [ 53%] +networkx\networkx\classes\tests\test_graph_historical.py .................................. [ 53%] +networkx\networkx\classes\tests\test_graphviews.py ................................... [ 54%] +networkx\networkx\classes\tests\test_multidigraph.py ........................................................... [ 55%] +................................................................................................................ [ 57%] +........ [ 58%] +networkx\networkx\classes\tests\test_multigraph.py ............................................................. [ 59%] +................. [ 59%] +networkx\networkx\classes\tests\test_ordered.py ..... [ 59%] +networkx\networkx\classes\tests\test_reportviews.py ............................................................ [ 60%] +................................................................................................................ [ 63%] +................................................................. [ 64%] +networkx\networkx\classes\tests\test_special.py ................................................................ [ 65%] +................................................................................................................ [ 68%] +................................................................................................................ [ 70%] +................................................................................................................ [ 72%] +................................................................................................................ [ 74%] +.................................................................................................... [ 76%] +networkx\networkx\classes\tests\test_subgraphviews.py ................................ [ 77%] +networkx\networkx\drawing\tests\test_layout.py .......................... [ 77%] +networkx\networkx\drawing\tests\test_pylab.py .................................................................. [ 79%] +.......................... [ 79%] +networkx\networkx\generators\tests\test_atlas.py ........ [ 79%] +networkx\networkx\generators\tests\test_classic.py .............................. [ 80%] +networkx\networkx\generators\tests\test_cographs.py . [ 80%] +networkx\networkx\generators\tests\test_community.py ................ [ 80%] +networkx\networkx\generators\tests\test_degree_seq.py ................... [ 81%] +networkx\networkx\generators\tests\test_directed.py ........ [ 81%] +networkx\networkx\generators\tests\test_duplication.py ....... [ 81%] +networkx\networkx\generators\tests\test_ego.py .. [ 81%] +networkx\networkx\generators\tests\test_expanders.py .... [ 81%] +networkx\networkx\generators\tests\test_geometric.py ....................... [ 82%] +networkx\networkx\generators\tests\test_harary_graph.py .. [ 82%] +networkx\networkx\generators\tests\test_internet_as_graphs.py ..... [ 82%] +networkx\networkx\generators\tests\test_intersection.py .... [ 82%] +networkx\networkx\generators\tests\test_interval_graph.py ........ [ 82%] +networkx\networkx\generators\tests\test_joint_degree_seq.py .... [ 82%] +networkx\networkx\generators\tests\test_lattice.py ...................... [ 83%] +networkx\networkx\generators\tests\test_line.py .............................. [ 83%] +networkx\networkx\generators\tests\test_mycielski.py ... [ 83%] +networkx\networkx\generators\tests\test_nonisomorphic_trees.py ..... [ 83%] +networkx\networkx\generators\tests\test_random_clustered.py .... [ 83%] +networkx\networkx\generators\tests\test_random_graphs.py ....................................................... [ 84%] +........ [ 85%] +networkx\networkx\generators\tests\test_small.py ....................................... [ 85%] +networkx\networkx\generators\tests\test_spectral_graph_forge.py . [ 85%] +networkx\networkx\generators\tests\test_stochastic.py ...... [ 86%] +networkx\networkx\generators\tests\test_sudoku.py ...... [ 86%] +networkx\networkx\generators\tests\test_trees.py ....... [ 86%] +networkx\networkx\generators\tests\test_triads.py .. [ 86%] +networkx\networkx\linalg\tests\test_algebraic_connectivity.py .................................................. [ 87%] +..................................... [ 88%] +networkx\networkx\linalg\tests\test_attrmatrix.py ..... [ 88%] +networkx\networkx\linalg\tests\test_bethehessian.py . [ 88%] +networkx\networkx\linalg\tests\test_graphmatrix.py .... [ 88%] +networkx\networkx\linalg\tests\test_laplacian.py .... [ 88%] +networkx\networkx\linalg\tests\test_modularity.py ... [ 88%] +networkx\networkx\linalg\tests\test_spectrum.py ..... [ 88%] +networkx\networkx\readwrite\json_graph\tests\test_adjacency.py ...... [ 88%] +networkx\networkx\readwrite\json_graph\tests\test_cytoscape.py ........ [ 88%] +networkx\networkx\readwrite\json_graph\tests\test_jit.py ..... [ 88%] +networkx\networkx\readwrite\json_graph\tests\test_node_link.py ......... [ 89%] +networkx\networkx\readwrite\json_graph\tests\test_tree.py .... [ 89%] +networkx\networkx\readwrite\tests\test_adjlist.py .................. [ 89%] +networkx\networkx\readwrite\tests\test_edgelist.py .......................... [ 90%] +networkx\networkx\readwrite\tests\test_getattr_nxyaml_removal.py .... [ 90%] +networkx\networkx\readwrite\tests\test_gexf.py ..................... [ 90%] +networkx\networkx\readwrite\tests\test_gml.py ..................... [ 90%] +networkx\networkx\readwrite\tests\test_gpickle.py .. [ 91%] +networkx\networkx\readwrite\tests\test_graph6.py ............................... [ 91%] +networkx\networkx\readwrite\tests\test_graphml.py ..................sssssssssssssssssssssssssssssssssssssssssss [ 92%] +networkx\networkx\readwrite\tests\test_leda.py .. [ 92%] +networkx\networkx\readwrite\tests\test_p2g.py ... [ 92%] +networkx\networkx\readwrite\tests\test_pajek.py ........ [ 93%] +networkx\networkx\readwrite\tests\test_sparse6.py ................ [ 93%] +networkx\networkx\readwrite\tests\test_text.py ....... [ 93%] +networkx\networkx\testing\tests\test_utils.py ..................... [ 94%] +networkx\networkx\tests\test_all_random_functions.py s [ 94%] +networkx\networkx\tests\test_convert.py ............... [ 94%] +networkx\networkx\tests\test_convert_numpy.py .................................................................. [ 95%] +......... [ 95%] +networkx\networkx\tests\test_convert_pandas.py ...................... [ 96%] +networkx\networkx\tests\test_convert_scipy.py ..................... [ 96%] +networkx\networkx\tests\test_exceptions.py ....... [ 96%] +networkx\networkx\tests\test_import.py .. [ 96%] +networkx\networkx\tests\test_lazy_imports.py .... [ 96%] +networkx\networkx\tests\test_relabel.py ....................... [ 97%] +networkx\networkx\utils\tests\test__init.py . [ 97%] +networkx\networkx\utils\tests\test_contextmanager.py . [ 97%] +networkx\networkx\utils\tests\test_decorators.py ................................... [ 98%] +networkx\networkx\utils\tests\test_heaps.py .. [ 98%] +networkx\networkx\utils\tests\test_mapped_queue.py ........................................ [ 99%] +networkx\networkx\utils\tests\test_misc.py ...................................... [ 99%] +networkx\networkx\utils\tests\test_random_sequence.py .... [ 99%] +networkx\networkx\utils\tests\test_rcm.py .. [ 99%] +networkx\networkx\utils\tests\test_unionfind.py ..... [100%] + +================================================================================================ warnings summary ================================================================================================ +networkx\networkx\drawing\tests\test_pylab.py:420 + C:\Users\Pankaj\networkx\networkx\drawing\tests\test_pylab.py:420: PytestUnknownMarkWarning: Unknown pytest.mark.mpl_image_compare - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html + @pytest.mark.mpl_image_compare + +networkx\networkx\utils\decorators.py:292 + C:\Users\Pankaj\networkx\networkx\utils\decorators.py:292: DeprecationWarning: preserve_random_state is deprecated and will be removed in 3.0. + warnings.warn(msg, DeprecationWarning) + +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_ascent_fractional_solution +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_ascent_method_asymmetric +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent_asymmetric_3 +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent_fractional_asymmetric +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_asadpour_tsp + C:\Users\Pankaj\networkx\networkx\algorithms\approximation\traveling_salesman.py:679: OptimizeWarning: A_eq does not appear to be of full row rank. To improve performance, check the problem formulation for redundant equality constraints. + program_result = optimize.linprog(c, A_eq=a_eq, b_eq=b_eq) + +networkx/classes/tests/test_ordered.py::TestOrderedFeatures::test_subgraph_order + C:\Users\Pankaj\networkx\networkx\classes\tests\test_ordered.py:22: DeprecationWarning: OrderedDiGraph is deprecated and will be removed in version 3.0. + Use `DiGraph` instead, which guarantees order is preserved for + Python >= 3.7 + + cls.G = nx.OrderedDiGraph() + +networkx/linalg/tests/test_algebraic_connectivity.py::TestSpectralOrdering::test_cycle[lobpcg-False-expected_order0] + C:\Users\Pankaj\networkx\networkx\linalg\algebraicconnectivity.py:301: UserWarning: Exited at iteration 10 with accuracies + [0.02743716] + not reaching the requested tolerance 1e-08. + sigma, X = sp.sparse.linalg.lobpcg( + +networkx/linalg/tests/test_algebraic_connectivity.py::TestSpectralOrdering::test_cycle[lobpcg-True-expected_order1] + C:\Users\Pankaj\networkx\networkx\linalg\algebraicconnectivity.py:301: UserWarning: Exited at iteration 10 with accuracies + [0.00056623] + not reaching the requested tolerance 1e-08. + sigma, X = sp.sparse.linalg.lobpcg( + +-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html +=========================================================================== 4934 passed, 57 skipped, 11 warnings in 256.67s (0:04:16) ============================================================================ diff --git a/2022-round-1/pankaj892/nx_version.txt b/2022-round-1/pankaj892/nx_version.txt new file mode 100644 index 0000000..5588ae8 --- /dev/null +++ b/2022-round-1/pankaj892/nx_version.txt @@ -0,0 +1 @@ +2.7.1 \ No newline at end of file diff --git a/2022-round-1/peacelovingng/nx_dev_test_output.txt b/2022-round-1/peacelovingng/nx_dev_test_output.txt new file mode 100644 index 0000000..91cd69b --- /dev/null +++ b/2022-round-1/peacelovingng/nx_dev_test_output.txt @@ -0,0 +1,312 @@ + +================================================== test session starts ================================================== +platform win32 -- Python 3.8.5, pytest-7.1.1, pluggy-1.0.0 +rootdir: C:\Users\LocalUser\Desktop\networkx +plugins: cov-3.0.0 +collected 4894 items / 2 skipped + +networkx\algorithms\approximation\tests\test_approx_clust_coeff.py ...... [ 0%] +networkx\algorithms\approximation\tests\test_clique.py ........ [ 0%] +networkx\algorithms\approximation\tests\test_connectivity.py .................. [ 0%] +networkx\algorithms\approximation\tests\test_distance_measures.py ........ [ 0%] +networkx\algorithms\approximation\tests\test_dominating_set.py ... [ 0%] +networkx\algorithms\approximation\tests\test_kcomponents.py ................ [ 1%] +networkx\algorithms\approximation\tests\test_matching.py . [ 1%] +networkx\algorithms\approximation\tests\test_maxcut.py ..... [ 1%] +networkx\algorithms\approximation\tests\test_ramsey.py . [ 1%] +networkx\algorithms\approximation\tests\test_steinertree.py .... [ 1%] +networkx\algorithms\approximation\tests\test_traveling_salesman.py ....................................s......s. [ 2%] +networkx\algorithms\approximation\tests\test_treewidth.py ............ [ 2%] +networkx\algorithms\approximation\tests\test_vertex_cover.py .... [ 2%] +networkx\algorithms\assortativity\tests\test_connectivity.py .......... [ 2%] +networkx\algorithms\assortativity\tests\test_correlation.py ................... [ 3%] +networkx\algorithms\assortativity\tests\test_mixing.py ................... [ 3%] +networkx\algorithms\assortativity\tests\test_neighbor_degree.py ...... [ 3%] +networkx\algorithms\assortativity\tests\test_pairs.py ........... [ 4%] +networkx\algorithms\bipartite\tests\test_basic.py ............... [ 4%] +networkx\algorithms\bipartite\tests\test_centrality.py ...... [ 4%] +networkx\algorithms\bipartite\tests\test_cluster.py ......... [ 4%] +networkx\algorithms\bipartite\tests\test_covering.py .... [ 4%] +networkx\algorithms\bipartite\tests\test_edgelist.py .............. [ 4%] +networkx\algorithms\bipartite\tests\test_generators.py .......... [ 5%] +networkx\algorithms\bipartite\tests\test_matching.py .................... [ 5%] +networkx\algorithms\bipartite\tests\test_matrix.py ........... [ 5%] +networkx\algorithms\bipartite\tests\test_project.py ................. [ 6%] +networkx\algorithms\bipartite\tests\test_redundancy.py ... [ 6%] +networkx\algorithms\bipartite\tests\test_spectral_bipartivity.py ... [ 6%] +networkx\algorithms\centrality\tests\test_betweenness_centrality.py ......................................... [ 7%] +networkx\algorithms\centrality\tests\test_betweenness_centrality_subset.py ................. [ 7%] +networkx\algorithms\centrality\tests\test_closeness_centrality.py ............. [ 7%] +networkx\algorithms\centrality\tests\test_current_flow_betweenness_centrality.py ................ [ 8%] +networkx\algorithms\centrality\tests\test_current_flow_betweenness_centrality_subset.py ......... [ 8%] +networkx\algorithms\centrality\tests\test_current_flow_closeness.py ... [ 8%] +networkx\algorithms\centrality\tests\test_degree_centrality.py ....... [ 8%] +networkx\algorithms\centrality\tests\test_dispersion.py ... [ 8%] +networkx\algorithms\centrality\tests\test_eigenvector_centrality.py ............ [ 8%] +networkx\algorithms\centrality\tests\test_group.py ........................ [ 9%] +networkx\algorithms\centrality\tests\test_harmonic_centrality.py ............. [ 9%] +networkx\algorithms\centrality\tests\test_katz_centrality.py .......................... [ 10%] +networkx\algorithms\centrality\tests\test_load_centrality.py ................. [ 10%] +networkx\algorithms\centrality\tests\test_percolation_centrality.py ... [ 10%] +networkx\algorithms\centrality\tests\test_reaching.py .............. [ 10%] +networkx\algorithms\centrality\tests\test_second_order_centrality.py ....... [ 10%] +networkx\algorithms\centrality\tests\test_subgraph.py ..... [ 10%] +networkx\algorithms\centrality\tests\test_trophic.py .......... [ 11%] +networkx\algorithms\centrality\tests\test_voterank.py ..... [ 11%] +networkx\algorithms\coloring\tests\test_coloring.py ................ [ 11%] +networkx\algorithms\community\tests\test_asyn_fluid.py ..... [ 11%] +networkx\algorithms\community\tests\test_centrality.py ..... [ 11%] +networkx\algorithms\community\tests\test_kclique.py ........ [ 11%] +networkx\algorithms\community\tests\test_kernighan_lin.py ........ [ 12%] +networkx\algorithms\community\tests\test_label_propagation.py ........... [ 12%] +networkx\algorithms\community\tests\test_louvain.py ........ [ 12%] +networkx\algorithms\community\tests\test_lukes.py .... [ 12%] +networkx\algorithms\community\tests\test_modularity_max.py ................. [ 12%] +networkx\algorithms\community\tests\test_quality.py ....... [ 13%] +networkx\algorithms\community\tests\test_utils.py .... [ 13%] +networkx\algorithms\components\tests\test_attracting.py .... [ 13%] +networkx\algorithms\components\tests\test_biconnected.py ............. [ 13%] +networkx\algorithms\components\tests\test_connected.py ........ [ 13%] +networkx\algorithms\components\tests\test_semiconnected.py ........ [ 13%] +networkx\algorithms\components\tests\test_strongly_connected.py .............. [ 14%] +networkx\algorithms\components\tests\test_weakly_connected.py ...... [ 14%] +networkx\algorithms\connectivity\tests\test_connectivity.py .................................. [ 14%] +networkx\algorithms\connectivity\tests\test_cuts.py ..................... [ 15%] +networkx\algorithms\connectivity\tests\test_disjoint_paths.py .................. [ 15%] +networkx\algorithms\connectivity\tests\test_edge_augmentation.py .................... [ 16%] +networkx\algorithms\connectivity\tests\test_edge_kcomponents.py ..................... [ 16%] +networkx\algorithms\connectivity\tests\test_kcomponents.py .sss...... [ 16%] +networkx\algorithms\connectivity\tests\test_kcutsets.py s........s..... [ 17%] +networkx\algorithms\connectivity\tests\test_stoer_wagner.py ..... [ 17%] +networkx\algorithms\flow\tests\test_gomory_hu.py ....s.... [ 17%] +networkx\algorithms\flow\tests\test_maxflow.py ........................... [ 17%] +networkx\algorithms\flow\tests\test_maxflow_large_graph.py ...s.. [ 18%] +networkx\algorithms\flow\tests\test_mincost.py ................... [ 18%] +networkx\algorithms\flow\tests\test_networksimplex.py ...................... [ 18%] +networkx\algorithms\isomorphism\tests\test_ismags.py .......... [ 19%] +networkx\algorithms\isomorphism\tests\test_isomorphism.py .... [ 19%] +networkx\algorithms\isomorphism\tests\test_isomorphvf2.py ............... [ 19%] +networkx\algorithms\isomorphism\tests\test_match_helpers.py .. [ 19%] +networkx\algorithms\isomorphism\tests\test_temporalisomorphvf2.py ............ [ 19%] +networkx\algorithms\isomorphism\tests\test_tree_isomorphism.py ..... [ 19%] +networkx\algorithms\isomorphism\tests\test_vf2userfunc.py ............................ [ 20%] +networkx\algorithms\link_analysis\tests\test_hits.py ........ [ 20%] +networkx\algorithms\link_analysis\tests\test_pagerank.py .................................................... [ 21%] +networkx\algorithms\minors\tests\test_contraction.py ............................... [ 22%] +networkx\algorithms\operators\tests\test_all.py .................. [ 22%] +networkx\algorithms\operators\tests\test_binary.py .................... [ 23%] +networkx\algorithms\operators\tests\test_product.py ........................... [ 23%] +networkx\algorithms\operators\tests\test_unary.py ... [ 23%] +networkx\algorithms\shortest_paths\tests\test_astar.py ............. [ 23%] +networkx\algorithms\shortest_paths\tests\test_dense.py ........ [ 24%] +networkx\algorithms\shortest_paths\tests\test_dense_numpy.py ....... [ 24%] +networkx\algorithms\shortest_paths\tests\test_generic.py ...................... [ 24%] +networkx\algorithms\shortest_paths\tests\test_unweighted.py ............ [ 24%] +networkx\algorithms\shortest_paths\tests\test_weighted.py ..................................................... [ 26%] +networkx\algorithms\tests\test_asteroidal.py . [ 26%] +networkx\algorithms\tests\test_boundary.py ............. [ 26%] +networkx\algorithms\tests\test_bridges.py ...... [ 26%] +networkx\algorithms\tests\test_chains.py .... [ 26%] +networkx\algorithms\tests\test_chordal.py .......... [ 26%] +networkx\algorithms\tests\test_clique.py .............. [ 27%] +networkx\algorithms\tests\test_cluster.py ........................................ [ 27%] +networkx\algorithms\tests\test_communicability.py .. [ 27%] +networkx\algorithms\tests\test_core.py ............. [ 28%] +networkx\algorithms\tests\test_covering.py ........ [ 28%] +networkx\algorithms\tests\test_cuts.py ................. [ 28%] +networkx\algorithms\tests\test_cycles.py .................................. [ 29%] +networkx\algorithms\tests\test_d_separation.py ............. [ 29%] +networkx\algorithms\tests\test_dag.py ..................................................... [ 30%] +networkx\algorithms\tests\test_distance_measures.py ................................. [ 31%] +networkx\algorithms\tests\test_distance_regular.py ....... [ 31%] +networkx\algorithms\tests\test_dominance.py ...................... [ 31%] +networkx\algorithms\tests\test_dominating.py ..... [ 32%] +networkx\algorithms\tests\test_efficiency.py ....... [ 32%] +networkx\algorithms\tests\test_euler.py .............................. [ 32%] +networkx\algorithms\tests\test_graph_hashing.py ........................ [ 33%] +networkx\algorithms\tests\test_graphical.py ............. [ 33%] +networkx\algorithms\tests\test_hierarchy.py ..... [ 33%] +networkx\algorithms\tests\test_hybrid.py .. [ 33%] +networkx\algorithms\tests\test_isolate.py ... [ 33%] +networkx\algorithms\tests\test_link_prediction.py ................................................................ [ 35%] +......... [ 35%] +networkx\algorithms\tests\test_lowest_common_ancestors.py ......................... [ 35%] +networkx\algorithms\tests\test_matching.py ............................................ [ 36%] +networkx\algorithms\tests\test_max_weight_clique.py ..... [ 36%] +networkx\algorithms\tests\test_mis.py ........ [ 36%] +networkx\algorithms\tests\test_moral.py . [ 37%] +networkx\algorithms\tests\test_node_classification.py ............... [ 37%] +networkx\algorithms\tests\test_node_classification_deprecations.py .... [ 37%] +networkx\algorithms\tests\test_non_randomness.py ...... [ 37%] +networkx\algorithms\tests\test_planar_drawing.py ............ [ 37%] +networkx\algorithms\tests\test_planarity.py .............................. [ 38%] +networkx\algorithms\tests\test_polynomials.py ........ [ 38%] +networkx\algorithms\tests\test_reciprocity.py ..... [ 38%] +networkx\algorithms\tests\test_regular.py ............. [ 38%] +networkx\algorithms\tests\test_richclub.py ........ [ 39%] +networkx\algorithms\tests\test_similarity.py ............................................ [ 39%] +networkx\algorithms\tests\test_simple_paths.py ................................................................... [ 41%] +...... [ 41%] +networkx\algorithms\tests\test_smallworld.py .... [ 41%] +networkx\algorithms\tests\test_smetric.py .. [ 41%] +networkx\algorithms\tests\test_sparsifiers.py ....... [ 41%] +networkx\algorithms\tests\test_structuralholes.py ............ [ 41%] +networkx\algorithms\tests\test_summarization.py ................. [ 42%] +networkx\algorithms\tests\test_swap.py ............. [ 42%] +networkx\algorithms\tests\test_threshold.py .................. [ 42%] +networkx\algorithms\tests\test_tournament.py ..................... [ 43%] +networkx\algorithms\tests\test_triads.py ........ [ 43%] +networkx\algorithms\tests\test_vitality.py ...... [ 43%] +networkx\algorithms\tests\test_voronoi.py .......... [ 43%] +networkx\algorithms\tests\test_wiener.py .... [ 43%] +networkx\algorithms\traversal\tests\test_beamsearch.py .. [ 43%] +networkx\algorithms\traversal\tests\test_bfs.py .............. [ 44%] +networkx\algorithms\traversal\tests\test_dfs.py ................. [ 44%] +networkx\algorithms\traversal\tests\test_edgebfs.py ................ [ 44%] +networkx\algorithms\traversal\tests\test_edgedfs.py ............... [ 45%] +networkx\algorithms\tree\tests\test_branchings.py ........................... [ 45%] +networkx\algorithms\tree\tests\test_coding.py .............. [ 46%] +networkx\algorithms\tree\tests\test_decomposition.py ..... [ 46%] +networkx\algorithms\tree\tests\test_mst.py .............................................. [ 47%] +networkx\algorithms\tree\tests\test_operations.py ... [ 47%] +networkx\algorithms\tree\tests\test_recognition.py ......................... [ 47%] +networkx\classes\tests\test_coreviews.py ......................................................... [ 48%] +networkx\classes\tests\test_digraph.py ........................................................................... [ 50%] +..... [ 50%] +networkx\classes\tests\test_digraph_historical.py .......................................... [ 51%] +networkx\classes\tests\test_filters.py ........... [ 51%] +networkx\classes\tests\test_function.py .................................................................... [ 52%] +networkx\classes\tests\test_graph.py .............................................................. [ 54%] +networkx\classes\tests\test_graph_historical.py .................................. [ 54%] +networkx\classes\tests\test_graphviews.py ................................... [ 55%] +networkx\classes\tests\test_multidigraph.py ...................................................................... [ 57%] +....................... [ 57%] +networkx\classes\tests\test_multigraph.py ........................................................................ [ 59%] +...... [ 59%] +networkx\classes\tests\test_ordered.py ..... [ 59%] +networkx\classes\tests\test_reportviews.py ....................................................................... [ 60%] +.................................................................................................................. [ 63%] +.................................................... [ 64%] +networkx\classes\tests\test_special.py ........................................................................... [ 65%] +.................................................................................................................. [ 67%] +.................................................................................................................. [ 70%] +.................................................................................................................. [ 72%] +.................................................................................................................. [ 74%] +................................................................................. [ 76%] +networkx\classes\tests\test_subgraphviews.py ................................ [ 77%] +networkx\drawing\tests\test_layout.py .......................... [ 77%] +networkx\drawing\tests\test_pydot.py xxx [ 77%] +networkx\drawing\tests\test_pylab.py ............................................................................. [ 79%] +.............. [ 79%] +networkx\generators\tests\test_atlas.py ........ [ 79%] +networkx\generators\tests\test_classic.py .............................. [ 80%] +networkx\generators\tests\test_cographs.py . [ 80%] +networkx\generators\tests\test_community.py ................ [ 80%] +networkx\generators\tests\test_degree_seq.py ................... [ 81%] +networkx\generators\tests\test_directed.py ........ [ 81%] +networkx\generators\tests\test_duplication.py ....... [ 81%] +networkx\generators\tests\test_ego.py .. [ 81%] +networkx\generators\tests\test_expanders.py .... [ 81%] +networkx\generators\tests\test_geometric.py ....................... [ 82%] +networkx\generators\tests\test_harary_graph.py .. [ 82%] +networkx\generators\tests\test_internet_as_graphs.py ..... [ 82%] +networkx\generators\tests\test_intersection.py .... [ 82%] +networkx\generators\tests\test_interval_graph.py ........ [ 82%] +networkx\generators\tests\test_joint_degree_seq.py .... [ 82%] +networkx\generators\tests\test_lattice.py ...................... [ 83%] +networkx\generators\tests\test_line.py .............................. [ 83%] +networkx\generators\tests\test_mycielski.py ... [ 83%] +networkx\generators\tests\test_nonisomorphic_trees.py ..... [ 83%] +networkx\generators\tests\test_random_clustered.py .... [ 83%] +networkx\generators\tests\test_random_graphs.py ............................................................... [ 85%] +networkx\generators\tests\test_small.py ....................................... [ 85%] +networkx\generators\tests\test_spectral_graph_forge.py . [ 86%] +networkx\generators\tests\test_stochastic.py ...... [ 86%] +networkx\generators\tests\test_sudoku.py ...... [ 86%] +networkx\generators\tests\test_trees.py ....... [ 86%] +networkx\generators\tests\test_triads.py .. [ 86%] +networkx\linalg\tests\test_algebraic_connectivity.py ............................................................. [ 87%] +.......................... [ 88%] +networkx\linalg\tests\test_attrmatrix.py ..... [ 88%] +networkx\linalg\tests\test_bethehessian.py . [ 88%] +networkx\linalg\tests\test_graphmatrix.py .... [ 88%] +networkx\linalg\tests\test_laplacian.py .... [ 88%] +networkx\linalg\tests\test_modularity.py ... [ 88%] +networkx\linalg\tests\test_spectrum.py ..... [ 88%] +networkx\readwrite\json_graph\tests\test_adjacency.py ...... [ 88%] +networkx\readwrite\json_graph\tests\test_cytoscape.py ........ [ 88%] +networkx\readwrite\json_graph\tests\test_jit.py ..... [ 89%] +networkx\readwrite\json_graph\tests\test_node_link.py ......... [ 89%] +networkx\readwrite\json_graph\tests\test_tree.py .... [ 89%] +networkx\readwrite\tests\test_adjlist.py .................. [ 89%] +networkx\readwrite\tests\test_edgelist.py .......................... [ 90%] +networkx\readwrite\tests\test_getattr_nxyaml_removal.py .... [ 90%] +networkx\readwrite\tests\test_gexf.py ..................... [ 90%] +networkx\readwrite\tests\test_gml.py ..................... [ 91%] +networkx\readwrite\tests\test_gpickle.py .. [ 91%] +networkx\readwrite\tests\test_graph6.py ............... [ 91%] +networkx\readwrite\tests\test_graphml.py ..................sssssssssssssssssssssssssssssssssssssssssss [ 92%] +networkx\readwrite\tests\test_leda.py .. [ 92%] +networkx\readwrite\tests\test_p2g.py ... [ 92%] +networkx\readwrite\tests\test_pajek.py ........ [ 93%] +networkx\readwrite\tests\test_sparse6.py ................ [ 93%] +networkx\readwrite\tests\test_text.py ....... [ 93%] +networkx\testing\tests\test_utils.py ..................... [ 93%] +networkx\tests\test_all_random_functions.py s [ 93%] +networkx\tests\test_convert.py ............... [ 94%] +networkx\tests\test_convert_numpy.py ........................................................................... [ 95%] +networkx\tests\test_convert_pandas.py ...................... [ 96%] +networkx\tests\test_convert_scipy.py ..................... [ 96%] +networkx\tests\test_exceptions.py ....... [ 96%] +networkx\tests\test_import.py .. [ 96%] +networkx\tests\test_lazy_imports.py .... [ 96%] +networkx\tests\test_relabel.py ....................... [ 97%] +networkx\utils\tests\test__init.py . [ 97%] +networkx\utils\tests\test_contextmanager.py . [ 97%] +networkx\utils\tests\test_decorators.py ................................... [ 98%] +networkx\utils\tests\test_heaps.py .. [ 98%] +networkx\utils\tests\test_mapped_queue.py ........................................ [ 98%] +networkx\utils\tests\test_misc.py ...................................... [ 99%] +networkx\utils\tests\test_random_sequence.py .... [ 99%] +networkx\utils\tests\test_rcm.py .. [ 99%] +networkx\utils\tests\test_unionfind.py ..... [100%] + +=================================================== warnings summary ==================================================== +networkx\drawing\tests\test_pylab.py:419 + C:\Users\LocalUser\Desktop\networkx\networkx\drawing\tests\test_pylab.py:419: PytestUnknownMarkWarning: Unknown pytest.mark.mpl_image_compare - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html + @pytest.mark.mpl_image_compare + +networkx\utils\decorators.py:292 + C:\Users\LocalUser\Desktop\networkx\networkx\utils\decorators.py:292: DeprecationWarning: preserve_random_state is deprecated and will be removed in 3.0. + warnings.warn(msg, DeprecationWarning) + +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_ascent_fractional_solution +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_ascent_method_asymmetric +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent_asymmetric_3 +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent_fractional_asymmetric +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_asadpour_tsp + C:\Users\LocalUser\Desktop\networkx\networkx\algorithms\approximation\traveling_salesman.py:679: OptimizeWarning: A_eq does not appear to be of full row rank. To improve performance, check the problem formulation for redundant equality constraints. + program_result = optimize.linprog(c, A_eq=a_eq, b_eq=b_eq) + +networkx/classes/tests/test_ordered.py::TestOrderedFeatures::test_subgraph_order + C:\Users\LocalUser\Desktop\networkx\networkx\classes\tests\test_ordered.py:22: DeprecationWarning: OrderedDiGraph is deprecated and will be removed in version 3.0. + Use `DiGraph` instead, which guarantees order is preserved for + Python >= 3.7 + + cls.G = nx.OrderedDiGraph() + +networkx/linalg/tests/test_algebraic_connectivity.py::TestSpectralOrdering::test_cycle[lobpcg-False-expected_order0] + C:\Users\LocalUser\Desktop\networkx\networkx\linalg\algebraicconnectivity.py:301: UserWarning: Exited at iteration 10 with accuracies + [0.02743716] + not reaching the requested tolerance 1e-08. + sigma, X = sp.sparse.linalg.lobpcg( + +networkx/linalg/tests/test_algebraic_connectivity.py::TestSpectralOrdering::test_cycle[lobpcg-True-expected_order1] + C:\Users\LocalUser\Desktop\networkx\networkx\linalg\algebraicconnectivity.py:301: UserWarning: Exited at iteration 10 with accuracies + [0.00056623] + not reaching the requested tolerance 1e-08. + sigma, X = sp.sparse.linalg.lobpcg( + +-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html +========================= 4838 passed, 55 skipped, 3 xfailed, 11 warnings in 770.17s (0:12:50) ========================== \ No newline at end of file diff --git a/2022-round-1/peacelovingng/nx_tutorial_script.py b/2022-round-1/peacelovingng/nx_tutorial_script.py new file mode 100644 index 0000000..08274f0 --- /dev/null +++ b/2022-round-1/peacelovingng/nx_tutorial_script.py @@ -0,0 +1,31 @@ +# Import the libraries +import networkx as nx +import matplotlib.pyplot as plt + +# Create the DiGraph object +DG = nx.DiGraph() + +# Add nodes/edges of type int +DG.add_node(1) # add an initial node 1 +DG.add_edge(1, 2) # add an edge from 1 to 2 + +# Add nodes of type str +DG.add_node("alice") # add node "alice" +DG.add_node("bob") # add node "bob" + +# Add nodes/edges of type tuple +DG.add_edge("bob", (3, 4)) # link "bob" to new nodes 3, 4 +DG.add_edge(1, ("alice", "bob")) # add an edge from 1 to "alice" and "bob" +DG.add_edge(1, (4, 5)) # link node 1 to 3, 4 +DG.add_edges_from([(5, 6), (6, 7)]) # add edges from 5, 6 to 7 + +# Print the number of nodes and edges +print("The number of nodes in DG:", DG.number_of_nodes()) +print("The number of edges in DG:", DG.number_of_edges()) + +# Draw the DiGraph +nx.draw(DG, with_labels=True) + +# Calculate and print out the shortest path in DG +sp = nx.shortest_path(DG) +print("The shortest path in DG: ", sp) \ No newline at end of file diff --git a/2022-round-1/peacelovingng/nx_version.txt b/2022-round-1/peacelovingng/nx_version.txt new file mode 100644 index 0000000..5588ae8 --- /dev/null +++ b/2022-round-1/peacelovingng/nx_version.txt @@ -0,0 +1 @@ +2.7.1 \ No newline at end of file diff --git a/2022-round-1/shivani6320/nx_dev_test_output.txt b/2022-round-1/shivani6320/nx_dev_test_output.txt new file mode 100644 index 0000000..42bacdd --- /dev/null +++ b/2022-round-1/shivani6320/nx_dev_test_output.txt @@ -0,0 +1,267 @@ +================================================================================================================================================ test session starts ================================================================================================================================================ +platform win32 -- Python 3.10.0, pytest-7.1.1, pluggy-1.0.0 +rootdir: C:\Users\hp\Desktop\networkx +plugins: cov-3.0.0 +collected 4891 items / 3 skipped + +networkx\algorithms\approximation\tests\test_approx_clust_coeff.py ...... [ 0%] +networkx\algorithms\approximation\tests\test_clique.py ........ [ 0%] +networkx\algorithms\approximation\tests\test_connectivity.py .................. [ 0%] +networkx\algorithms\approximation\tests\test_distance_measures.py ........ [ 0%] +networkx\algorithms\approximation\tests\test_dominating_set.py ... [ 0%] +networkx\algorithms\approximation\tests\test_kcomponents.py ................ [ 1%] +networkx\algorithms\approximation\tests\test_matching.py . [ 1%] +networkx\algorithms\approximation\tests\test_maxcut.py ..... [ 1%] +networkx\algorithms\approximation\tests\test_ramsey.py . [ 1%] +networkx\algorithms\approximation\tests\test_steinertree.py .... [ 1%] +networkx\algorithms\approximation\tests\test_traveling_salesman.py ....................................s......s. [ 2%] +networkx\algorithms\approximation\tests\test_treewidth.py ............ [ 2%] +networkx\algorithms\approximation\tests\test_vertex_cover.py .... [ 2%] +networkx\algorithms\assortativity\tests\test_connectivity.py .......... [ 2%] +networkx\algorithms\assortativity\tests\test_correlation.py ................... [ 3%] +networkx\algorithms\assortativity\tests\test_mixing.py ................... [ 3%] +networkx\algorithms\assortativity\tests\test_neighbor_degree.py ...... [ 3%] +networkx\algorithms\assortativity\tests\test_pairs.py ........... [ 4%] +networkx\algorithms\bipartite\tests\test_basic.py ............... [ 4%] +networkx\algorithms\bipartite\tests\test_centrality.py ...... [ 4%] +networkx\algorithms\bipartite\tests\test_cluster.py ......... [ 4%] +networkx\algorithms\bipartite\tests\test_covering.py .... [ 4%] +networkx\algorithms\bipartite\tests\test_edgelist.py .............. [ 4%] +networkx\algorithms\bipartite\tests\test_generators.py .......... [ 5%] +networkx\algorithms\bipartite\tests\test_matching.py .................... [ 5%] +networkx\algorithms\bipartite\tests\test_matrix.py ........... [ 5%] +networkx\algorithms\bipartite\tests\test_project.py ................. [ 6%] +networkx\algorithms\bipartite\tests\test_redundancy.py ... [ 6%] +networkx\algorithms\bipartite\tests\test_spectral_bipartivity.py ... [ 6%] +networkx\algorithms\centrality\tests\test_betweenness_centrality.py ......................................... [ 7%] +networkx\algorithms\centrality\tests\test_betweenness_centrality_subset.py ................. [ 7%] +networkx\algorithms\centrality\tests\test_closeness_centrality.py ............. [ 7%] +networkx\algorithms\centrality\tests\test_current_flow_betweenness_centrality.py ................ [ 8%] +networkx\algorithms\centrality\tests\test_current_flow_betweenness_centrality_subset.py ......... [ 8%] +networkx\algorithms\centrality\tests\test_current_flow_closeness.py ... [ 8%] +networkx\algorithms\centrality\tests\test_degree_centrality.py ....... [ 8%] +networkx\algorithms\centrality\tests\test_dispersion.py ... [ 8%] +networkx\algorithms\centrality\tests\test_eigenvector_centrality.py ............ [ 8%] +networkx\algorithms\centrality\tests\test_group.py ........................ [ 9%] +networkx\algorithms\centrality\tests\test_harmonic_centrality.py ............. [ 9%] +networkx\algorithms\centrality\tests\test_katz_centrality.py .......................... [ 10%] +networkx\algorithms\centrality\tests\test_load_centrality.py ................. [ 10%] +networkx\algorithms\centrality\tests\test_percolation_centrality.py ... [ 10%] +networkx\algorithms\centrality\tests\test_reaching.py .............. [ 10%] +networkx\algorithms\centrality\tests\test_second_order_centrality.py ....... [ 10%] +networkx\algorithms\centrality\tests\test_subgraph.py ..... [ 10%] +networkx\algorithms\centrality\tests\test_trophic.py .......... [ 11%] +networkx\algorithms\centrality\tests\test_voterank.py ..... [ 11%] +networkx\algorithms\coloring\tests\test_coloring.py ................ [ 11%] +networkx\algorithms\community\tests\test_asyn_fluid.py ..... [ 11%] +networkx\algorithms\community\tests\test_centrality.py ..... [ 11%] +networkx\algorithms\community\tests\test_kclique.py ........ [ 12%] +networkx\algorithms\community\tests\test_kernighan_lin.py ........ [ 12%] +networkx\algorithms\community\tests\test_label_propagation.py ........... [ 12%] +networkx\algorithms\community\tests\test_louvain.py ........ [ 12%] +networkx\algorithms\community\tests\test_lukes.py .... [ 12%] +networkx\algorithms\community\tests\test_modularity_max.py ................. [ 12%] +networkx\algorithms\community\tests\test_quality.py ....... [ 13%] +networkx\algorithms\community\tests\test_utils.py .... [ 13%] +networkx\algorithms\components\tests\test_attracting.py .... [ 13%] +networkx\algorithms\components\tests\test_biconnected.py ............. [ 13%] +networkx\algorithms\components\tests\test_connected.py ........ [ 13%] +networkx\algorithms\components\tests\test_semiconnected.py ........ [ 13%] +networkx\algorithms\components\tests\test_strongly_connected.py .............. [ 14%] +networkx\algorithms\components\tests\test_weakly_connected.py ...... [ 14%] +networkx\algorithms\shortest_paths\tests\test_unweighted.py ............ [ 25%] +networkx\algorithms\shortest_paths\tests\test_weighted.py ..................................................... [ 26%] +networkx\algorithms\tests\test_asteroidal.py . [ 26%] +networkx\algorithms\tests\test_boundary.py ............. [ 26%] +networkx\algorithms\tests\test_bridges.py ...... [ 26%] +networkx\algorithms\tests\test_chains.py .... [ 26%] +networkx\algorithms\tests\test_chordal.py .......... [ 26%] +networkx\algorithms\tests\test_clique.py .............. [ 27%] +networkx\algorithms\tests\test_cluster.py ........................................ [ 27%] +networkx\algorithms\tests\test_communicability.py .. [ 27%] +networkx\algorithms\tests\test_core.py ............. [ 28%] +networkx\algorithms\tests\test_covering.py ........ [ 28%] +networkx\algorithms\tests\test_cuts.py ................. [ 28%] +networkx\algorithms\tests\test_cycles.py .................................. [ 29%] +networkx\algorithms\tests\test_d_separation.py ............. [ 29%] +networkx\algorithms\tests\test_dag.py ..................................................... [ 30%] +networkx\algorithms\tests\test_distance_measures.py ................................. [ 31%] +networkx\algorithms\tests\test_distance_regular.py ....... [ 31%] +networkx\algorithms\tests\test_dominance.py ...................... [ 32%] +networkx\algorithms\tests\test_dominating.py ..... [ 32%] +networkx\algorithms\tests\test_efficiency.py ....... [ 32%] +networkx\algorithms\tests\test_euler.py .............................. [ 32%] +networkx\algorithms\tests\test_graph_hashing.py ........................ [ 33%] +networkx\algorithms\tests\test_graphical.py ............. [ 33%] +networkx\algorithms\tests\test_hierarchy.py ..... [ 33%] +networkx\algorithms\tests\test_hybrid.py .. [ 33%] +networkx\algorithms\tests\test_isolate.py ... [ 33%] +networkx\algorithms\tests\test_link_prediction.py ......................................................................... [ 35%] +networkx\algorithms\tests\test_lowest_common_ancestors.py ......................... [ 35%] +networkx\algorithms\tests\test_matching.py ............................................ [ 36%] +networkx\algorithms\tests\test_max_weight_clique.py ..... [ 36%] +networkx\algorithms\tests\test_mis.py ........ [ 37%] +networkx\algorithms\tests\test_moral.py . [ 37%] +networkx\algorithms\tests\test_node_classification.py ............... [ 37%] +networkx\algorithms\tests\test_node_classification_deprecations.py .... [ 37%] +networkx\algorithms\tests\test_non_randomness.py ...... [ 37%] +networkx\algorithms\tests\test_planar_drawing.py ............ [ 37%] +networkx\algorithms\tests\test_planarity.py .............................. [ 38%] +networkx\algorithms\tests\test_polynomials.py ........ [ 38%] +networkx\algorithms\tests\test_reciprocity.py ..... [ 38%] +networkx\algorithms\tests\test_regular.py ............. [ 38%] +networkx\algorithms\tests\test_richclub.py ........ [ 39%] +networkx\algorithms\tests\test_similarity.py ............................................ [ 39%] +networkx\algorithms\tests\test_simple_paths.py ......................................................................... [ 41%] +networkx\algorithms\tests\test_smallworld.py .... [ 41%] +networkx\algorithms\tests\test_smetric.py .. [ 41%] +networkx\algorithms\tests\test_sparsifiers.py ....... [ 41%] +networkx\algorithms\tests\test_structuralholes.py ............ [ 41%] +networkx\algorithms\tests\test_summarization.py ................. [ 42%] +networkx\algorithms\tests\test_swap.py ............. [ 42%] +networkx\algorithms\tests\test_threshold.py .................. [ 42%] +networkx\algorithms\tests\test_tournament.py ..................... [ 43%] +networkx\algorithms\tests\test_triads.py ........ [ 43%] +networkx\algorithms\tests\test_vitality.py ...... [ 43%] +networkx\algorithms\tests\test_voronoi.py .......... [ 43%] +networkx\algorithms\tests\test_wiener.py .... [ 43%] +networkx\algorithms\traversal\tests\test_beamsearch.py .. [ 44%] +networkx\algorithms\traversal\tests\test_bfs.py .............. [ 44%] +networkx\algorithms\traversal\tests\test_dfs.py ................. [ 44%] +networkx\algorithms\traversal\tests\test_edgebfs.py ................ [ 44%] +networkx\algorithms\traversal\tests\test_edgedfs.py ............... [ 45%] +networkx\algorithms\tree\tests\test_branchings.py ........................... [ 45%] +networkx\algorithms\tree\tests\test_coding.py .............. [ 46%] +networkx\algorithms\tree\tests\test_decomposition.py ..... [ 46%] +networkx\algorithms\tree\tests\test_mst.py .............................................. [ 47%] +networkx\algorithms\tree\tests\test_operations.py ... [ 47%] +networkx\algorithms\tree\tests\test_recognition.py ......................... [ 47%] +networkx\classes\tests\test_coreviews.py ......................................................... [ 48%] +networkx\classes\tests\test_digraph.py ................................................................................ [ 50%] +networkx\classes\tests\test_digraph_historical.py .......................................... [ 51%] +networkx\classes\tests\test_filters.py ........... [ 51%] +networkx\classes\tests\test_function.py .................................................................... [ 53%] +networkx\classes\tests\test_graph.py .............................................................. [ 54%] +networkx\classes\tests\test_graph_historical.py .................................. [ 54%] +networkx\classes\tests\test_graphviews.py ................................... [ 55%] +networkx\classes\tests\test_multidigraph.py ............................................................................................. [ 57%] +networkx\classes\tests\test_multigraph.py .............................................................................. [ 59%] +networkx\classes\tests\test_ordered.py ..... [ 59%] +networkx\classes\tests\test_reportviews.py ............................................................................................................................................................................................................................................. [ 64%] +networkx\classes\tests\test_special.py ....................................................................................................................................................................................................................................................................... [ 69%] +.............................................................................................................................................................................................................................................................................................................. [ 75%] +............................................... [ 76%] +networkx\classes\tests\test_subgraphviews.py ................................ [ 77%] +networkx\drawing\tests\test_layout.py .......................... [ 77%] +networkx\drawing\tests\test_pylab.py ........................................................................................... [ 79%] +networkx\generators\tests\test_atlas.py ........ [ 79%] +networkx\generators\tests\test_classic.py .............................. [ 80%] +networkx\generators\tests\test_cographs.py . [ 80%] +networkx\generators\tests\test_community.py ................ [ 80%] +networkx\generators\tests\test_degree_seq.py ................... [ 81%] +networkx\generators\tests\test_directed.py ........ [ 81%] +networkx\generators\tests\test_duplication.py ....... [ 81%] +networkx\generators\tests\test_ego.py .. [ 81%] +networkx\generators\tests\test_expanders.py .... [ 81%] +networkx\generators\tests\test_geometric.py ....................... [ 82%] +networkx\generators\tests\test_harary_graph.py .. [ 82%] +networkx\generators\tests\test_internet_as_graphs.py ..... [ 82%] +networkx\generators\tests\test_intersection.py .... [ 82%] +networkx\generators\tests\test_interval_graph.py ........ [ 82%] +networkx\generators\tests\test_joint_degree_seq.py .... [ 82%] +networkx\generators\tests\test_lattice.py ...................... [ 83%] +networkx\generators\tests\test_line.py .............................. [ 83%] +networkx\generators\tests\test_mycielski.py ... [ 83%] +networkx\generators\tests\test_nonisomorphic_trees.py ..... [ 83%] +networkx\generators\tests\test_random_clustered.py .... [ 83%] +networkx\generators\tests\test_random_graphs.py ............................................................... [ 85%] +networkx\generators\tests\test_small.py ....................................... [ 85%] +networkx\generators\tests\test_spectral_graph_forge.py . [ 85%] +networkx\generators\tests\test_stochastic.py ...... [ 86%] +networkx\generators\tests\test_sudoku.py ...... [ 86%] +networkx\generators\tests\test_trees.py ....... [ 86%] +networkx\generators\tests\test_triads.py .. [ 86%] +networkx\linalg\tests\test_algebraic_connectivity.py ....................................................................................... [ 88%] +networkx\linalg\tests\test_attrmatrix.py ..... [ 88%] +networkx\linalg\tests\test_bethehessian.py . [ 88%] +networkx\linalg\tests\test_graphmatrix.py .... [ 88%] +networkx\linalg\tests\test_laplacian.py .... [ 88%] +networkx\linalg\tests\test_modularity.py ... [ 88%] +networkx\linalg\tests\test_spectrum.py ..... [ 88%] +networkx\readwrite\json_graph\tests\test_adjacency.py ...... [ 88%] +networkx\readwrite\json_graph\tests\test_cytoscape.py ........ [ 88%] +networkx\readwrite\json_graph\tests\test_jit.py ..... [ 89%] +networkx\readwrite\json_graph\tests\test_node_link.py ......... [ 89%] +networkx\readwrite\json_graph\tests\test_tree.py .... [ 89%] +networkx\readwrite\tests\test_adjlist.py .................. [ 89%] +networkx\readwrite\tests\test_edgelist.py .......................... [ 90%] +networkx\readwrite\tests\test_getattr_nxyaml_removal.py .... [ 90%] +networkx\readwrite\tests\test_gexf.py ..................... [ 90%] +networkx\readwrite\tests\test_gml.py ..................... [ 91%] +networkx\readwrite\tests\test_gpickle.py .. [ 91%] +networkx\readwrite\tests\test_graph6.py ............... [ 91%] +networkx\readwrite\tests\test_graphml.py ..................sssssssssssssssssssssssssssssssssssssssssss [ 92%] +networkx\readwrite\tests\test_leda.py .. [ 92%] +networkx\readwrite\tests\test_p2g.py ... [ 92%] +networkx\readwrite\tests\test_pajek.py ........ [ 93%] +networkx\readwrite\tests\test_sparse6.py ................ [ 93%] +networkx\readwrite\tests\test_text.py ....... [ 93%] +networkx\testing\tests\test_utils.py ..................... [ 93%] +networkx\tests\test_all_random_functions.py s [ 93%] +networkx\tests\test_convert.py ............... [ 94%] +networkx\tests\test_convert_numpy.py ........................................................................... [ 95%] +networkx\tests\test_convert_pandas.py ...................... [ 96%] +networkx\tests\test_convert_scipy.py ..................... [ 96%] +networkx\tests\test_exceptions.py ....... [ 96%] +networkx\tests\test_import.py .. [ 96%] +networkx\tests\test_lazy_imports.py .... [ 96%] +networkx\tests\test_relabel.py ....................... [ 97%] +networkx\utils\tests\test__init.py . [ 97%] +networkx\utils\tests\test_contextmanager.py . [ 97%] +networkx\utils\tests\test_decorators.py ................................... [ 98%] +networkx\utils\tests\test_heaps.py .. [ 98%] +networkx\utils\tests\test_mapped_queue.py ........................................ [ 98%] +networkx\utils\tests\test_misc.py ...................................... [ 99%] +networkx\utils\tests\test_random_sequence.py .... [ 99%] +networkx\utils\tests\test_rcm.py .. [ 99%] +networkx\utils\tests\test_unionfind.py ..... [100%] + +================================================================================================================================================= warnings summary ================================================================================================================================================== +networkx\drawing\tests\test_pylab.py:419 + C:\Users\hp\Desktop\networkx\networkx\drawing\tests\test_pylab.py:419: PytestUnknownMarkWarning: Unknown pytest.mark.mpl_image_compare - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html + @pytest.mark.mpl_image_compare + +networkx\utils\decorators.py:292 + C:\Users\hp\Desktop\networkx\networkx\utils\decorators.py:292: DeprecationWarning: preserve_random_state is deprecated and will be removed in 3.0. + warnings.warn(msg, DeprecationWarning) + +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_ascent_fractional_solution +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_ascent_method_asymmetric +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent_asymmetric_3 +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent_fractional_asymmetric +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_asadpour_tsp + C:\Users\hp\Desktop\networkx\networkx\algorithms\approximation\traveling_salesman.py:679: OptimizeWarning: A_eq does not appear to be of full row rank. To improve performance, check the problem formulation for redundant equality constraints. + program_result = optimize.linprog(c, A_eq=a_eq, b_eq=b_eq) + +networkx/classes/tests/test_ordered.py::TestOrderedFeatures::test_subgraph_order + C:\Users\hp\Desktop\networkx\networkx\classes\tests\test_ordered.py:22: DeprecationWarning: OrderedDiGraph is deprecated and will be removed in version 3.0. + Use `DiGraph` instead, which guarantees order is preserved for + Python >= 3.7 + + cls.G = nx.OrderedDiGraph() + +networkx/linalg/tests/test_algebraic_connectivity.py::TestSpectralOrdering::test_cycle[lobpcg-False-expected_order0] + C:\Users\hp\Desktop\networkx\networkx\linalg\algebraicconnectivity.py:301: UserWarning: Exited at iteration 10 with accuracies + [0.02743716] + not reaching the requested tolerance 1e-08. + sigma, X = sp.sparse.linalg.lobpcg( + +networkx/linalg/tests/test_algebraic_connectivity.py::TestSpectralOrdering::test_cycle[lobpcg-True-expected_order1] + C:\Users\hp\Desktop\networkx\networkx\linalg\algebraicconnectivity.py:301: UserWarning: Exited at iteration 10 with accuracies + [0.00056623] + not reaching the requested tolerance 1e-08. + sigma, X = sp.sparse.linalg.lobpcg( + +-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html +============================================================================================================================= 4838 passed, 56 skipped, 11 warnings in 116.31s (0:01:56) ============================================================================================================================= \ No newline at end of file diff --git a/2022-round-1/shivani6320/nx_tutorial_script.py b/2022-round-1/shivani6320/nx_tutorial_script.py new file mode 100644 index 0000000..0701724 --- /dev/null +++ b/2022-round-1/shivani6320/nx_tutorial_script.py @@ -0,0 +1,33 @@ +# Importing the libraries +import networkx as nx +import matplotlib.pyplot as plt + +# Creating DiGraph object +OG = nx.DiGraph() + +# Adding nodes of type int +OG.add_node(1) +OG.add_nodes_from([2,3]) #adds node through iterating from given list + +# Adding nodes of type str +OG.add_node("Smith") +OG.add_node("Sam") +OG.add_node("Roy") +OG.add_node("Jil") + +# Adding edges to nodes +OG.add_edge("Roy",1) # Roy-->1 +OG.add_edges_from([("Smith","Sam"),("Smith","Roy"),("Smith","Jil")]) # Smith-->Sam | Smith-->Roy | Smith-->Jil +OG.add_edges_from([("Sam",2),("Sam",3)]) # Sam-->2 | Sam-->3 +OG.add_edge("Jil",(4,5,6)) # Jil-->(4,5,6) + +# Drawing the DiGraph +nx.draw(OG, with_labels=True) + +# Calculating the shortest path and printing it +shortest_path = nx.shortest_path(OG) +print(shortest_path) + +# Printing the number of nodes and edges +print("Number of Nodes:", OG.number_of_nodes()) +print("Number of Edges:", OG.number_of_edges()) \ No newline at end of file diff --git a/2022-round-1/shivani6320/nx_version.txt b/2022-round-1/shivani6320/nx_version.txt new file mode 100644 index 0000000..5588ae8 --- /dev/null +++ b/2022-round-1/shivani6320/nx_version.txt @@ -0,0 +1 @@ +2.7.1 \ No newline at end of file diff --git a/2022-round-1/singhmansi25/nx_dev_test_output.txt b/2022-round-1/singhmansi25/nx_dev_test_output.txt new file mode 100644 index 0000000..12e0919 --- /dev/null +++ b/2022-round-1/singhmansi25/nx_dev_test_output.txt @@ -0,0 +1,307 @@ +=========================================================================== test session starts =========================================================================== +platform win32 -- Python 3.8.8, pytest-6.2.3, py-1.10.0, pluggy-0.13.1 +rootdir: C:\Users\lenovo\networkx +plugins: anyio-2.2.0 +collected 4927 items / 1 skipped / 4926 selected + +networkx\networkx\algorithms\approximation\tests\test_approx_clust_coeff.py ...... [ 0%] +networkx\networkx\algorithms\approximation\tests\test_clique.py ........ [ 0%] +networkx\networkx\algorithms\approximation\tests\test_connectivity.py .................. [ 0%] +networkx\networkx\algorithms\approximation\tests\test_distance_measures.py ........ [ 0%] +networkx\networkx\algorithms\approximation\tests\test_dominating_set.py ... [ 0%] +networkx\networkx\algorithms\approximation\tests\test_kcomponents.py ................ [ 1%] +networkx\networkx\algorithms\approximation\tests\test_matching.py . [ 1%] +networkx\networkx\algorithms\approximation\tests\test_maxcut.py ..... [ 1%] +networkx\networkx\algorithms\approximation\tests\test_ramsey.py . [ 1%] +networkx\networkx\algorithms\approximation\tests\test_steinertree.py .... [ 1%] +networkx\networkx\algorithms\approximation\tests\test_traveling_salesman.py ....................................s......s. [ 2%] +networkx\networkx\algorithms\approximation\tests\test_treewidth.py ............ [ 2%] +networkx\networkx\algorithms\approximation\tests\test_vertex_cover.py .... [ 2%] +networkx\networkx\algorithms\assortativity\tests\test_connectivity.py .......... [ 2%] +networkx\networkx\algorithms\assortativity\tests\test_correlation.py ................... [ 3%] +networkx\networkx\algorithms\assortativity\tests\test_mixing.py ................... [ 3%] +networkx\networkx\algorithms\assortativity\tests\test_neighbor_degree.py ...... [ 3%] +networkx\networkx\algorithms\assortativity\tests\test_pairs.py ........... [ 3%] +networkx\networkx\algorithms\bipartite\tests\test_basic.py ............... [ 4%] +networkx\networkx\algorithms\bipartite\tests\test_centrality.py ...... [ 4%] +networkx\networkx\algorithms\bipartite\tests\test_cluster.py ......... [ 4%] +networkx\networkx\algorithms\bipartite\tests\test_covering.py .... [ 4%] +networkx\networkx\algorithms\bipartite\tests\test_edgelist.py .............. [ 4%] +networkx\networkx\algorithms\bipartite\tests\test_generators.py .......... [ 5%] +networkx\networkx\algorithms\bipartite\tests\test_matching.py .................... [ 5%] +networkx\networkx\algorithms\bipartite\tests\test_matrix.py ........... [ 5%] +networkx\networkx\algorithms\bipartite\tests\test_project.py ................. [ 6%] +networkx\networkx\algorithms\bipartite\tests\test_redundancy.py ... [ 6%] +networkx\networkx\algorithms\bipartite\tests\test_spectral_bipartivity.py ... [ 6%] +networkx\networkx\algorithms\centrality\tests\test_betweenness_centrality.py ......................................... [ 7%] +networkx\networkx\algorithms\centrality\tests\test_betweenness_centrality_subset.py ................. [ 7%] +networkx\networkx\algorithms\centrality\tests\test_closeness_centrality.py ............. [ 7%] +networkx\networkx\algorithms\centrality\tests\test_current_flow_betweenness_centrality.py ................ [ 8%] +networkx\networkx\algorithms\centrality\tests\test_current_flow_betweenness_centrality_subset.py ......... [ 8%] +networkx\networkx\algorithms\centrality\tests\test_current_flow_closeness.py ... [ 8%] +networkx\networkx\algorithms\centrality\tests\test_degree_centrality.py ....... [ 8%] +networkx\networkx\algorithms\centrality\tests\test_dispersion.py ... [ 8%] +networkx\networkx\algorithms\centrality\tests\test_eigenvector_centrality.py ............ [ 8%] +networkx\networkx\algorithms\centrality\tests\test_group.py ........................ [ 9%] +networkx\networkx\algorithms\centrality\tests\test_harmonic_centrality.py ............. [ 9%] +networkx\networkx\algorithms\centrality\tests\test_katz_centrality.py .......................... [ 9%] +networkx\networkx\algorithms\centrality\tests\test_load_centrality.py ................. [ 10%] +networkx\networkx\algorithms\centrality\tests\test_percolation_centrality.py ... [ 10%] +networkx\networkx\algorithms\centrality\tests\test_reaching.py .............. [ 10%] +networkx\networkx\algorithms\centrality\tests\test_second_order_centrality.py ....... [ 10%] +networkx\networkx\algorithms\centrality\tests\test_subgraph.py ..... [ 10%] +networkx\networkx\algorithms\centrality\tests\test_trophic.py .......... [ 11%] +networkx\networkx\algorithms\centrality\tests\test_voterank.py ..... [ 11%] +networkx\networkx\algorithms\coloring\tests\test_coloring.py ................ [ 11%] +networkx\networkx\algorithms\community\tests\test_asyn_fluid.py ..... [ 11%] +networkx\networkx\algorithms\community\tests\test_centrality.py ..... [ 11%] +networkx\networkx\algorithms\community\tests\test_kclique.py ........ [ 11%] +networkx\networkx\algorithms\community\tests\test_kernighan_lin.py ........ [ 12%] +networkx\networkx\algorithms\community\tests\test_label_propagation.py ........... [ 12%] +networkx\networkx\algorithms\community\tests\test_louvain.py ........ [ 12%] +networkx\networkx\algorithms\community\tests\test_lukes.py .... [ 12%] +networkx\networkx\algorithms\community\tests\test_modularity_max.py ................. [ 12%] +networkx\networkx\algorithms\community\tests\test_quality.py ....... [ 13%] +networkx\networkx\algorithms\community\tests\test_utils.py .... [ 13%] +networkx\networkx\algorithms\components\tests\test_attracting.py .... [ 13%] +networkx\networkx\algorithms\components\tests\test_biconnected.py ............. [ 13%] +networkx\networkx\algorithms\components\tests\test_connected.py ........ [ 13%] +networkx\networkx\algorithms\components\tests\test_semiconnected.py ........ [ 13%] +networkx\networkx\algorithms\components\tests\test_strongly_connected.py .............. [ 14%] +networkx\networkx\algorithms\components\tests\test_weakly_connected.py ...... [ 14%] +networkx\networkx\algorithms\connectivity\tests\test_connectivity.py .................................. [ 14%] +networkx\networkx\algorithms\connectivity\tests\test_cuts.py ..................... [ 15%] +networkx\networkx\algorithms\connectivity\tests\test_disjoint_paths.py .................. [ 15%] +networkx\networkx\algorithms\connectivity\tests\test_edge_augmentation.py .................... [ 16%] +networkx\networkx\algorithms\connectivity\tests\test_edge_kcomponents.py ..................... [ 16%] +networkx\networkx\algorithms\connectivity\tests\test_kcomponents.py .sss...... [ 16%] +networkx\networkx\algorithms\connectivity\tests\test_kcutsets.py s........s..... [ 17%] +networkx\networkx\algorithms\connectivity\tests\test_stoer_wagner.py ..... [ 17%] +networkx\networkx\algorithms\flow\tests\test_gomory_hu.py ....s.... [ 17%] +networkx\networkx\algorithms\flow\tests\test_maxflow.py ........................... [ 17%] +networkx\networkx\algorithms\flow\tests\test_maxflow_large_graph.py ...s.. [ 17%] +networkx\networkx\algorithms\flow\tests\test_mincost.py ................... [ 18%] +networkx\networkx\algorithms\flow\tests\test_networksimplex.py ...................... [ 18%] +networkx\networkx\algorithms\isomorphism\tests\test_ismags.py .......... [ 18%] +networkx\networkx\algorithms\isomorphism\tests\test_isomorphism.py .... [ 19%] +networkx\networkx\algorithms\isomorphism\tests\test_isomorphvf2.py ............... [ 19%] +networkx\networkx\algorithms\isomorphism\tests\test_match_helpers.py .. [ 19%] +networkx\networkx\algorithms\isomorphism\tests\test_temporalisomorphvf2.py ............ [ 19%] +networkx\networkx\algorithms\isomorphism\tests\test_tree_isomorphism.py ..... [ 19%] +networkx\networkx\algorithms\isomorphism\tests\test_vf2userfunc.py ............................ [ 20%] +networkx\networkx\algorithms\link_analysis\tests\test_hits.py ........ [ 20%] +networkx\networkx\algorithms\link_analysis\tests\test_pagerank.py .................................................... [ 21%] +networkx\networkx\algorithms\minors\tests\test_contraction.py ............................... [ 22%] +networkx\networkx\algorithms\operators\tests\test_all.py .................. [ 22%] +networkx\networkx\algorithms\operators\tests\test_binary.py .................... [ 22%] +networkx\networkx\algorithms\operators\tests\test_product.py ........................... [ 23%] +networkx\networkx\algorithms\operators\tests\test_unary.py ... [ 23%] +networkx\networkx\algorithms\shortest_paths\tests\test_astar.py ............. [ 23%] +networkx\networkx\algorithms\shortest_paths\tests\test_dense.py ........ [ 23%] +networkx\networkx\algorithms\shortest_paths\tests\test_dense_numpy.py ....... [ 24%] +networkx\networkx\algorithms\shortest_paths\tests\test_generic.py ...................... [ 24%] +networkx\networkx\algorithms\shortest_paths\tests\test_unweighted.py ............ [ 24%] +networkx\networkx\algorithms\shortest_paths\tests\test_weighted.py ..................................................... [ 25%] +networkx\networkx\algorithms\tests\test_asteroidal.py . [ 25%] +networkx\networkx\algorithms\tests\test_boundary.py ............. [ 26%] +networkx\networkx\algorithms\tests\test_bridges.py ...... [ 26%] +networkx\networkx\algorithms\tests\test_chains.py .... [ 26%] +networkx\networkx\algorithms\tests\test_chordal.py .......... [ 26%] +networkx\networkx\algorithms\tests\test_clique.py .............. [ 26%] +networkx\networkx\algorithms\tests\test_cluster.py ........................................ [ 27%] +networkx\networkx\algorithms\tests\test_communicability.py .. [ 27%] +networkx\networkx\algorithms\tests\test_core.py ............. [ 27%] +networkx\networkx\algorithms\tests\test_covering.py ........ [ 28%] +networkx\networkx\algorithms\tests\test_cuts.py ................. [ 28%] +networkx\networkx\algorithms\tests\test_cycles.py .................................. [ 29%] +networkx\networkx\algorithms\tests\test_d_separation.py ............. [ 29%] +networkx\networkx\algorithms\tests\test_dag.py ..................................................... [ 30%] +networkx\networkx\algorithms\tests\test_distance_measures.py ................................. [ 31%] +networkx\networkx\algorithms\tests\test_distance_regular.py ....... [ 31%] +networkx\networkx\algorithms\tests\test_dominance.py ...................... [ 31%] +networkx\networkx\algorithms\tests\test_dominating.py ..... [ 31%] +networkx\networkx\algorithms\tests\test_efficiency.py ....... [ 32%] +networkx\networkx\algorithms\tests\test_euler.py .............................. [ 32%] +networkx\networkx\algorithms\tests\test_graph_hashing.py ........................ [ 33%] +networkx\networkx\algorithms\tests\test_graphical.py ............. [ 33%] +networkx\networkx\algorithms\tests\test_hierarchy.py ..... [ 33%] +networkx\networkx\algorithms\tests\test_hybrid.py .. [ 33%] +networkx\networkx\algorithms\tests\test_isolate.py ... [ 33%] +networkx\networkx\algorithms\tests\test_link_prediction.py ......................................................................... [ 35%] +networkx\networkx\algorithms\tests\test_lowest_common_ancestors.py ......................... [ 35%] +networkx\networkx\algorithms\tests\test_matching.py ............................................ [ 36%] +networkx\networkx\algorithms\tests\test_max_weight_clique.py ..... [ 36%] +networkx\networkx\algorithms\tests\test_mis.py ........ [ 36%] +networkx\networkx\algorithms\tests\test_moral.py . [ 36%] +networkx\networkx\algorithms\tests\test_node_classification.py ............... [ 37%] +networkx\networkx\algorithms\tests\test_node_classification_deprecations.py .... [ 37%] +networkx\networkx\algorithms\tests\test_non_randomness.py ...... [ 37%] +networkx\networkx\algorithms\tests\test_planar_drawing.py ............ [ 37%] +networkx\networkx\algorithms\tests\test_planarity.py .............................. [ 38%] +networkx\networkx\algorithms\tests\test_polynomials.py ........ [ 38%] +networkx\networkx\algorithms\tests\test_reciprocity.py ..... [ 38%] +networkx\networkx\algorithms\tests\test_regular.py ............. [ 38%] +networkx\networkx\algorithms\tests\test_richclub.py ........ [ 38%] +networkx\networkx\algorithms\tests\test_similarity.py ............................................ [ 39%] +networkx\networkx\algorithms\tests\test_simple_paths.py ......................................................................... [ 41%] +networkx\networkx\algorithms\tests\test_smallworld.py .... [ 41%] +networkx\networkx\algorithms\tests\test_smetric.py .. [ 41%] +networkx\networkx\algorithms\tests\test_sparsifiers.py ....... [ 41%] +networkx\networkx\algorithms\tests\test_structuralholes.py ............ [ 41%] +networkx\networkx\algorithms\tests\test_summarization.py ................. [ 42%] +networkx\networkx\algorithms\tests\test_swap.py ............. [ 42%] +networkx\networkx\algorithms\tests\test_threshold.py .................. [ 42%] +networkx\networkx\algorithms\tests\test_tournament.py ..................... [ 43%] +networkx\networkx\algorithms\tests\test_triads.py ........ [ 43%] +networkx\networkx\algorithms\tests\test_vitality.py ...... [ 43%] +networkx\networkx\algorithms\tests\test_voronoi.py .......... [ 43%] +networkx\networkx\algorithms\tests\test_wiener.py .... [ 43%] +networkx\networkx\algorithms\traversal\tests\test_beamsearch.py .. [ 43%] +networkx\networkx\algorithms\traversal\tests\test_bfs.py .............. [ 43%] +networkx\networkx\algorithms\traversal\tests\test_dfs.py ................. [ 44%] +networkx\networkx\algorithms\traversal\tests\test_edgebfs.py ................ [ 44%] +networkx\networkx\algorithms\traversal\tests\test_edgedfs.py ............... [ 44%] +networkx\networkx\algorithms\tree\tests\test_branchings.py ........................... [ 45%] +networkx\networkx\algorithms\tree\tests\test_coding.py .............. [ 45%] +networkx\networkx\algorithms\tree\tests\test_decomposition.py ..... [ 45%] +networkx\networkx\algorithms\tree\tests\test_mst.py .............................................. [ 46%] +networkx\networkx\algorithms\tree\tests\test_operations.py ... [ 46%] +networkx\networkx\algorithms\tree\tests\test_recognition.py ......................... [ 47%] +networkx\networkx\classes\tests\test_coreviews.py ......................................................... [ 48%] +networkx\networkx\classes\tests\test_digraph.py ................................................................................ [ 50%] +networkx\networkx\classes\tests\test_digraph_historical.py .......................................... [ 51%] +networkx\networkx\classes\tests\test_filters.py ........... [ 51%] +networkx\networkx\classes\tests\test_function.py .................................................................... [ 52%] +networkx\networkx\classes\tests\test_graph.py .............................................................. [ 53%] +networkx\networkx\classes\tests\test_graph_historical.py .................................. [ 54%] +networkx\networkx\classes\tests\test_graphviews.py ................................... [ 55%] +networkx\networkx\classes\tests\test_multidigraph.py ............................................................................................. [ 57%] +networkx\networkx\classes\tests\test_multigraph.py .............................................................................. [ 58%] +networkx\networkx\classes\tests\test_ordered.py ..... [ 58%] +networkx\networkx\classes\tests\test_reportviews.py ................................................................................................................ [ 61%] +............................................................................................................................. [ 63%] +networkx\networkx\classes\tests\test_special.py .................................................................................................................... [ 66%] +.................................................................................................................................................................... [ 69%] +.................................................................................................................................................................... [ 72%] +.................................................................................................................................................................... [ 76%] +.... [ 76%] +networkx\networkx\classes\tests\test_subgraphviews.py ................................ [ 76%] +networkx\networkx\drawing\tests\test_agraph.py .....................x..x........ [ 77%] +networkx\networkx\drawing\tests\test_layout.py .......................... [ 77%] +networkx\networkx\drawing\tests\test_pydot.py XXX [ 77%] +networkx\networkx\drawing\tests\test_pylab.py ........................................................................................... [ 79%] +networkx\networkx\generators\tests\test_atlas.py ........ [ 80%] +networkx\networkx\generators\tests\test_classic.py .............................. [ 80%] +networkx\networkx\generators\tests\test_cographs.py . [ 80%] +networkx\networkx\generators\tests\test_community.py ................ [ 80%] +networkx\networkx\generators\tests\test_degree_seq.py ................... [ 81%] +networkx\networkx\generators\tests\test_directed.py ........ [ 81%] +networkx\networkx\generators\tests\test_duplication.py ....... [ 81%] +networkx\networkx\generators\tests\test_ego.py .. [ 81%] +networkx\networkx\generators\tests\test_expanders.py .... [ 81%] +networkx\networkx\generators\tests\test_geometric.py ....................... [ 82%] +networkx\networkx\generators\tests\test_harary_graph.py .. [ 82%] +networkx\networkx\generators\tests\test_internet_as_graphs.py ..... [ 82%] +networkx\networkx\generators\tests\test_intersection.py .... [ 82%] +networkx\networkx\generators\tests\test_interval_graph.py ........ [ 82%] +networkx\networkx\generators\tests\test_joint_degree_seq.py .... [ 82%] +networkx\networkx\generators\tests\test_lattice.py ...................... [ 83%] +networkx\networkx\generators\tests\test_line.py .............................. [ 83%] +networkx\networkx\generators\tests\test_mycielski.py ... [ 83%] +networkx\networkx\generators\tests\test_nonisomorphic_trees.py ..... [ 83%] +networkx\networkx\generators\tests\test_random_clustered.py .... [ 84%] +networkx\networkx\generators\tests\test_random_graphs.py ............................................................... [ 85%] +networkx\networkx\generators\tests\test_small.py ....................................... [ 86%] +networkx\networkx\generators\tests\test_spectral_graph_forge.py . [ 86%] +networkx\networkx\generators\tests\test_stochastic.py ...... [ 86%] +networkx\networkx\generators\tests\test_sudoku.py ...... [ 86%] +networkx\networkx\generators\tests\test_trees.py ....... [ 86%] +networkx\networkx\generators\tests\test_triads.py .. [ 86%] +networkx\networkx\linalg\tests\test_algebraic_connectivity.py ....................................................................................... [ 88%] +networkx\networkx\linalg\tests\test_attrmatrix.py ..... [ 88%] +networkx\networkx\linalg\tests\test_bethehessian.py . [ 88%] +networkx\networkx\linalg\tests\test_graphmatrix.py .... [ 88%] +networkx\networkx\linalg\tests\test_laplacian.py .... [ 88%] +networkx\networkx\linalg\tests\test_modularity.py ... [ 88%] +networkx\networkx\linalg\tests\test_spectrum.py ..... [ 88%] +networkx\networkx\readwrite\json_graph\tests\test_adjacency.py ...... [ 88%] +networkx\networkx\readwrite\json_graph\tests\test_cytoscape.py ........ [ 89%] +networkx\networkx\readwrite\json_graph\tests\test_jit.py ..... [ 89%] +networkx\networkx\readwrite\json_graph\tests\test_node_link.py ......... [ 89%] +networkx\networkx\readwrite\json_graph\tests\test_tree.py .... [ 89%] +networkx\networkx\readwrite\tests\test_adjlist.py .................. [ 89%] +networkx\networkx\readwrite\tests\test_edgelist.py .......................... [ 90%] +networkx\networkx\readwrite\tests\test_getattr_nxyaml_removal.py .... [ 90%] +networkx\networkx\readwrite\tests\test_gexf.py ..................... [ 90%] +networkx\networkx\readwrite\tests\test_gml.py ..................... [ 91%] +networkx\networkx\readwrite\tests\test_gpickle.py .. [ 91%] +networkx\networkx\readwrite\tests\test_graph6.py ............... [ 91%] +networkx\networkx\readwrite\tests\test_graphml.py ............................................................. [ 92%] +networkx\networkx\readwrite\tests\test_leda.py .. [ 92%] +networkx\networkx\readwrite\tests\test_p2g.py ... [ 92%] +networkx\networkx\readwrite\tests\test_pajek.py ........ [ 93%] +networkx\networkx\readwrite\tests\test_sparse6.py ................ [ 93%] +networkx\networkx\readwrite\tests\test_text.py ....... [ 93%] +networkx\networkx\testing\tests\test_utils.py ..................... [ 93%] +networkx\networkx\tests\test_all_random_functions.py s [ 93%] +networkx\networkx\tests\test_convert.py ............... [ 94%] +networkx\networkx\tests\test_convert_numpy.py ........................................................................... [ 95%] +networkx\networkx\tests\test_convert_pandas.py ...................... [ 96%] +networkx\networkx\tests\test_convert_scipy.py ..................... [ 96%] +networkx\networkx\tests\test_exceptions.py ....... [ 96%] +networkx\networkx\tests\test_import.py .. [ 96%] +networkx\networkx\tests\test_lazy_imports.py .... [ 96%] +networkx\networkx\tests\test_relabel.py ....................... [ 97%] +networkx\networkx\utils\tests\test__init.py . [ 97%] +networkx\networkx\utils\tests\test_contextmanager.py . [ 97%] +networkx\networkx\utils\tests\test_decorators.py ................................... [ 98%] +networkx\networkx\utils\tests\test_heaps.py .. [ 98%] +networkx\networkx\utils\tests\test_mapped_queue.py ........................................ [ 99%] +networkx\networkx\utils\tests\test_misc.py ...................................... [ 99%] +networkx\networkx\utils\tests\test_random_sequence.py .... [ 99%] +networkx\networkx\utils\tests\test_rcm.py .. [ 99%] +networkx\networkx\utils\tests\test_unionfind.py ..... [100%] + +============================================================================ warnings summary ============================================================================= +D:\Python\lib\site-packages\pyreadline\py3k_compat.py:8 + D:\Python\lib\site-packages\pyreadline\py3k_compat.py:8: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3, and in 3.9 it will stop working + return isinstance(x, collections.Callable) + +networkx\networkx\drawing\tests\test_pylab.py:419 + C:\Users\lenovo\networkx\networkx\drawing\tests\test_pylab.py:419: PytestUnknownMarkWarning: Unknown pytest.mark.mpl_image_compare - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/mark.html + @pytest.mark.mpl_image_compare + +networkx\networkx\utils\decorators.py:292 + C:\Users\lenovo\networkx\networkx\utils\decorators.py:292: DeprecationWarning: preserve_random_state is deprecated and will be removed in 3.0. + warnings.warn(msg, DeprecationWarning) + +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_ascent_fractional_solution +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_ascent_method_asymmetric +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent_asymmetric_3 +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent_fractional_asymmetric +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_asadpour_tsp + C:\Users\lenovo\networkx\networkx\algorithms\approximation\traveling_salesman.py:679: OptimizeWarning: A_eq does not appear to be of full row rank. To improve performance, check the problem formulation for redundant equality constraints. + program_result = optimize.linprog(c, A_eq=a_eq, b_eq=b_eq) + +networkx/classes/tests/test_ordered.py::TestOrderedFeatures::test_subgraph_order + C:\Users\lenovo\networkx\networkx\classes\tests\test_ordered.py:22: DeprecationWarning: OrderedDiGraph is deprecated and will be removed in version 3.0. + Use `DiGraph` instead, which guarantees order is preserved for + Python >= 3.7 + + cls.G = nx.OrderedDiGraph() + +networkx/linalg/tests/test_algebraic_connectivity.py::TestSpectralOrdering::test_cycle[lobpcg-False-expected_order0] + C:\Users\lenovo\networkx\networkx\linalg\algebraicconnectivity.py:301: UserWarning: Exited at iteration 10 with accuracies + [0.02743716] + not reaching the requested tolerance 1e-08. + sigma, X = sp.sparse.linalg.lobpcg( + +networkx/linalg/tests/test_algebraic_connectivity.py::TestSpectralOrdering::test_cycle[lobpcg-True-expected_order1] + C:\Users\lenovo\networkx\networkx\linalg\algebraicconnectivity.py:301: UserWarning: Exited at iteration 10 with accuracies + [0.00056623] + not reaching the requested tolerance 1e-08. + sigma, X = sp.sparse.linalg.lobpcg( + +-- Docs: https://docs.pytest.org/en/stable/warnings.html +============================================= 4912 passed, 11 skipped, 2 xfailed, 3 xpassed, 12 warnings in 262.09s (0:04:22) ============================================= \ No newline at end of file diff --git a/2022-round-1/singhmansi25/nx_tutorial_script.py b/2022-round-1/singhmansi25/nx_tutorial_script.py new file mode 100644 index 0000000..f8922a7 --- /dev/null +++ b/2022-round-1/singhmansi25/nx_tutorial_script.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +""" +Created on Sun Apr 3 21:05:26 2022 + +@author: lenovo +""" +# import networkx and matplotlib library +import networkx as nx +import matplotlib.pyplot as plt +# creating DiGraph object DG +DG = nx.DiGraph() +# creating nodes 1,2,3,4 and connecting nodes 1->2 and 3->4 +DG.add_edges_from([(1,2),(3,4)]) +# connecting node 1 and 4: 4->1 +DG.add_edge(4,1) +# creating nodes 'tom' and 'jerry' and connecting 'tom'->'jerry' +DG.add_edge('tom', 'jerry') +# creating nodes 'dog' and 'cat' and connecting 'dog'->'cat' +DG.add_edge('dog','cat') +# connecting node 1 with 'cat' +DG.add_edge(1,'cat') +# creating tuples as nodes +DG.add_edge((100,121),(216,343)) +# connecting str node to tuple node +DG.add_edge('jerry',(216,343)) +# connecting 'cat'-> 3 +DG.add_edge('cat',3) +# adding weighted graph +DG.add_weighted_edges_from([(1,'tom', 0.5), ('dog',(216,343), 0.75)]) +# Drawing the DiGraph +nx.draw(DG, with_labels=True) +plt.draw() + +# Calculating the shortest path and printing it +sp = nx.shortest_path(DG) +print("Shortest path: ",sp) \ No newline at end of file diff --git a/2022-round-1/singhmansi25/nx_version.txt b/2022-round-1/singhmansi25/nx_version.txt new file mode 100644 index 0000000..860487c --- /dev/null +++ b/2022-round-1/singhmansi25/nx_version.txt @@ -0,0 +1 @@ +2.7.1 diff --git a/2022-round-1/unna97/nx_dev_test_output.txt b/2022-round-1/unna97/nx_dev_test_output.txt new file mode 100644 index 0000000..eb72c07 --- /dev/null +++ b/2022-round-1/unna97/nx_dev_test_output.txt @@ -0,0 +1,380 @@ +============================= test session starts ============================= +platform win32 -- Python 3.10.4, pytest-7.1.1, pluggy-1.0.0 +rootdir: C:\Users\HP\Desktop\Projects-Incomplete\outreachy_applications\networkx_contributions\networkx +plugins: cov-3.0.0 +collected 4891 items / 3 skipped + +networkx\algorithms\approximation\tests\test_approx_clust_coeff.py ..... [ 0%] +. [ 0%] +networkx\algorithms\approximation\tests\test_clique.py ........ [ 0%] +networkx\algorithms\approximation\tests\test_connectivity.py ........... [ 0%] +....... [ 0%] +networkx\algorithms\approximation\tests\test_distance_measures.py ...... [ 0%] +.. [ 0%] +networkx\algorithms\approximation\tests\test_dominating_set.py ... [ 0%] +networkx\algorithms\approximation\tests\test_kcomponents.py ............ [ 1%] +.... [ 1%] +networkx\algorithms\approximation\tests\test_matching.py . [ 1%] +networkx\algorithms\approximation\tests\test_maxcut.py ..... [ 1%] +networkx\algorithms\approximation\tests\test_ramsey.py . [ 1%] +networkx\algorithms\approximation\tests\test_steinertree.py .... [ 1%] +networkx\algorithms\approximation\tests\test_traveling_salesman.py ..... [ 1%] +...............................s......s. [ 2%] +networkx\algorithms\approximation\tests\test_treewidth.py ............ [ 2%] +networkx\algorithms\approximation\tests\test_vertex_cover.py .... [ 2%] +networkx\algorithms\assortativity\tests\test_connectivity.py .......... [ 2%] +networkx\algorithms\assortativity\tests\test_correlation.py ............ [ 3%] +....... [ 3%] +networkx\algorithms\assortativity\tests\test_mixing.py ................. [ 3%] +.. [ 3%] +networkx\algorithms\assortativity\tests\test_neighbor_degree.py ...... [ 3%] +networkx\algorithms\assortativity\tests\test_pairs.py ........... [ 4%] +networkx\algorithms\bipartite\tests\test_basic.py ............... [ 4%] +networkx\algorithms\bipartite\tests\test_centrality.py ...... [ 4%] +networkx\algorithms\bipartite\tests\test_cluster.py ......... [ 4%] +networkx\algorithms\bipartite\tests\test_covering.py .... [ 4%] +networkx\algorithms\bipartite\tests\test_edgelist.py .............. [ 4%] +networkx\algorithms\bipartite\tests\test_generators.py .......... [ 5%] +networkx\algorithms\bipartite\tests\test_matching.py ................... [ 5%] +. [ 5%] +networkx\algorithms\bipartite\tests\test_matrix.py ........... [ 5%] +networkx\algorithms\bipartite\tests\test_project.py ................. [ 6%] +networkx\algorithms\bipartite\tests\test_redundancy.py ... [ 6%] +networkx\algorithms\bipartite\tests\test_spectral_bipartivity.py ... [ 6%] +networkx\algorithms\centrality\tests\test_betweenness_centrality.py .... [ 6%] +..................................... [ 7%] +networkx\algorithms\centrality\tests\test_betweenness_centrality_subset.py . [ 7%] +................ [ 7%] +networkx\algorithms\centrality\tests\test_closeness_centrality.py ...... [ 7%] +....... [ 7%] +networkx\algorithms\centrality\tests\test_current_flow_betweenness_centrality.py . [ 7%] +............... [ 8%] +networkx\algorithms\centrality\tests\test_current_flow_betweenness_centrality_subset.py . [ 8%] +........ [ 8%] +networkx\algorithms\centrality\tests\test_current_flow_closeness.py ... [ 8%] +networkx\algorithms\centrality\tests\test_degree_centrality.py ....... [ 8%] +networkx\algorithms\centrality\tests\test_dispersion.py ... [ 8%] +networkx\algorithms\centrality\tests\test_eigenvector_centrality.py .... [ 8%] +........ [ 8%] +networkx\algorithms\centrality\tests\test_group.py ..................... [ 9%] +... [ 9%] +networkx\algorithms\centrality\tests\test_harmonic_centrality.py ....... [ 9%] +...... [ 9%] +networkx\algorithms\centrality\tests\test_katz_centrality.py ........... [ 9%] +............... [ 10%] +networkx\algorithms\centrality\tests\test_load_centrality.py ........... [ 10%] +...... [ 10%] +networkx\algorithms\centrality\tests\test_percolation_centrality.py ... [ 10%] +networkx\algorithms\centrality\tests\test_reaching.py .............. [ 10%] +networkx\algorithms\centrality\tests\test_second_order_centrality.py ... [ 10%] +.... [ 10%] +networkx\algorithms\centrality\tests\test_subgraph.py ..... [ 10%] +networkx\algorithms\centrality\tests\test_trophic.py .......... [ 11%] +networkx\algorithms\centrality\tests\test_voterank.py ..... [ 11%] +networkx\algorithms\coloring\tests\test_coloring.py ................ [ 11%] +networkx\algorithms\community\tests\test_asyn_fluid.py ..... [ 11%] +networkx\algorithms\community\tests\test_centrality.py ..... [ 11%] +networkx\algorithms\community\tests\test_kclique.py ........ [ 12%] +networkx\algorithms\community\tests\test_kernighan_lin.py ........ [ 12%] +networkx\algorithms\community\tests\test_label_propagation.py .......... [ 12%] +. [ 12%] +networkx\algorithms\community\tests\test_louvain.py ........ [ 12%] +networkx\algorithms\community\tests\test_lukes.py .... [ 12%] +networkx\algorithms\community\tests\test_modularity_max.py ............. [ 12%] +.... [ 12%] +networkx\algorithms\community\tests\test_quality.py ....... [ 13%] +networkx\algorithms\community\tests\test_utils.py .... [ 13%] +networkx\algorithms\components\tests\test_attracting.py .... [ 13%] +networkx\algorithms\components\tests\test_biconnected.py ............. [ 13%] +networkx\algorithms\components\tests\test_connected.py ........ [ 13%] +networkx\algorithms\components\tests\test_semiconnected.py ........ [ 13%] +networkx\algorithms\components\tests\test_strongly_connected.py ........ [ 14%] +...... [ 14%] +networkx\algorithms\components\tests\test_weakly_connected.py ...... [ 14%] +networkx\algorithms\connectivity\tests\test_connectivity.py ............ [ 14%] +...................... [ 14%] +networkx\algorithms\connectivity\tests\test_cuts.py .................... [ 15%] +. [ 15%] +networkx\algorithms\connectivity\tests\test_disjoint_paths.py .......... [ 15%] +........ [ 15%] +networkx\algorithms\connectivity\tests\test_edge_augmentation.py ....... [ 15%] +............. [ 16%] +networkx\algorithms\connectivity\tests\test_edge_kcomponents.py ........ [ 16%] +............. [ 16%] +networkx\algorithms\connectivity\tests\test_kcomponents.py .sss...... [ 16%] +networkx\algorithms\connectivity\tests\test_kcutsets.py s........s..... [ 17%] +networkx\algorithms\connectivity\tests\test_stoer_wagner.py ..... [ 17%] +networkx\algorithms\flow\tests\test_gomory_hu.py ....s.... [ 17%] +networkx\algorithms\flow\tests\test_maxflow.py ......................... [ 17%] +.. [ 17%] +networkx\algorithms\flow\tests\test_maxflow_large_graph.py ...s.. [ 18%] +networkx\algorithms\flow\tests\test_mincost.py ................... [ 18%] +networkx\algorithms\flow\tests\test_networksimplex.py .................. [ 18%] +.... [ 18%] +networkx\algorithms\isomorphism\tests\test_ismags.py .......... [ 19%] +networkx\algorithms\isomorphism\tests\test_isomorphism.py .... [ 19%] +networkx\algorithms\isomorphism\tests\test_isomorphvf2.py .............. [ 19%] +. [ 19%] +networkx\algorithms\isomorphism\tests\test_match_helpers.py .. [ 19%] +networkx\algorithms\isomorphism\tests\test_temporalisomorphvf2.py ...... [ 19%] +...... [ 19%] +networkx\algorithms\isomorphism\tests\test_tree_isomorphism.py ..... [ 19%] +networkx\algorithms\isomorphism\tests\test_vf2userfunc.py .............. [ 20%] +.............. [ 20%] +networkx\algorithms\link_analysis\tests\test_hits.py ........ [ 20%] +networkx\algorithms\link_analysis\tests\test_pagerank.py ............... [ 20%] +..................................... [ 21%] +networkx\algorithms\minors\tests\test_contraction.py ................... [ 22%] +............ [ 22%] +networkx\algorithms\operators\tests\test_all.py .................. [ 22%] +networkx\algorithms\operators\tests\test_binary.py .................... [ 23%] +networkx\algorithms\operators\tests\test_product.py .................... [ 23%] +....... [ 23%] +networkx\algorithms\operators\tests\test_unary.py ... [ 23%] +networkx\algorithms\shortest_paths\tests\test_astar.py ............. [ 24%] +networkx\algorithms\shortest_paths\tests\test_dense.py ........ [ 24%] +networkx\algorithms\shortest_paths\tests\test_dense_numpy.py ....... [ 24%] +networkx\algorithms\shortest_paths\tests\test_generic.py ............... [ 24%] +....... [ 24%] +networkx\algorithms\shortest_paths\tests\test_unweighted.py ............ [ 25%] + [ 25%] +networkx\algorithms\shortest_paths\tests\test_weighted.py .............. [ 25%] +....................................... [ 26%] +networkx\algorithms\tests\test_asteroidal.py . [ 26%] +networkx\algorithms\tests\test_boundary.py ............. [ 26%] +networkx\algorithms\tests\test_bridges.py ...... [ 26%] +networkx\algorithms\tests\test_chains.py .... [ 26%] +networkx\algorithms\tests\test_chordal.py .......... [ 26%] +networkx\algorithms\tests\test_clique.py .............. [ 27%] +networkx\algorithms\tests\test_cluster.py .............................. [ 27%] +.......... [ 27%] +networkx\algorithms\tests\test_communicability.py .. [ 27%] +networkx\algorithms\tests\test_core.py ............. [ 28%] +networkx\algorithms\tests\test_covering.py ........ [ 28%] +networkx\algorithms\tests\test_cuts.py ................. [ 28%] +networkx\algorithms\tests\test_cycles.py ............................... [ 29%] +... [ 29%] +networkx\algorithms\tests\test_d_separation.py ............. [ 29%] +networkx\algorithms\tests\test_dag.py .................................. [ 30%] +................... [ 30%] +networkx\algorithms\tests\test_distance_measures.py .................... [ 31%] +............. [ 31%] +networkx\algorithms\tests\test_distance_regular.py ....... [ 31%] +networkx\algorithms\tests\test_dominance.py ...................... [ 32%] +networkx\algorithms\tests\test_dominating.py ..... [ 32%] +networkx\algorithms\tests\test_efficiency.py ....... [ 32%] +networkx\algorithms\tests\test_euler.py .............................. [ 32%] +networkx\algorithms\tests\test_graph_hashing.py ........................ [ 33%] + [ 33%] +networkx\algorithms\tests\test_graphical.py ............. [ 33%] +networkx\algorithms\tests\test_hierarchy.py ..... [ 33%] +networkx\algorithms\tests\test_hybrid.py .. [ 33%] +networkx\algorithms\tests\test_isolate.py ... [ 33%] +networkx\algorithms\tests\test_link_prediction.py ...................... [ 34%] +................................................... [ 35%] +networkx\algorithms\tests\test_lowest_common_ancestors.py .............. [ 35%] +........... [ 35%] +networkx\algorithms\tests\test_matching.py ............................. [ 36%] +............... [ 36%] +networkx\algorithms\tests\test_max_weight_clique.py ..... [ 36%] +networkx\algorithms\tests\test_mis.py ........ [ 37%] +networkx\algorithms\tests\test_moral.py . [ 37%] +networkx\algorithms\tests\test_node_classification.py ............... [ 37%] +networkx\algorithms\tests\test_node_classification_deprecations.py .... [ 37%] +networkx\algorithms\tests\test_non_randomness.py ...... [ 37%] +networkx\algorithms\tests\test_planar_drawing.py ............ [ 37%] +networkx\algorithms\tests\test_planarity.py ............................ [ 38%] +.. [ 38%] +networkx\algorithms\tests\test_polynomials.py ........ [ 38%] +networkx\algorithms\tests\test_reciprocity.py ..... [ 38%] +networkx\algorithms\tests\test_regular.py ............. [ 38%] +networkx\algorithms\tests\test_richclub.py ........ [ 39%] +networkx\algorithms\tests\test_similarity.py ........................... [ 39%] +................. [ 39%] +networkx\algorithms\tests\test_simple_paths.py ......................... [ 40%] +................................................ [ 41%] +networkx\algorithms\tests\test_smallworld.py .... [ 41%] +networkx\algorithms\tests\test_smetric.py .. [ 41%] +networkx\algorithms\tests\test_sparsifiers.py ....... [ 41%] +networkx\algorithms\tests\test_structuralholes.py ............ [ 41%] +networkx\algorithms\tests\test_summarization.py ................. [ 42%] +networkx\algorithms\tests\test_swap.py ............. [ 42%] +networkx\algorithms\tests\test_threshold.py .................. [ 42%] +networkx\algorithms\tests\test_tournament.py ..................... [ 43%] +networkx\algorithms\tests\test_triads.py ........ [ 43%] +networkx\algorithms\tests\test_vitality.py ...... [ 43%] +networkx\algorithms\tests\test_voronoi.py .......... [ 43%] +networkx\algorithms\tests\test_wiener.py .... [ 43%] +networkx\algorithms\traversal\tests\test_beamsearch.py .. [ 44%] +networkx\algorithms\traversal\tests\test_bfs.py .............. [ 44%] +networkx\algorithms\traversal\tests\test_dfs.py ................. [ 44%] +networkx\algorithms\traversal\tests\test_edgebfs.py ................ [ 44%] +networkx\algorithms\traversal\tests\test_edgedfs.py ............... [ 45%] +networkx\algorithms\tree\tests\test_branchings.py ...................... [ 45%] +..... [ 45%] +networkx\algorithms\tree\tests\test_coding.py .............. [ 46%] +networkx\algorithms\tree\tests\test_decomposition.py ..... [ 46%] +networkx\algorithms\tree\tests\test_mst.py ............................. [ 46%] +................. [ 47%] +networkx\algorithms\tree\tests\test_operations.py ... [ 47%] +networkx\algorithms\tree\tests\test_recognition.py ..................... [ 47%] +.... [ 47%] +networkx\classes\tests\test_coreviews.py ............................... [ 48%] +.......................... [ 48%] +networkx\classes\tests\test_digraph.py ................................. [ 49%] +............................................... [ 50%] +networkx\classes\tests\test_digraph_historical.py ...................... [ 50%] +.................... [ 51%] +networkx\classes\tests\test_filters.py ........... [ 51%] +networkx\classes\tests\test_function.py ................................ [ 52%] +.................................... [ 53%] +networkx\classes\tests\test_graph.py ................................... [ 53%] +........................... [ 54%] +networkx\classes\tests\test_graph_historical.py ........................ [ 54%] +.......... [ 54%] +networkx\classes\tests\test_graphviews.py .............................. [ 55%] +..... [ 55%] +networkx\classes\tests\test_multidigraph.py ............................ [ 56%] +................................................................. [ 57%] +networkx\classes\tests\test_multigraph.py .............................. [ 58%] +................................................ [ 59%] +networkx\classes\tests\test_ordered.py ..... [ 59%] +networkx\classes\tests\test_reportviews.py ............................. [ 59%] +........................................................................ [ 61%] +........................................................................ [ 62%] +................................................................ [ 64%] +networkx\classes\tests\test_special.py ................................. [ 64%] +........................................................................ [ 66%] +........................................................................ [ 67%] +........................................................................ [ 69%] +........................................................................ [ 70%] +........................................................................ [ 72%] +........................................................................ [ 73%] +........................................................................ [ 75%] +........................................................................ [ 76%] +... [ 76%] +networkx\classes\tests\test_subgraphviews.py ........................... [ 77%] +..... [ 77%] +networkx\drawing\tests\test_layout.py .......................... [ 77%] +networkx\drawing\tests\test_pylab.py ................................... [ 78%] +........................................................ [ 79%] +networkx\generators\tests\test_atlas.py ........ [ 79%] +networkx\generators\tests\test_classic.py .............................. [ 80%] + [ 80%] +networkx\generators\tests\test_cographs.py . [ 80%] +networkx\generators\tests\test_community.py ................ [ 80%] +networkx\generators\tests\test_degree_seq.py ................... [ 81%] +networkx\generators\tests\test_directed.py ........ [ 81%] +networkx\generators\tests\test_duplication.py ....... [ 81%] +networkx\generators\tests\test_ego.py .. [ 81%] +networkx\generators\tests\test_expanders.py .... [ 81%] +networkx\generators\tests\test_geometric.py ....................... [ 82%] +networkx\generators\tests\test_harary_graph.py .. [ 82%] +networkx\generators\tests\test_internet_as_graphs.py ..... [ 82%] +networkx\generators\tests\test_intersection.py .... [ 82%] +networkx\generators\tests\test_interval_graph.py ........ [ 82%] +networkx\generators\tests\test_joint_degree_seq.py .... [ 82%] +networkx\generators\tests\test_lattice.py ...................... [ 83%] +networkx\generators\tests\test_line.py .............................. [ 83%] +networkx\generators\tests\test_mycielski.py ... [ 83%] +networkx\generators\tests\test_nonisomorphic_trees.py ..... [ 83%] +networkx\generators\tests\test_random_clustered.py .... [ 83%] +networkx\generators\tests\test_random_graphs.py ........................ [ 84%] +....................................... [ 85%] +networkx\generators\tests\test_small.py ................................ [ 85%] +....... [ 85%] +networkx\generators\tests\test_spectral_graph_forge.py . [ 85%] +networkx\generators\tests\test_stochastic.py ...... [ 86%] +networkx\generators\tests\test_sudoku.py ...... [ 86%] +networkx\generators\tests\test_trees.py ....... [ 86%] +networkx\generators\tests\test_triads.py .. [ 86%] +networkx\linalg\tests\test_algebraic_connectivity.py ................... [ 86%] +.................................................................... [ 88%] +networkx\linalg\tests\test_attrmatrix.py ..... [ 88%] +networkx\linalg\tests\test_bethehessian.py . [ 88%] +networkx\linalg\tests\test_graphmatrix.py .... [ 88%] +networkx\linalg\tests\test_laplacian.py .... [ 88%] +networkx\linalg\tests\test_modularity.py ... [ 88%] +networkx\linalg\tests\test_spectrum.py ..... [ 88%] +networkx\readwrite\json_graph\tests\test_adjacency.py ...... [ 88%] +networkx\readwrite\json_graph\tests\test_cytoscape.py ........ [ 88%] +networkx\readwrite\json_graph\tests\test_jit.py ..... [ 89%] +networkx\readwrite\json_graph\tests\test_node_link.py ......... [ 89%] +networkx\readwrite\json_graph\tests\test_tree.py .... [ 89%] +networkx\readwrite\tests\test_adjlist.py .................. [ 89%] +networkx\readwrite\tests\test_edgelist.py .......................... [ 90%] +networkx\readwrite\tests\test_getattr_nxyaml_removal.py .... [ 90%] +networkx\readwrite\tests\test_gexf.py ..................... [ 90%] +networkx\readwrite\tests\test_gml.py ..................... [ 91%] +networkx\readwrite\tests\test_gpickle.py .. [ 91%] +networkx\readwrite\tests\test_graph6.py ............... [ 91%] +networkx\readwrite\tests\test_graphml.py ..................sssssssssssss [ 92%] +ssssssssssssssssssssssssssssss [ 92%] +networkx\readwrite\tests\test_leda.py .. [ 92%] +networkx\readwrite\tests\test_p2g.py ... [ 92%] +networkx\readwrite\tests\test_pajek.py ........ [ 93%] +networkx\readwrite\tests\test_sparse6.py ................ [ 93%] +networkx\readwrite\tests\test_text.py ....... [ 93%] +networkx\testing\tests\test_utils.py ..................... [ 93%] +networkx\tests\test_all_random_functions.py s [ 93%] +networkx\tests\test_convert.py ............... [ 94%] +networkx\tests\test_convert_numpy.py ................................... [ 94%] +........................................ [ 95%] +networkx\tests\test_convert_pandas.py ...................... [ 96%] +networkx\tests\test_convert_scipy.py ..................... [ 96%] +networkx\tests\test_exceptions.py ....... [ 96%] +networkx\tests\test_import.py .. [ 96%] +networkx\tests\test_lazy_imports.py .... [ 96%] +networkx\tests\test_relabel.py ....................... [ 97%] +networkx\utils\tests\test__init.py . [ 97%] +networkx\utils\tests\test_contextmanager.py . [ 97%] +networkx\utils\tests\test_decorators.py ................................ [ 98%] +... [ 98%] +networkx\utils\tests\test_heaps.py .. [ 98%] +networkx\utils\tests\test_mapped_queue.py .............................. [ 98%] +.......... [ 98%] +networkx\utils\tests\test_misc.py ...................................... [ 99%] + [ 99%] +networkx\utils\tests\test_random_sequence.py .... [ 99%] +networkx\utils\tests\test_rcm.py .. [ 99%] +networkx\utils\tests\test_unionfind.py ..... [100%] + +============================== warnings summary =============================== +networkx\drawing\tests\test_pylab.py:419 + C:\Users\HP\Desktop\Projects-Incomplete\outreachy_applications\networkx_contributions\networkx\networkx\drawing\tests\test_pylab.py:419: PytestUnknownMarkWarning: Unknown pytest.mark.mpl_image_compare - is this a typo? You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html + @pytest.mark.mpl_image_compare + +networkx\utils\decorators.py:292 + C:\Users\HP\Desktop\Projects-Incomplete\outreachy_applications\networkx_contributions\networkx\networkx\utils\decorators.py:292: DeprecationWarning: preserve_random_state is deprecated and will be removed in 3.0. + warnings.warn(msg, DeprecationWarning) + +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_ascent_fractional_solution +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_ascent_method_asymmetric +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent_asymmetric_3 +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_held_karp_ascent_fractional_asymmetric +networkx/algorithms/approximation/tests/test_traveling_salesman.py::test_asadpour_tsp + C:\Users\HP\Desktop\Projects-Incomplete\outreachy_applications\networkx_contributions\networkx\networkx\algorithms\approximation\traveling_salesman.py:679: OptimizeWarning: A_eq does not appear to be of full row rank. To improve performance, check the problem formulation for redundant equality constraints. + program_result = optimize.linprog(c, A_eq=a_eq, b_eq=b_eq) + +networkx/classes/tests/test_ordered.py::TestOrderedFeatures::test_subgraph_order + C:\Users\HP\Desktop\Projects-Incomplete\outreachy_applications\networkx_contributions\networkx\networkx\classes\tests\test_ordered.py:22: DeprecationWarning: OrderedDiGraph is deprecated and will be removed in version 3.0. + Use `DiGraph` instead, which guarantees order is preserved for + Python >= 3.7 + + cls.G = nx.OrderedDiGraph() + +networkx/linalg/tests/test_algebraic_connectivity.py::TestSpectralOrdering::test_cycle[lobpcg-False-expected_order0] + C:\Users\HP\Desktop\Projects-Incomplete\outreachy_applications\networkx_contributions\networkx\networkx\linalg\algebraicconnectivity.py:301: UserWarning: Exited at iteration 10 with accuracies + [0.02743716] + not reaching the requested tolerance 1e-08. + sigma, X = sp.sparse.linalg.lobpcg( + +networkx/linalg/tests/test_algebraic_connectivity.py::TestSpectralOrdering::test_cycle[lobpcg-True-expected_order1] + C:\Users\HP\Desktop\Projects-Incomplete\outreachy_applications\networkx_contributions\networkx\networkx\linalg\algebraicconnectivity.py:301: UserWarning: Exited at iteration 10 with accuracies + [0.00056623] + not reaching the requested tolerance 1e-08. + sigma, X = sp.sparse.linalg.lobpcg( + +-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html +========== 4838 passed, 56 skipped, 11 warnings in 127.87s (0:02:07) ========== diff --git a/2022-round-1/unna97/nx_tutorial_script.py b/2022-round-1/unna97/nx_tutorial_script.py new file mode 100644 index 0000000..f12e027 --- /dev/null +++ b/2022-round-1/unna97/nx_tutorial_script.py @@ -0,0 +1,126 @@ +import networkx as nx +import matplotlib.pyplot as plt +import matplotlib.animation as animation +import random + +print(nx.__version__) + + +def highlight_path_given(path_highlight, position, color="yellow", alpha=0.8, width=5): + + nx.draw_networkx_edges( + example_directed_graph, + edgelist=path_highlight, + pos=position, + edge_color=color, + alpha=alpha, + ax=ax, + width=width, + ) + + nx.draw(example_directed_graph, pos=position, ax=ax, with_labels=True) + + +def update_fig(i): + ax.clear() + print(i) + highlight_path_given(path_edges[i], position) + fig.suptitle(f"Path {i + 1} of {len(path_edges)}") + + +def create_animation_highlight_paths(path_edges): + + ani = animation.FuncAnimation( + fig, + update_fig, + frames=len(path_edges), + ) + + gif_file_path = r"shortest_paths.gif" + writergif = animation.PillowWriter(fps=1) + ani.save(gif_file_path, writer=writergif) + return ani + + +if __name__ == "__main__": + ### Intializing the graph: + example_directed_graph = nx.DiGraph() + + ### Adding nodes from list: + random_nodes = ["node_string", 10, 10, 12, (1, 22), "red", "green", 36, "blue"] + example_directed_graph.add_nodes_from(random_nodes) + + ### Only unique node_values will be added + print("nodes added:", example_directed_graph.nodes()) + + ### Adding random edges between nodes: + for i in range(10): + example_directed_graph.add_edge( + random.choice(random_nodes), random.choice(random_nodes) + ) + + ### Edges will be also added only once, above will create at max 10: + print("edges added:", example_directed_graph.edges()) + print("number of edges added:", example_directed_graph.number_of_edges()) + + ### Finding shortest paths between nodes in an unweighted directed graph: + ###In case of multiple shortest paths between two pair of nodes, only one is returned in methods belows: + + ### Method 1: + print( + "Method 1 shortest path between nodes:", + nx.shortest_path(example_directed_graph), + ) + + ### Method 2: Get the generator of all pairs shortest paths: + print( + "Method 2 shortest path between nodes:", + dict(nx.all_pairs_shortest_path(example_directed_graph)), + ) + + ### Method 3: Get the generator of single source shortest paths (for all nodes): + for node in example_directed_graph.nodes(): + print( + f"Method 3 shortest path between {node} and other reachable nodes", + dict(nx.single_source_shortest_path(example_directed_graph, node)), + ) + + ### Plot the graph: + nx.draw( + example_directed_graph, with_labels=True, node_size=100, alpha=1, linewidths=10 + ) + plt.show() + + ### Create a gif, highlighting the shortest paths: + position = nx.spring_layout(example_directed_graph) + fig, ax = plt.subplots(figsize=(10, 10)) + plt.close() + paths = nx.shortest_path(example_directed_graph) + path_edges = [] + + for source_node in paths: + for target_node in paths[source_node]: + path = paths[source_node][target_node] + path_edge = list(zip(path, path[1:])) + path_edges.append(path_edge) + print(path_edges) + + create_animation_highlight_paths(path_edges) + + ### All shortest paths between pairs of node: + print("All shortest paths between all pairs of nodes:\n") + + for source_node in paths: + for target_node in paths[source_node]: + print( + "source_node:", + source_node, + "target_node:", + target_node, + "\npaths:", + list( + nx.all_shortest_paths( + example_directed_graph, source=source_node, target=target_node + ) + ), + ) diff --git a/2022-round-1/unna97/nx_version.txt b/2022-round-1/unna97/nx_version.txt new file mode 100644 index 0000000..860487c --- /dev/null +++ b/2022-round-1/unna97/nx_version.txt @@ -0,0 +1 @@ +2.7.1