From e8bbbd2db505047e0c7355a20e4ddf31c17d87d7 Mon Sep 17 00:00:00 2001 From: Romain Goyet Date: Mon, 1 May 2017 16:03:16 +0200 Subject: [PATCH] [ion] Add a host tool to generate random events Change-Id: I5a4db0ed5dcf2a1ae8743c2d3cda8dde6bd5962d --- ion/src/shared/tools/event_generator.cpp | 47 ++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 ion/src/shared/tools/event_generator.cpp diff --git a/ion/src/shared/tools/event_generator.cpp b/ion/src/shared/tools/event_generator.cpp new file mode 100644 index 000000000..8be68a78e --- /dev/null +++ b/ion/src/shared/tools/event_generator.cpp @@ -0,0 +1,47 @@ +#include +#include +#include +#include +#include + +void writeEventsToFile(std::ofstream & file, int numberOfEvents, std::mt19937 & rng) { + std::uniform_int_distribution distribution(0,Ion::Events::Event::k_numberOfEvents); + + int i = numberOfEvents; + while (i > 0) { + int prEventId = distribution(rng); + Ion::Events::Event e(prEventId); + if (e.isValid()) { + i--; + file << (char)(prEventId); + } + } +} + +int main(int argc, char * argv[]) { + if (argc != 3) { + std::cerr << "Usage: event_generator " << std::endl; + return -1; + } + + std::random_device r; + std::mt19937 mt(r()); + + int count = std::stoi(argv[1]); + int lengthAvg = std::stoi(argv[2]); + int lengthStdDev = lengthAvg; + + std::normal_distribution<> lengthDistribution(lengthAvg, lengthStdDev); + + for (int i=0; i