Commit 05296d0c authored by Sanford Jonathan Edelist's avatar Sanford Jonathan Edelist
Browse files

Upload New File

parent bc8ce320
Loading
Loading
Loading
Loading
+46 −0
Original line number Diff line number Diff line
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
    }
}