Skip to content

Commit

Permalink
TestBoundingSphere: test equals() and isSimilar()
Browse files Browse the repository at this point in the history
  • Loading branch information
stephengold committed Jun 8, 2024
1 parent aa55d7f commit 4494708
Showing 1 changed file with 51 additions and 0 deletions.
51 changes: 51 additions & 0 deletions jme3-core/src/test/java/com/jme3/bounding/TestBoundingSphere.java
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,57 @@
* @author Stephen Gold
*/
public class TestBoundingSphere {
/**
* Verify that equals() behaves as expected.
*/
@Test
public void testEquals() {
BoundingSphere bs1 = new BoundingSphere(0f, new Vector3f(3f, 4f, 5f));
BoundingSphere bs2 = new BoundingSphere(-0f, new Vector3f(3f, 4f, 5f));

BoundingSphere bs3 = new BoundingSphere(1f, new Vector3f(3f, 0f, 2f));
BoundingSphere bs4 = new BoundingSphere(1f, new Vector3f(3f, -0f, 2f));

BoundingSphere bs5 = new BoundingSphere(2f, new Vector3f(4f, 5f, 6f));
BoundingSphere bs6 = (BoundingSphere) bs5.clone();
bs6.setCheckPlane(1);

// Clones are equal to their base instances:
Assert.assertEquals(bs1, bs1.clone());
Assert.assertEquals(bs2, bs2.clone());
Assert.assertEquals(bs3, bs3.clone());
Assert.assertEquals(bs4, bs4.clone());
Assert.assertEquals(bs5, bs5.clone());
Assert.assertEquals(bs6, bs6.clone());

Assert.assertNotEquals(bs1, bs2); // because their radii differ
Assert.assertNotEquals(bs3, bs4); // because their centers differ
Assert.assertEquals(bs5, bs6); // because check planes are ignored
}

/**
* Verify that isSimilar() behaves as expected.
*/
@Test
public void testIsSimilar() {
BoundingSphere bs1 = new BoundingSphere(0f, new Vector3f(3f, 4f, 5f));
BoundingSphere bs2 = new BoundingSphere(0.1f, new Vector3f(3f, 4f, 5f));

BoundingSphere bs3 = new BoundingSphere(1f, new Vector3f(3f, 4f, 2f));
BoundingSphere bs4 = new BoundingSphere(1f, new Vector3f(3f, 3.9f, 2f));

BoundingSphere bs5 = new BoundingSphere(2f, new Vector3f(4f, 5f, 6f));
BoundingSphere bs6 = (BoundingSphere) bs5.clone();
bs6.setCheckPlane(1);

Assert.assertFalse(bs1.isSimilar(bs2, 0.09999f));
Assert.assertTrue(bs1.isSimilar(bs2, 0.10001f));

Assert.assertFalse(bs3.isSimilar(bs4, 0.09999f));
Assert.assertTrue(bs3.isSimilar(bs4, 0.10001f));

Assert.assertTrue(bs5.isSimilar(bs6, 0f)); // check planes are ignored
}

/**
* Verify that an infinite bounding sphere can be merged with a very
Expand Down

0 comments on commit 4494708

Please sign in to comment.