Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
BoundingBoxTests.java 1.50 KiB
package object_detection;

import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.Test;
import object_detection.types.*;


class BoundingBoxTests {

    @Test
    void testPointWithinBoundingBox() {
        Point2D tr = new Point2D(10, 10);
        Point2D tl = new Point2D(0, 10);
        Point2D br = new Point2D(10, 0);
        Point2D bl = new Point2D(0, 0);
        BoundingBox box = new BoundingBox(tr, tl, br, bl);

        assertTrue(box.within(new Point2D(5, 5)));
        assertFalse(box.within(new Point2D(10, 10))); // edge case: point on the boundary
        assertFalse(box.within(new Point2D(-1, 5))); // outside box
    }

    @Test
    void testBoundaryConditionsForBoundingBox() {
        Point2D tr = new Point2D(10, 10);
        Point2D tl = new Point2D(0, 10);
        Point2D br = new Point2D(10, 0);
        Point2D bl = new Point2D(0, 0);
        BoundingBox box = new BoundingBox(tr, tl, br, bl);

        assertFalse(box.within(new Point2D(0, 10)));  // Exactly at top left
        assertTrue(box.within(new Point2D(1, 9)));   // Slightly inside from top left
    }

    @Test
    void testPointsOnEdges() {
        Point2D tr = new Point2D(10, 10);
        Point2D tl = new Point2D(0, 10);
        Point2D br = new Point2D(10, 0);
        Point2D bl = new Point2D(0, 0);
        BoundingBox box = new BoundingBox(tr, tl, br, bl);

        assertFalse(box.within(new Point2D(10, 5)));  // On right edge
        assertFalse(box.within(new Point2D(0, 5)));   // On left edge
    }
}