Accord.Tests.Statistics.TTestTest.PowerTest C# (CSharp) Method

PowerTest() private method

private PowerTest ( ) : void
return void
        public void PowerTest()
        {
            int samples = 5;
            double stdDev = 1;
            double mean = 0.2;

            {
                TTest test = new TTest(mean, stdDev: stdDev, samples: samples,
                    alternate: OneSampleHypothesis.ValueIsSmallerThanHypothesis);

                Assert.AreEqual(4, test.StatisticDistribution.DegreesOfFreedom);
                Assert.AreEqual(0.02138791, test.Analysis.Power, 1e-6);
                Assert.AreEqual(0.2, test.Analysis.Effect);
                Assert.AreEqual(5, test.Analysis.Samples);

                TTestPowerAnalysis target = (TTestPowerAnalysis)test.Analysis;
                target.Power = 0.6;
                target.ComputeSamples();

                Assert.IsTrue(Double.IsNaN(target.Samples));
                Assert.AreEqual(0.6, target.Power, 1e-6);
                Assert.AreEqual(0.2, target.Effect);
            }


            {
                TTest test = new TTest(mean, stdDev: stdDev, samples: samples,
                  alternate: OneSampleHypothesis.ValueIsGreaterThanHypothesis);

                Assert.AreEqual(4, test.StatisticDistribution.DegreesOfFreedom);

                Assert.AreEqual(0.2, test.Analysis.Effect);
                Assert.AreEqual(0.102444276600, test.Analysis.Power, 1e-6);
                Assert.AreEqual(5, test.Analysis.Samples, 1e-4);

                TTestPowerAnalysis target = (TTestPowerAnalysis)test.Analysis;
                target.Power = 0.6;
                target.ComputeSamples();

                Assert.AreEqual(91.444828012, target.Samples, 1e-6);
                Assert.AreEqual(0.6, target.Power, 1e-6);
                Assert.AreEqual(0.2, target.Effect);
            }


            {
                TTest test = new TTest(mean, stdDev: stdDev, samples: samples,
                   alternate: OneSampleHypothesis.ValueIsDifferentFromHypothesis);

                Assert.AreEqual(4, test.StatisticDistribution.DegreesOfFreedom);

                Assert.AreEqual(0.2, test.Analysis.Effect);
                Assert.AreEqual(0.06426957, test.Analysis.Power, 1e-6);
                Assert.AreEqual(5, test.Analysis.Samples, 1e-4);

                TTestPowerAnalysis target = (TTestPowerAnalysis)test.Analysis;
                target.Power = 0.6;
                target.ComputeSamples();

                Assert.AreEqual(124.3957558, target.Samples, 1e-6);
                Assert.AreEqual(0.6, target.Power, 1e-6);
                Assert.AreEqual(0.2, target.Effect);
            }
        }
    }