summaryrefslogtreecommitdiff
path: root/ero1/src/demo/demo_cost.py
diff options
context:
space:
mode:
Diffstat (limited to 'ero1/src/demo/demo_cost.py')
-rw-r--r--ero1/src/demo/demo_cost.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/ero1/src/demo/demo_cost.py b/ero1/src/demo/demo_cost.py
new file mode 100644
index 0000000..573e367
--- /dev/null
+++ b/ero1/src/demo/demo_cost.py
@@ -0,0 +1,41 @@
+import math
+
+def get_edge_length(graph, u, v):
+ try:
+ return graph[u][v][0]['length']
+ except KeyError:
+ try:
+ return graph[v][u][0]['length']
+ except KeyError:
+ return 0
+
+def format_time(time_seconds):
+ seconds = math.ceil(time_seconds % 60)
+ minutes = math.floor(time_seconds / 60)
+ if minutes == 0:
+ return f"{seconds} secondes"
+ return f"{minutes} minute(s) et {seconds} secondes"
+
+def export_drone(graph, time_exec, parcours):
+ total_dist = 0
+ time_exec = time_exec / 60
+ total_dist += math.ceil(sum(get_edge_length(graph, u, v) for u, v in parcours))
+
+ return {
+ "dist":total_dist,
+ "time":{
+ "format":format_time(time_exec),
+ "value":time_exec
+ }
+ }
+
+def export_deneigeuse(graph, time_exec, parcours):
+ total_dist = math.ceil(sum(get_edge_length(graph, u, v) for u, v in parcours))
+
+ return {
+ "dist":total_dist,
+ "time":{
+ "format":format_time(time_exec),
+ "value":time_exec
+ }
+ } \ No newline at end of file