diff options
| author | Martial Simon <msimon_fr@hotmail.com> | 2025-09-15 01:07:58 +0200 |
|---|---|---|
| committer | Martial Simon <msimon_fr@hotmail.com> | 2025-09-15 01:07:58 +0200 |
| commit | 967be9e750221ab2ab783f95df79bb26d290a45e (patch) | |
| tree | 6802900a5e975f9f68b169f0f503f040056d6952 /ero1/src/demo/demo_cost.py | |
Diffstat (limited to 'ero1/src/demo/demo_cost.py')
| -rw-r--r-- | ero1/src/demo/demo_cost.py | 41 |
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 |
