public void BernoulliDistribution() { Simulation.NumberOfSamples = ExpectedResults.NumberOfSamples; var testInfo = ExpectedResults.Data["DistributionResults"]["BernoulliDistribution"]; var inputs = testInfo["ConstructorInputs"]; var resultsArray = testInfo["Results"] .Select(jv => (double)jv).ToArray(); BernoulliDistribution distr = new BernoulliDistribution( inputs["probability"].Value <double>(), inputs["randomSeed"].Value <int>()); Vector <double> expectedResults = Vector <double> .Build.DenseOfArray(resultsArray); Assert.AreEqual(expectedResults, distr.GetResult()); distr = new BernoulliDistribution(.567); Assert.AreEqual(distr.Probability.ScalarValue, .567); bool exceptionCaught = false; try { distr.Probability = -1; } catch (ArgumentException) { exceptionCaught = true; } Assert.IsTrue(exceptionCaught); exceptionCaught = false; try { distr.Probability = 1.1; } catch (ArgumentException) { exceptionCaught = true; } Assert.IsTrue(exceptionCaught); distr.Probability = 0; distr.Probability = 1; Assert.IsTrue(distr.ConstrainedToInt); distr = new BernoulliDistribution(); Assert.AreEqual(1, distr.Probability.ScalarValue); }