#include "CppUnitTest.h" #include "../_TestingUtilities/Testutil.h" #include "../Eule/Random.h" #include #include using namespace Microsoft::VisualStudio::CppUnitTestFramework; using namespace Eule; namespace _Random { TEST_CLASS(_RandomInteger) { public: // Checks that the produced unsigned-integer distribution shows a big standard deviation TEST_METHOD(Uint_Big_Standard_Deviation) { // Setup std::vector rands; rands.resize(1000); // Exercise // Create 1000 random values std::generate_n(rands.data(), rands.size(), []()->unsigned int { return Random::RandomUint(); }); // Verify const double stddev = Testutil::Stddev(rands); Assert::IsTrue(stddev >= 1000000, (std::wstringstream() << stddev).str().c_str()); return; } // Checks that the produced integer distribution shows a big standard deviation TEST_METHOD(Int_Big_Standard_Deviation) { // Setup std::vector rands; rands.resize(1000); // Exercise // Create 1000 random values std::generate_n(rands.data(), rands.size(), []()->int { return Random::RandomInt(); }); // Verify const double stddev = Testutil::Stddev(rands); Assert::IsTrue(stddev >= 1000000, (std::wstringstream() << stddev).str().c_str()); return; } }; }