package aima.test.core.unit.util; import java.util.ArrayList; import java.util.List; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import aima.core.util.Util; /** * @author Ravi Mohan * */ public class UtilTest { private List<Double> values; @Before public void setUp() { values = new ArrayList<Double>(); values.add(1.0); values.add(2.0); values.add(3.0); values.add(4.0); values.add(5.0); } @Test public void testModeFunction() { List<Integer> l = new ArrayList<Integer>(); l.add(1); l.add(2); l.add(2); l.add(3); int i = (Util.mode(l)).intValue(); Assert.assertEquals(2, i); List<Integer> l2 = new ArrayList<Integer>(); l2.add(1); i = (Util.mode(l2)).intValue(); Assert.assertEquals(1, i); } @Test public void testMeanCalculation() { Assert.assertEquals(3.0, Util.calculateMean(values), 0.001); } @Test public void testStDevCalculation() { Assert.assertEquals(1.5811, Util.calculateStDev(values, 3.0), 0.0001); } @Test public void testNormalization() { List<Double> nrm = Util.normalizeFromMeanAndStdev(values, 3.0, 1.5811); Assert.assertEquals(-1.264, nrm.get(0), 0.001); Assert.assertEquals(-0.632, nrm.get(1), 0.001); Assert.assertEquals(0.0, nrm.get(2), 0.001); Assert.assertEquals(0.632, nrm.get(3), 0.001); Assert.assertEquals(1.264, nrm.get(4), 0.001); } @Test public void testRandomNumberGenrationWhenStartAndEndNumbersAreSame() { int i = Util.randomNumberBetween(0, 0); int j = Util.randomNumberBetween(23, 23); Assert.assertEquals(0, i); Assert.assertEquals(23, j); } }