package testing;
import static org.junit.Assert.*;
import org.junit.Test;
import util.Gaussian;
import util.Util;
public class GaussianTest
{
@Test
public void testGaussian()
{
Gaussian g = new Gaussian();
assert(g.getPDF() == null && g.getRandomVar() == null && g.isEmpty());
}
@Test
public void testGaussianDouble()
{
double stdev = 25.00;
Gaussian g = new Gaussian(stdev);
assert( g.getMean() == 1+stdev*3
&& g.isEmpty() == false
&& g.getSize() == Gaussian.DEFAULT_GAUSSIAN_SIZE
&& g.getRandomVar().length == g.getPDF().length);
}
@Test
public void testGaussianDoubleArray()
{
double[] zscores = {0.1, 1.0, 1.5, 2.0, 2.5, 3.0};
Gaussian g = new Gaussian(zscores);
assert( g.isEmpty() == false
&& Util.compareArraysByValue(g.getPDF(),zscores)
&& g.getSize() == zscores.length
&& Util.arrayMean(zscores) == g.getMean()
&& Util.standardDeviation(zscores) == g.getStandardDeviation());
}
@Test
public void testGaussianIntDoubleDoubleDouble()
{
int size = 200;
double mean = 100;
double stdev = 20;
double multiplier = 1000;
Gaussian g = new Gaussian(size,mean,stdev,multiplier);
assert( g.isEmpty() == false
&& g.getSize() == size
&& g.getMean() == mean
&& g.getStandardDeviation() == stdev
&& g.getRandomValue() % multiplier <= multiplier);
}
@Test
public void testGaussianIntDoubleDouble()
{
int size = 200;
double mean = 100;
double stdev = 20;
Gaussian g = new Gaussian(size,mean,stdev);
assert( g.isEmpty() == false
&& g.getSize() == size
&& g.getMean() == mean
&& g.getStandardDeviation() == stdev);
}
@Test
public void testGaussianIntDouble()
{
int size = 200;
double stdev = 20;
Gaussian g = new Gaussian(size,stdev);
assert( g.isEmpty() == false
&& g.getSize() == size
&& g.getStandardDeviation() == stdev);
}
@Test
public void testGaussianDoubleIntDouble()
{
int size = 200;
double stdev = 20;
double multiplier = 1000;
Gaussian g = new Gaussian(multiplier,size,stdev);
assert( g.isEmpty() == false
&& g.getSize() == size
&& g.getStandardDeviation() == stdev
&& g.getRandomValue() % multiplier <= multiplier);
}
@Test
public void testGetRandomVar()
{
int size = 200;
double mean = 100;
double stdev = 20;
double multiplier = 1000;
Gaussian g = new Gaussian(size,mean,stdev,multiplier);
assert( Util.arrayContains(g.getPDF(), g.getRandomValue()));
}
@Test
public void testGetPDF()
{
double[] zscores = {0.1, 1.0, 1.5, 2.0, 2.5, 3.0};
Gaussian g = new Gaussian(zscores);
assert( Util.compareArraysByValue(g.getPDF(),zscores));
}
@Test
public void testGetNumRandomZScores()
{
int numZScores = 10;
int size = 200;
double stdev = 20;
double multiplier = 1000;
Gaussian g = new Gaussian(size,stdev,multiplier);
double[][] randomZScores = g.getNumRandomZScores(numZScores);
assert( Util.arrayContains(g.getRandomVar(), randomZScores[0])
&& Util.arrayContains(g.getPDF(), randomZScores[1]));
}
@Test
public void testGetRandomValue()
{
int size = 200;
double stdev = 20;
double multiplier = 1000;
Gaussian g = new Gaussian(size,stdev,multiplier);
assert ( Util.arrayContains(g.getPDF(), g.getRandomValue()));
}
@Test
public void testIsEmpty()
{
Gaussian g = new Gaussian();
assert (g.isEmpty());
}
@Test
public void testScaleZScores()
{
double[] zscores = {0.1, 1.0, 1.5, 2.0, 2.5, 3.0};
double scale = 100;
Gaussian g = new Gaussian(zscores);
for (int x=0; x < zscores.length; x++) zscores[x] *= scale;
g.scaleZScores(scale);
assert( Util.compareArraysByValue(g.getPDF(),zscores));
}
@Test
public void testGetMean()
{
double[] zscores = {0.1, 1.0, 1.5, 2.0, 2.5, 3.0};
double mean = Util.arrayMean(zscores);
Gaussian g = new Gaussian(zscores);
assert( g.getMean() == mean);
}
@Test
public void testGetStandardDeviation()
{
double[] zscores = {0.1, 1.0, 1.5, 2.0, 2.5, 3.0};
double stdev = Util.standardDeviation(zscores);
Gaussian g = new Gaussian(zscores);
assert( g.getStandardDeviation() == stdev);
}
}