/
GYSFlash
/
MonteCarloApp
Обзор
Документация
Войти
/
GYSFlash
/
MonteCarloApp
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/test/java/org/example/debfShapeTest.java
103 строки
3 KB
Юрий
first_commit
17 июн 2025, 19:17
17 июн 2025, 19:17
ec7b4c9
Код
Авторство
О чём код?
package org.example; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import java.util.List; import static org.junit.jupiter.api.Assertions.*; class debfShapeTest { private debfShape shape; private final List<Point> testVertices = List.of( new Point(10, 3), // Точка D new Point(7, 6), // Точка E new Point(0, 6), // Точка B new Point(4, 3) // Точка F ); @BeforeEach void setUp() { shape = new debfShape(testVertices); } // ===== Тесты конструктора ===== @Test void constructor_ShouldInitializeCorrectly() { assertNotNull(shape); assertEquals("debf", shape.getName()); } @Test void constructor_WithInvalidVertices_ShouldThrowException() { assertThrows(IndexOutOfBoundsException.class, () -> new debfShape(List.of(new Point(1,1))) ); } // ===== Тесты exactArea() ===== @Test void exactArea_ShouldCalculateCorrectly() { // Ручной расчет площади: // 1. Четверть круга: πr²/4 = π*3²/4 ≈ 7.0686 // 2. Прямоугольник: 3*3 = 9 // 3. Треугольник: (3*4)/2 = 6 double expected = 7.0686 + 9 + 6; assertEquals(expected, shape.exactArea(), 0.001); } // ===== Тесты contains() ===== @Test void contains_PointInQuarterCircle_ShouldReturnTrue() { Point p = new Point(8, 4); // Внутри сектора DOE assertTrue(shape.contains(p)); } @Test void contains_PointInRectangle_ShouldReturnTrue() { Point p = new Point(5, 4.5); // Внутри прямоугольника EOAF assertTrue(shape.contains(p)); } @Test void contains_PointInTriangle_ShouldReturnTrue() { Point p = new Point(2, 5); // Внутри треугольника ABF assertTrue(shape.contains(p)); } @Test void contains_PointOutsideAllShapes_ShouldReturnFalse() { Point p = new Point(1, 2); // Вне всех частей фигуры assertFalse(shape.contains(p)); } @Test void contains_PointOnEdge_ShouldReturnTrue() { Point p = new Point(7, 4.5); // На ребре EO assertTrue(shape.contains(p)); } @Test void contains_PointOnVertex_ShouldReturnTrue() { Point p = new Point(4, 3); // Вершина F assertTrue(shape.contains(p)); } // ===== Тесты граничных случаев ===== @Test void contains_PointExactlyAtCenter_ShouldReturnTrue() { Point p = new Point(7, 3); // Точка O (центр) assertTrue(shape.contains(p)); } @Test void contains_PointNearBoundary_ShouldBeAccurate() { Point p = new Point(7.01, 3.01); // Близко к границе assertTrue(shape.contains(p)); } // ===== Тесты getName() ===== @Test void getName_ShouldReturnCorrectValue() { assertEquals("debf", shape.getName()); } }