From 1e724dcd33d57d47107be6ccc3a412fbd39d5d67 Mon Sep 17 00:00:00 2001 From: Simon Rasmussen Date: Sun, 9 Jul 2017 04:03:37 +0200 Subject: [PATCH] Added bitset parsing and setter for random data --- include/ur_modern_driver/test/random_data.h | 26 +++++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/include/ur_modern_driver/test/random_data.h b/include/ur_modern_driver/test/random_data.h index 14ae65b..4f98386 100644 --- a/include/ur_modern_driver/test/random_data.h +++ b/include/ur_modern_driver/test/random_data.h @@ -5,31 +5,32 @@ #include #include #include +#include #include "ur_modern_driver/bin_parser.h" class RandomDataTest { private: using random_bytes_engine = std::independent_bits_engine; - uint8_t* _buf; + uint8_t* buf_; BinParser bp_; size_t n_; public: - RandomDataTest(size_t n) : _buf(new uint8_t[n]), bp_(_buf, n), n_(n) + RandomDataTest(size_t n) : buf_(new uint8_t[n]), bp_(buf_, n), n_(n) { random_bytes_engine rbe; - std::generate(_buf, _buf + n, std::ref(rbe)); + std::generate(buf_, buf_ + n, std::ref(rbe)); } ~RandomDataTest() { - delete _buf; + delete buf_; } BinParser getParser(bool skip = false) { - return BinParser(_buf, n_ - (skip ? sizeof(int32_t) : 0)); + return BinParser(buf_, n_ - (skip ? sizeof(int32_t) : 0)); } template @@ -39,6 +40,21 @@ public: bp_.parse(actual); return actual; } + + template + std::bitset getNext() + { + T actual; + bp_.parse(actual); + return std::bitset(actual); + } + + template + void set(T data, size_t pos) + { + std::memcpy(&data, buf_+pos, sizeof(T)); + } + void skip(size_t n) { bp_.consume(n);