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