From a0787151a9a78f61606f23174e86d6412f898d00 Mon Sep 17 00:00:00 2001 From: manueldilullo Date: Mon, 11 Oct 2021 16:39:35 +0200 Subject: [PATCH 1/6] added complete graph generator function --- graphs/complete_graph_generator.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 graphs/complete_graph_generator.py diff --git a/graphs/complete_graph_generator.py b/graphs/complete_graph_generator.py new file mode 100644 index 000000000000..4e41f0b60a1b --- /dev/null +++ b/graphs/complete_graph_generator.py @@ -0,0 +1,24 @@ +""" +* Author: Manuel Di Lullo (https://github.com/manueldilullo) +* Python Version: 3.9 +* Description: Complete graphs generator. Uses graphs represented with an adjacency list +""" + +def complete_graph(n): + """ + function that generate a complete graph with n vertices + @input: n (number of vertices), directed (False if the graph is undirected, True otherwise) + @example: + >>> print(complete_graph(3)) + {0: [1, 2], 1: [2], 2: []} + """ + g = {} + for i in range(n): + g[i] = [] + for j in range(0,n): + if i != j: + g[i].append(j) + return g + +if __name__ == "__main__": + print(f"Complete graph:\n{complete_graph(5)}") \ No newline at end of file From 64903275090564d5f4eba3567e34854da9f37a60 Mon Sep 17 00:00:00 2001 From: manueldilullo Date: Mon, 11 Oct 2021 16:47:23 +0200 Subject: [PATCH 2/6] added doctest, type hints, wikipedia explanation --- graphs/complete_graph_generator.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/graphs/complete_graph_generator.py b/graphs/complete_graph_generator.py index 4e41f0b60a1b..f657f8d01d6e 100644 --- a/graphs/complete_graph_generator.py +++ b/graphs/complete_graph_generator.py @@ -2,9 +2,11 @@ * Author: Manuel Di Lullo (https://github.com/manueldilullo) * Python Version: 3.9 * Description: Complete graphs generator. Uses graphs represented with an adjacency list + +URL: https://en.wikipedia.org/wiki/Complete_graph """ -def complete_graph(n): +def complete_graph(n:int): """ function that generate a complete graph with n vertices @input: n (number of vertices), directed (False if the graph is undirected, True otherwise) @@ -21,4 +23,7 @@ def complete_graph(n): return g if __name__ == "__main__": - print(f"Complete graph:\n{complete_graph(5)}") \ No newline at end of file + import doctest + doctest.testmod() + + # print(f"Complete graph:\n{complete_graph(5)}") \ No newline at end of file From be997e672aa0520216e90658cb043aaac1f9b214 Mon Sep 17 00:00:00 2001 From: manueldilullo Date: Mon, 11 Oct 2021 16:48:42 +0200 Subject: [PATCH 3/6] added return type hint for function complete_graph --- graphs/complete_graph_generator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/graphs/complete_graph_generator.py b/graphs/complete_graph_generator.py index f657f8d01d6e..d1033f70a155 100644 --- a/graphs/complete_graph_generator.py +++ b/graphs/complete_graph_generator.py @@ -6,7 +6,7 @@ URL: https://en.wikipedia.org/wiki/Complete_graph """ -def complete_graph(n:int): +def complete_graph(n:int) -> dict: """ function that generate a complete graph with n vertices @input: n (number of vertices), directed (False if the graph is undirected, True otherwise) From 54ecb1e692ceaf3c1f488abfad2bb8c74dff7ad0 Mon Sep 17 00:00:00 2001 From: manueldilullo Date: Mon, 11 Oct 2021 16:50:22 +0200 Subject: [PATCH 4/6] added descriptive name for the parameter: n --- graphs/complete_graph_generator.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/graphs/complete_graph_generator.py b/graphs/complete_graph_generator.py index d1033f70a155..81d376464599 100644 --- a/graphs/complete_graph_generator.py +++ b/graphs/complete_graph_generator.py @@ -6,7 +6,7 @@ URL: https://en.wikipedia.org/wiki/Complete_graph """ -def complete_graph(n:int) -> dict: +def complete_graph(vertices_number:int) -> dict: """ function that generate a complete graph with n vertices @input: n (number of vertices), directed (False if the graph is undirected, True otherwise) @@ -15,9 +15,9 @@ def complete_graph(n:int) -> dict: {0: [1, 2], 1: [2], 2: []} """ g = {} - for i in range(n): + for i in range(vertices_number): g[i] = [] - for j in range(0,n): + for j in range(0,vertices_number): if i != j: g[i].append(j) return g From 377f378b9d10fd3fdfde31bc02ecde49eb241c70 Mon Sep 17 00:00:00 2001 From: manueldilullo Date: Mon, 11 Oct 2021 20:25:59 +0200 Subject: [PATCH 5/6] validated using pre-commit --- graphs/complete_graph_generator.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/graphs/complete_graph_generator.py b/graphs/complete_graph_generator.py index 81d376464599..c69a720ccf28 100644 --- a/graphs/complete_graph_generator.py +++ b/graphs/complete_graph_generator.py @@ -1,15 +1,17 @@ """ * Author: Manuel Di Lullo (https://github.com/manueldilullo) * Python Version: 3.9 -* Description: Complete graphs generator. Uses graphs represented with an adjacency list +* Description: Complete graphs generator. Uses graphs represented with an adjacency list URL: https://en.wikipedia.org/wiki/Complete_graph """ -def complete_graph(vertices_number:int) -> dict: + +def complete_graph(vertices_number: int) -> dict: """ - function that generate a complete graph with n vertices - @input: n (number of vertices), directed (False if the graph is undirected, True otherwise) + Generates a complete graph with n vertices + @input: n (number of vertices), + directed (False if the graph is undirected, True otherwise) @example: >>> print(complete_graph(3)) {0: [1, 2], 1: [2], 2: []} @@ -17,13 +19,15 @@ def complete_graph(vertices_number:int) -> dict: g = {} for i in range(vertices_number): g[i] = [] - for j in range(0,vertices_number): + for j in range(0, vertices_number): if i != j: g[i].append(j) return g + if __name__ == "__main__": import doctest + doctest.testmod() - # print(f"Complete graph:\n{complete_graph(5)}") \ No newline at end of file + # print(f"Complete graph:\n{complete_graph(5)}") From fa3b8f6a0e1fc39cb71837a35a3ba25dabe26e7f Mon Sep 17 00:00:00 2001 From: manueldilullo Date: Tue, 12 Oct 2021 16:53:36 +0200 Subject: [PATCH 6/6] fixed doctest --- graphs/complete_graph_generator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/graphs/complete_graph_generator.py b/graphs/complete_graph_generator.py index c69a720ccf28..7b8fe837727c 100644 --- a/graphs/complete_graph_generator.py +++ b/graphs/complete_graph_generator.py @@ -14,7 +14,7 @@ def complete_graph(vertices_number: int) -> dict: directed (False if the graph is undirected, True otherwise) @example: >>> print(complete_graph(3)) - {0: [1, 2], 1: [2], 2: []} + {0: [1, 2], 1: [0, 2], 2: [0, 1]} """ g = {} for i in range(vertices_number):