package edu.berkeley.cs.nlp.ocular.util;
import static org.junit.Assert.*;
import org.junit.Test;
/**
* @author Dan Garrette (dhgarrette@gmail.com)
*/
public class ArrayHelperTests {
@Test
public void test_sum_int() {
assertEquals(225, ArrayHelper.sum(new int[] { 50, 0, 150, 25 }));
assertEquals(25, ArrayHelper.sum(new int[] { 25 }));
assertEquals(0, ArrayHelper.sum(new int[] { 0 }));
assertEquals(0, ArrayHelper.sum(new int[] { 0, 0 }));
assertEquals(0, ArrayHelper.sum(new int[0]));
}
@Test
public void test_avg_int() {
assertEquals(54.8, ArrayHelper.avg(new int[] { 50, 0, 150, 74, 0 }), 1e-9);
assertEquals(67.5, ArrayHelper.avg(new int[] { 50, 150, 70, 0 }), 1e-9);
assertEquals(90, ArrayHelper.avg(new int[] { 50, 150, 70 }), 1e-9);
assertEquals(25.0, ArrayHelper.avg(new int[] { 25 }), 1e-9);
assertEquals(0, ArrayHelper.avg(new int[] { 0 }), 1e-9);
assertEquals(0, ArrayHelper.avg(new int[] { 0, 0 }), 1e-9);
assertEquals(0, ArrayHelper.avg(new int[0]), 1e-9);
}
@Test
public void test_sum_double() {
assertEquals(2.25, ArrayHelper.sum(new double[] { 0.5, 0.0, 1.5, 0.25 }), 1e-9);
assertEquals(0.25, ArrayHelper.sum(new double[] { 0.25 }), 1e-9);
assertEquals(0.0, ArrayHelper.sum(new double[] { 0.0 }), 1e-9);
assertEquals(0.0, ArrayHelper.sum(new double[] { 0.0, 0.0 }), 1e-9);
assertEquals(0.0, ArrayHelper.sum(new double[0]), 1e-9);
}
@Test
public void test_avg_double() {
assertEquals(0.54, ArrayHelper.avg(new double[] { 0.5, 0.0, 1.5, 0.7, 0.0 }), 1e-9);
assertEquals(0.675, ArrayHelper.avg(new double[] { 0.5, 1.5, 0.7, 0.0 }), 1e-9);
assertEquals(0.9, ArrayHelper.avg(new double[] { 0.5, 1.5, 0.7 }), 1e-9);
assertEquals(0.25, ArrayHelper.avg(new double[] { 0.25 }), 1e-9);
assertEquals(0.0, ArrayHelper.avg(new double[] { 0.0 }), 1e-9);
assertEquals(0.0, ArrayHelper.avg(new double[] { 0.0, 0.0 }), 1e-9);
assertEquals(0.0, ArrayHelper.avg(new double[0]), 1e-9);
}
@Test
public void test_min_int() {
assertEquals(10, ArrayHelper.min(new int[] { 50, 10, 25, 150, 10, 25 }));
assertEquals(25, ArrayHelper.min(new int[] { 25 }));
assertEquals(20, ArrayHelper.min(new int[] { 20 }));
assertEquals(20, ArrayHelper.min(new int[] { 20, 20 }));
try {
ArrayHelper.min(new int[0]);
fail("exception expected");
}
catch(RuntimeException e) {
// good
}
}
@Test
public void test_prepend() {
{
int[] b = ArrayHelper.prepend(0, new int[] { 1, 2, 3 });
assertEquals(4, b.length);
assertEquals(0, b[0]);
assertEquals(1, b[1]);
assertEquals(2, b[2]);
assertEquals(3, b[3]);
}
{
int[] b = ArrayHelper.prepend(0, new int[] {});
assertEquals(1, b.length);
assertEquals(0, b[0]);
}
}
@Test
public void test_append() {
{
Integer[] b = ArrayHelper.append(new Integer[] { 0, 1, 2 }, 3);
assertEquals(4, b.length);
assertEquals((int) 0, (int) b[0]);
assertEquals((int) 1, (int) b[1]);
assertEquals((int) 2, (int) b[2]);
assertEquals((int) 3, (int) b[3]);
}
{
Integer[] b = ArrayHelper.append(new Integer[] {}, 0);
assertEquals(1, b.length);
assertEquals((int) 0, (int) b[0]);
}
}
@Test
public void test_take() {
{
int[] b = ArrayHelper.take(new int[] { 1, 2, 3 }, 2);
assertEquals(2, b.length);
assertEquals(1, b[0]);
assertEquals(2, b[1]);
}
{
int[] b = ArrayHelper.take(new int[] { 1, 2, 3 }, 3);
assertEquals(3, b.length);
assertEquals(1, b[0]);
assertEquals(2, b[1]);
assertEquals(3, b[2]);
}
{
int[] b = ArrayHelper.take(new int[] { 1, 2, 3 }, 0);
assertEquals(0, b.length);
}
{
int[] b = ArrayHelper.take(new int[] { 1, 2, 3 }, 8);
assertEquals(3, b.length);
assertEquals(1, b[0]);
assertEquals(2, b[1]);
assertEquals(3, b[2]);
}
{
int[] b = ArrayHelper.take(new int[] {}, 0);
assertEquals(0, b.length);
}
{
int[] b = ArrayHelper.take(new int[] {}, 2);
assertEquals(0, b.length);
}
}
@Test
public void test_takeRight() {
{
int[] b = ArrayHelper.takeRight(new int[] { 1, 2, 3 }, 2);
assertEquals(2, b.length);
assertEquals(2, b[0]);
assertEquals(3, b[1]);
}
{
int[] b = ArrayHelper.takeRight(new int[] { 1, 2, 3 }, 3);
assertEquals(3, b.length);
assertEquals(1, b[0]);
assertEquals(2, b[1]);
assertEquals(3, b[2]);
}
{
int[] b = ArrayHelper.takeRight(new int[] { 1, 2, 3 }, 0);
assertEquals(0, b.length);
}
{
int[] b = ArrayHelper.takeRight(new int[] { 1, 2, 3 }, 8);
assertEquals(3, b.length);
assertEquals(1, b[0]);
assertEquals(2, b[1]);
assertEquals(3, b[2]);
}
{
int[] b = ArrayHelper.takeRight(new int[] {}, 0);
assertEquals(0, b.length);
}
{
int[] b = ArrayHelper.takeRight(new int[] {}, 2);
assertEquals(0, b.length);
}
}
}