/
Miklukho
/
java-coursework-def
Обзор
Документация
Войти
/
Miklukho
/
java-coursework-def
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
src/test/java/coursework/FigureTest.java
73 строки
2 KB
Miklukho
Initial commit: курсовая работа вариант 21, фигура def
20 май 2026, 13:25
20 май 2026, 13:25
3a867f0
Код
Авторство
О чём код?
package coursework; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; class FigureTest { private Figure figure; @BeforeEach void setUp() { figure = new ArcFigure( "def", 5.0, 0.0, 10.0, 8.0, 38.73, 7.5, 3.609, 4.391 ); } @Test void testPointInsideFigure() { assertTrue(figure.isPointInside(7.5, 2.0)); } @Test void testPointOutsideFigure() { assertFalse(figure.isPointInside(3.0, 2.0)); assertFalse(figure.isPointInside(7.5, 8.5)); } @Test void testBoundingBoxArea() { double expectedArea = (10.0 - 5.0) * (8.0 - 0.0); assertEquals(expectedArea, figure.getBoundingBoxArea(), 0.001); } @Test void testExactArea() { assertEquals(38.73, figure.getExactArea(), 0.001); } @Test void testCompareTo() { Figure figure1 = new ArcFigure("test1", 0, 0, 10, 10, 50.0, 5, 5, 5); Figure figure2 = new ArcFigure("test2", 0, 0, 10, 10, 100.0, 5, 5, 5); assertTrue(figure1.compareTo(figure2) < 0); assertTrue(figure2.compareTo(figure1) > 0); assertEquals(0, figure1.compareTo(figure1)); } @Test void testMonteCarloAccuracy() { int n = 1_000_000; int hits = 0; double boxArea = figure.getBoundingBoxArea(); for (int i = 0; i < n; i++) { double x = figure.minX + Math.random() * (figure.maxX - figure.minX); double y = figure.minY + Math.random() * (figure.maxY - figure.minY); if (figure.isPointInside(x, y)) hits++; } double mcArea = (hits / (double) n) * boxArea; double error = Math.abs(mcArea - figure.getExactArea()) / figure.getExactArea() * 100; System.out.println("Monte Carlo Area: " + mcArea); System.out.println("Error: " + error + "%"); assertTrue(error < 5.0, "Погрешность должна быть меньше 5%"); } }