diff --git a/src/benchmarks/bench.cpp b/src/benchmarks/bench.cpp index 6cc42768b..58df8e070 100644 --- a/src/benchmarks/bench.cpp +++ b/src/benchmarks/bench.cpp @@ -105,12 +105,26 @@ class GPSTraces return coordinates[dis(gen)]; } - const std::vector &getRandomTrace() const + std::vector getRandomTrace() const { std::uniform_int_distribution<> dis(0, trackIDs.size() - 1); auto it = trackIDs.begin(); std::advance(it, dis(gen)); - return traces.at(*it); + + const auto &trace = traces.at(*it); + + std::uniform_int_distribution<> length_dis(50, 100); + size_t length = length_dis(gen); + if (trace.size() <= length + 1) + { + return trace; + } + + std::uniform_int_distribution<> start_dis(0, trace.size() - length - 1); + size_t start_index = start_dis(gen); + + return std::vector(trace.begin() + start_index, + trace.begin() + start_index + length); } };