public void TTestConstructorTest()
{
// Example from http://en.wikipedia.org/wiki/Student%27s_t-test#Two-sample_T.C2.A02_test
double[] sample1 = { 30.02, 29.99, 30.11, 29.97, 30.01, 29.99 };
double[] sample2 = { 29.89, 29.93, 29.72, 29.98, 30.02, 29.98 };
TwoSampleTTest test;
// Unequal variances
test = new TwoSampleTTest(sample1, sample2, assumeEqualVariances: false);
Assert.AreEqual(0.0485, test.StandardError, 1e-4);
Assert.AreEqual(0.095, test.ObservedDifference, 1e-10);
Assert.AreEqual(7.03, test.DegreesOfFreedom, 1e-3);
Assert.AreEqual(0.091, test.PValue, 0.001);
test = new TwoSampleTTest(sample1, sample2, assumeEqualVariances: false,
alternate: TwoSampleHypothesis.FirstValueIsGreaterThanSecond);
Assert.AreEqual(0.0485, test.StandardError, 1e-4);
Assert.AreEqual(0.095, test.ObservedDifference, 1e-10);
Assert.AreEqual(7.03, test.DegreesOfFreedom, 1e-3);
Assert.AreEqual(0.045, test.PValue, 0.001);
// Equal variances
test = new TwoSampleTTest(sample1, sample2, assumeEqualVariances: true);
Assert.AreEqual(0.0485, test.StandardError, 1e-4);
Assert.AreEqual(0.095, test.ObservedDifference, 1e-10);
Assert.AreEqual(10, test.DegreesOfFreedom);
Assert.AreEqual(0.078, test.PValue, 0.001);
test = new TwoSampleTTest(sample1, sample2, assumeEqualVariances: true,
alternate: TwoSampleHypothesis.FirstValueIsGreaterThanSecond);
Assert.AreEqual(0.0485, test.StandardError, 1e-4);
Assert.AreEqual(0.095, test.ObservedDifference, 1e-10);
Assert.AreEqual(10, test.DegreesOfFreedom);
Assert.AreEqual(0.038, test.PValue, 0.0015);
}