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);
        }