diff --git a/Framework/Random/RNGManager.cc b/Framework/Random/RNGManager.cc index 01bc247b40232137fca29578125fb31b777f63c9..b65f59ab5263f13801507494b5068dc04bdc5046 100644 --- a/Framework/Random/RNGManager.cc +++ b/Framework/Random/RNGManager.cc @@ -10,7 +10,8 @@ void corsika::random::RNGManager::RegisterRandomStream(std::string const& pStrea rngs[pStreamName] = std::move(rng); } -corsika::random::RNG& corsika::random::RNGManager::GetRandomStream(std::string const& pStreamName) { +corsika::random::RNG& corsika::random::RNGManager::GetRandomStream( + std::string const& pStreamName) { return rngs.at(pStreamName); } @@ -22,3 +23,8 @@ std::stringstream corsika::random::RNGManager::dumpState() const { return buffer; } + +void corsika::random::RNGManager::SetSeedSeq(std::string const& pStreamName, + std::seed_seq const& pSeedSeq) { + seeds[pStreamName] = pSeedSeq; +} diff --git a/Framework/Random/RNGManager.h b/Framework/Random/RNGManager.h index 52e53cd7570b3d7318aa1424c04cbe0c3b2c30c7..a3a6d4e536ef63dc3182503151171dca0a30a3ae 100644 --- a/Framework/Random/RNGManager.h +++ b/Framework/Random/RNGManager.h @@ -38,7 +38,12 @@ namespace corsika::random { * into a std::stringstream. */ std::stringstream dumpState() const; + + /** + * set seed_seq of \a pStreamName to \a pSeedSeq + */ + void SetSeedSeq(std::string const& pStreamName, std::seed_seq& const pSeedSeq); }; -} // namespace Random +} // namespace corsika::random #endif diff --git a/Framework/Random/testRandom.cc b/Framework/Random/testRandom.cc index f2d6fcdcad92c34bfb65f18e5701fe93ff1616f9..222a25549c6b3a8a01ba3f7298ec4024e2211c67 100644 --- a/Framework/Random/testRandom.cc +++ b/Framework/Random/testRandom.cc @@ -21,6 +21,8 @@ SCENARIO("random-number streams can be registered and retrieved") { THEN("an unknown sequence cannot be retrieved") { REQUIRE_THROWS(rngManager.GetRandomStream("stream_UNKNOWN")); } + + // seeding not covered yet } } }