diff --git a/build.gradle b/build.gradle index 8121a72..6232e94 100644 --- a/build.gradle +++ b/build.gradle @@ -16,4 +16,4 @@ dependencies { test { useJUnitPlatform() -} \ No newline at end of file +} diff --git a/settings.gradle b/settings.gradle index fc7105d..eb3564d 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,2 +1 @@ rootProject.name = 'parallel-programming' - diff --git a/src/main/java/ru/lionarius/AreaCalculator.java b/src/main/java/ru/lionarius/AreaCalculator.java new file mode 100644 index 0000000..2e1f1c1 --- /dev/null +++ b/src/main/java/ru/lionarius/AreaCalculator.java @@ -0,0 +1,11 @@ +package ru.lionarius; + +public class AreaCalculator { + + public double circle(double radius) { + if (radius < 0.0) + throw new IllegalArgumentException("radius cannot be negative"); + + return Math.PI * radius * radius; + } +} diff --git a/src/main/java/ru/lionarius/Main.java b/src/main/java/ru/lionarius/Main.java index f40e1bf..8023c11 100644 --- a/src/main/java/ru/lionarius/Main.java +++ b/src/main/java/ru/lionarius/Main.java @@ -4,4 +4,4 @@ public class Main { public static void main(String[] args) { System.out.println("Hello world!"); } -} \ No newline at end of file +} diff --git a/src/test/java/AreaCalculatorTests.java b/src/test/java/AreaCalculatorTests.java new file mode 100644 index 0000000..615a8ac --- /dev/null +++ b/src/test/java/AreaCalculatorTests.java @@ -0,0 +1,21 @@ +import static org.junit.jupiter.api.Assertions.*; + +import org.junit.jupiter.api.Test; +import ru.lionarius.AreaCalculator; + +class AreaCalculatorTests { + + private final AreaCalculator areaCalculator = new AreaCalculator(); + + @Test + void circleArea() { + assertEquals(0.0, this.areaCalculator.circle(0.0)); + assertEquals(Math.PI, this.areaCalculator.circle(1.0)); + assertEquals(Math.PI * 4.0, this.areaCalculator.circle(2.0)); + + assertThrowsExactly(IllegalArgumentException.class, () -> this.areaCalculator.circle(-1.0)); + + assertEquals(Double.POSITIVE_INFINITY, this.areaCalculator.circle(Double.MAX_VALUE)); + assertEquals(Double.NaN, this.areaCalculator.circle(Double.NaN)); + } +}