Skip to content

Commit

Permalink
Add priority keys in output for route and summary objects, fixes #390.
Browse files Browse the repository at this point in the history
  • Loading branch information
jcoupey committed Sep 10, 2020
1 parent e76e75b commit d28e144
Show file tree
Hide file tree
Showing 7 changed files with 16 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/structures/vroom/solution/route.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ Route::Route(Id vehicle,
Duration service,
Duration duration,
Duration waiting_time,
Priority priority,
const Amount& delivery,
const Amount& pickup,
const std::string& description)
Expand All @@ -26,6 +27,7 @@ Route::Route(Id vehicle,
service(service),
duration(duration),
waiting_time(waiting_time),
priority(priority),
delivery(delivery),
pickup(pickup),
description(description),
Expand Down
2 changes: 2 additions & 0 deletions src/structures/vroom/solution/route.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ struct Route {
const Duration service;
const Duration duration;
const Duration waiting_time;
const Priority priority;
const Amount delivery;
const Amount pickup;
const std::string description;
Expand All @@ -37,6 +38,7 @@ struct Route {
Duration service,
Duration duration,
Duration waiting_time,
Priority priority,
const Amount& delivery,
const Amount& pickup,
const std::string& description);
Expand Down
1 change: 1 addition & 0 deletions src/structures/vroom/solution/solution.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ Solution::Solution(unsigned code,
summary.delivery += route.delivery;
summary.pickup += route.pickup;
summary.service += route.service;
summary.priority += route.priority;
summary.duration += route.duration;
summary.waiting_time += route.waiting_time;
}
Expand Down
1 change: 1 addition & 0 deletions src/structures/vroom/solution/summary.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ Summary::Summary(unsigned unassigned, unsigned amount_size)
delivery(amount_size),
pickup(amount_size),
service(0),
priority(0),
duration(0),
waiting_time(0),
distance(0) {
Expand Down
1 change: 1 addition & 0 deletions src/structures/vroom/solution/summary.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ struct Summary {
Amount delivery;
Amount pickup;
Duration service;
Priority priority;

Duration duration;
Duration waiting_time;
Expand Down
7 changes: 7 additions & 0 deletions src/utils/helpers.h
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,7 @@ inline Solution format_solution(const Input& input,

Duration duration = 0;
Duration service = 0;
Priority priority = 0;
Amount sum_pickups(input.zero_amount());
Amount sum_deliveries(input.zero_amount());
#ifndef NDEBUG
Expand Down Expand Up @@ -306,6 +307,7 @@ inline Solution format_solution(const Input& input,
assert(input.vehicle_ok_with_job(i, route.front()));
auto& first_job = input.jobs[route.front()];
service += first_job.service;
priority += first_job.priority;

current_load += first_job.pickup;
current_load -= first_job.delivery;
Expand Down Expand Up @@ -333,6 +335,7 @@ inline Solution format_solution(const Input& input,

auto& current_job = input.jobs[route[r + 1]];
service += current_job.service;
priority += current_job.priority;

current_load += current_job.pickup;
current_load -= current_job.delivery;
Expand Down Expand Up @@ -371,6 +374,7 @@ inline Solution format_solution(const Input& input,
service,
duration,
0,
priority,
sum_deliveries,
sum_pickups,
v.description);
Expand Down Expand Up @@ -515,6 +519,7 @@ inline Route format_route(const Input& input,
Duration duration = 0;
Duration service = 0;
Duration forward_wt = 0;
Priority priority = 0;
Amount sum_pickups(input.zero_amount());
Amount sum_deliveries(input.zero_amount());

Expand Down Expand Up @@ -592,6 +597,7 @@ inline Route format_route(const Input& input,
// Back to current job.
duration += travel_time;
service += current_job.service;
priority += current_job.priority;

current_load += current_job.pickup;
current_load -= current_job.delivery;
Expand Down Expand Up @@ -717,6 +723,7 @@ inline Route format_route(const Input& input,
service,
duration,
forward_wt,
priority,
sum_deliveries,
sum_pickups,
v.description);
Expand Down
2 changes: 2 additions & 0 deletions src/utils/output_json.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ rapidjson::Value to_json(const Summary& summary,
json_summary.AddMember("service", summary.service, allocator);
json_summary.AddMember("duration", summary.duration, allocator);
json_summary.AddMember("waiting_time", summary.waiting_time, allocator);
json_summary.AddMember("priority", summary.priority, allocator);

if (geometry) {
json_summary.AddMember("distance", summary.distance, allocator);
Expand Down Expand Up @@ -145,6 +146,7 @@ rapidjson::Value to_json(const Route& route,
json_route.AddMember("service", route.service, allocator);
json_route.AddMember("duration", route.duration, allocator);
json_route.AddMember("waiting_time", route.waiting_time, allocator);
json_route.AddMember("priority", route.priority, allocator);

if (geometry) {
json_route.AddMember("distance", route.distance, allocator);
Expand Down

0 comments on commit d28e144

Please # to comment.