IAP GITLAB

Skip to content
Snippets Groups Projects
Forked from Air Shower Physics / corsika
4116 commits behind the upstream repository.
testRandom.cc 736 B
#define CATCH_CONFIG_MAIN // This tells Catch to provide a main() - only do this in one
                          // cpp file
#include <catch2/catch.hpp>

#include <corsika/random/RNGManager.h>
#include <iostream>

using namespace corsika::random;

SCENARIO("random-number streams can be registered and retrieved") {
  GIVEN("a RNGManager") {
    RNGManager rngManager;

    WHEN("a sequence is registered by name") {
      rngManager.RegisterRandomStream("stream_A");

      THEN("the sequence can be retrieved") {
        REQUIRE_NOTHROW(rngManager.GetRandomStream("stream_A"));
      }

      THEN("an unknown sequence cannot be retrieved") {
        REQUIRE_THROWS(rngManager.GetRandomStream("stream_UNKNOWN"));
      }
    }
  }
}