package au.gov.ga.earthsci.model.bounds;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
import au.gov.ga.earthsci.common.math.vector.Vector3;
/**
* Unit tests for the {@link BoundingBox} class
*
* @author James Navin (james.navin@ga.gov.au)
*/
public class BoundingBoxTest
{
private final Vector3[] allIn = new Vector3[] {
new Vector3(0, 0, 0),
new Vector3(1, 1, 1),
new Vector3(5, 5, 5),
new Vector3(10, 10, 10),
};
private final Vector3[] oneOut = new Vector3[] {
new Vector3(0, 0, 0),
new Vector3(1, 1, 1),
new Vector3(5, 5, 5),
new Vector3(11, 10, 10),
};
private final Vector3[] allOut = new Vector3[] {
new Vector3(-10, 0, 0),
new Vector3(-1, 1, 1),
new Vector3(-5, 5, 5),
new Vector3(-10, 10, 10),
};
private BoundingBox classUnderTest = new BoundingBox(0, 10, 0, 10, 0, 10, true);
@Test
public void testContainsWithNull()
{
assertFalse(classUnderTest.contains(null));
}
@Test
public void testContainsWithIn()
{
assertTrue(classUnderTest.contains(new Vector3(5, 5, 5)));
}
@Test
public void testContainsWithOut()
{
assertFalse(classUnderTest.contains(new Vector3(-5, 5, 5)));
}
@Test
public void testContainsWithBoundary()
{
assertTrue(classUnderTest.contains(new Vector3(0, 0, 0)));
}
@Test
public void testContainsAllWithAllNull()
{
assertFalse(classUnderTest.containsAll((Vector3) null));
}
@Test
public void testContainsAllWithAllEmpty()
{
assertFalse(classUnderTest.containsAll(new Vector3[0]));
}
@Test
public void testContainsAllWithAllIn()
{
assertTrue(classUnderTest.containsAll(allIn));
}
@Test
public void testContainsAllWithOneOut()
{
assertFalse(classUnderTest.containsAll(oneOut));
}
@Test
public void testContainsAllWithAllOut()
{
assertFalse(classUnderTest.containsAll(allOut));
}
@Test
public void testContainsAnyWithAllNull()
{
assertFalse(classUnderTest.containsAny((Vector3) null));
}
@Test
public void testContainsAnyWithAllEmpty()
{
assertFalse(classUnderTest.containsAny(new Vector3[0]));
}
@Test
public void testContainsAnyWithAllIn()
{
assertTrue(classUnderTest.containsAny(allIn));
}
@Test
public void testContainsAnyWithOneOut()
{
assertTrue(classUnderTest.containsAny(oneOut));
}
@Test
public void testContainsAnyWithAllOut()
{
assertFalse(classUnderTest.containsAny(allOut));
}
}