diff --git a/.gitignore b/.gitignore
index e673575a..62eaec4d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,2 @@
-.idea/
+.idea/
target/
\ No newline at end of file
diff --git a/README.md b/README.md
index 28781328..d0970dc4 100644
--- a/README.md
+++ b/README.md
@@ -1,24 +1,24 @@
-# Шаблон для практической работы по теме Java Basics
-
-1. Создайте ветку feature и продолжите разработку в ней
-1. Пройдитесь по всей структуре приложения, посмотрите какие классы в нем имеются.
-1. Запустите тесты (как их запускать написано в разделе "Правила выполнения практических заданий" на сайте курса обучения).
-1. Удостоверьтесь, что тесты падают (так и должно быть, поскольку задание на текущий момент не реализовано).
-1. Некоторые тесты могут состоять из нескольких подтестов (проверка запускается на разных наборах данных).
-Список тестов можно раскрывать и нажимая на них увидеть, на каком наборе данных тест упал.
-Например "Тест метода MathService.sum(int[] values)" - при открытии первого набора данных (первого подтеста) напишет следующую ошибку.
-Это значит, что для входных данных в виде пустого массива ([]) ожидаемый результат должен быть равен 0 (сумма числе в пустом массиве), а сейчас возвращается -1.
-
-```java
-org.opentest4j.AssertionFailedError: Для входных параметров: [] ==>
-Expected :0
-Actual :-1
-```
-
-6. Найдите класс SimpleMathService, посмотрите какие методы в нем имеются.
-1. Пройдитесь по каждому методу, прочитайте, что он должен выполнять (описание над методом).
-1. Начните писать реализацию методов сверху вниз, попутно запуская тесты и проверяя, что метод написан корректно.
-1. Например, как только вы напишите реализацию для метода "int compare(int value1, int value2)", у вас должен начать
-успешно выполняться тест "Тест метода MathService.compare(int value1, int value2)".
-1. Напишите реализацию для всех методов. Удостоверьтесь, что все тесты проходят.
+# Шаблон для практической работы по теме Java Basics
+
+1. Создайте ветку feature и продолжите разработку в ней
+1. Пройдитесь по всей структуре приложения, посмотрите какие классы в нем имеются.
+1. Запустите тесты (как их запускать написано в разделе "Правила выполнения практических заданий" на сайте курса обучения).
+1. Удостоверьтесь, что тесты падают (так и должно быть, поскольку задание на текущий момент не реализовано).
+1. Некоторые тесты могут состоять из нескольких подтестов (проверка запускается на разных наборах данных).
+Список тестов можно раскрывать и нажимая на них увидеть, на каком наборе данных тест упал.
+Например "Тест метода MathService.sum(int[] values)" - при открытии первого набора данных (первого подтеста) напишет следующую ошибку.
+Это значит, что для входных данных в виде пустого массива ([]) ожидаемый результат должен быть равен 0 (сумма числе в пустом массиве), а сейчас возвращается -1.
+
+```java
+org.opentest4j.AssertionFailedError: Для входных параметров: [] ==>
+Expected :0
+Actual :-1
+```
+
+6. Найдите класс SimpleMathService, посмотрите какие методы в нем имеются.
+1. Пройдитесь по каждому методу, прочитайте, что он должен выполнять (описание над методом).
+1. Начните писать реализацию методов сверху вниз, попутно запуская тесты и проверяя, что метод написан корректно.
+1. Например, как только вы напишите реализацию для метода "int compare(int value1, int value2)", у вас должен начать
+успешно выполняться тест "Тест метода MathService.compare(int value1, int value2)".
+1. Напишите реализацию для всех методов. Удостоверьтесь, что все тесты проходят.
1. Запуште все изменения на гитхаб и создайте pull-request в ветку master
\ No newline at end of file
diff --git a/java-basics-template.iml b/java-basics-template.iml
new file mode 100644
index 00000000..ae5a95a3
--- /dev/null
+++ b/java-basics-template.iml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index f094807c..b47f23de 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1,42 +1,42 @@
-
-
- 4.0.0
-
- ru.epam.izh.rd.online
- java-basics-template
- 1.0-SNAPSHOT
-
-
- 1.8
- 5.5.2
-
-
-
-
- org.junit.jupiter
- junit-jupiter
- ${junit.jupiter.version}
- test
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- 3.0.0-M3
-
-
- org.apache.maven.plugins
- maven-compiler-plugin
-
- ${java.version}
- ${java.version}
-
-
-
-
+
+
+ 4.0.0
+
+ ru.epam.izh.rd.online
+ java-basics-template
+ 1.0-SNAPSHOT
+
+
+ 1.8
+ 5.5.2
+
+
+
+
+ org.junit.jupiter
+ junit-jupiter
+ ${junit.jupiter.version}
+ test
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 3.0.0-M3
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ ${java.version}
+ ${java.version}
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/com/epam/izh/rd/online/JavaBasics.java b/src/main/java/com/epam/izh/rd/online/JavaBasics.java
index 9752bdda..e7dbbf3d 100644
--- a/src/main/java/com/epam/izh/rd/online/JavaBasics.java
+++ b/src/main/java/com/epam/izh/rd/online/JavaBasics.java
@@ -1,7 +1,7 @@
-package com.epam.izh.rd.online;
-
-public class JavaBasics {
- public static void main(String[] args) {
-
- }
-}
+package com.epam.izh.rd.online;
+
+public class JavaBasics {
+ public static void main(String[] args) {
+
+ }
+}
diff --git a/src/main/java/com/epam/izh/rd/online/service/Applicant.java b/src/main/java/com/epam/izh/rd/online/service/Applicant.java
index f4fc9f25..ee84248d 100644
--- a/src/main/java/com/epam/izh/rd/online/service/Applicant.java
+++ b/src/main/java/com/epam/izh/rd/online/service/Applicant.java
@@ -1,4 +1,4 @@
-package com.epam.izh.rd.online.service;
-
-public class Applicant {
-}
+package com.epam.izh.rd.online.service;
+
+public class Applicant {
+}
diff --git a/src/main/java/com/epam/izh/rd/online/service/MathService.java b/src/main/java/com/epam/izh/rd/online/service/MathService.java
index 58fd8375..283af022 100644
--- a/src/main/java/com/epam/izh/rd/online/service/MathService.java
+++ b/src/main/java/com/epam/izh/rd/online/service/MathService.java
@@ -1,24 +1,24 @@
-package com.epam.izh.rd.online.service;
-
-public interface MathService {
-
- int compare(int value1, int value2);
-
- int maxFrom(int value1, int value2);
-
- int maxFrom(int[] values);
-
- int sum(int[] values);
-
- int[] getEvenDigits(int[] values);
-
- long calcFactorial(int initialVal);
-
- long calcFibonacci(int number);
-
- int[] sort(int[] values);
-
- boolean isPrimary(int number);
-
- int[] reverseArray(int[] values);
-}
+package com.epam.izh.rd.online.service;
+
+public interface MathService {
+
+ int compare(int value1, int value2);
+
+ int maxFrom(int value1, int value2);
+
+ int maxFrom(int[] values);
+
+ int sum(int[] values);
+
+ int[] getEvenDigits(int[] values);
+
+ long calcFactorial(int initialVal);
+
+ long calcFibonacci(int number);
+
+ int[] sort(int[] values);
+
+ boolean isPrimary(int number);
+
+ int[] reverseArray(int[] values);
+}
diff --git a/src/main/java/com/epam/izh/rd/online/service/Mortgage.java b/src/main/java/com/epam/izh/rd/online/service/Mortgage.java
index ece42117..ca88fa5c 100644
--- a/src/main/java/com/epam/izh/rd/online/service/Mortgage.java
+++ b/src/main/java/com/epam/izh/rd/online/service/Mortgage.java
@@ -1,68 +1,68 @@
-package com.epam.izh.rd.online.service;
-
-import java.math.BigDecimal;
-import java.util.List;
-
-/**
- * Ипотечный займ (упрощенный вариант)
- */
-public class Mortgage {
-
- /**
- * Продукт (например Семейная ипотека)
- */
- private Product product;
-
- /**
- * Размер заемных средств
- */
- private BigDecimal amount;
-
- /**
- * Размер ипотечной ставки
- */
- private BigDecimal interestRate;
-
- /**
- * Срок кредитования
- */
- private Integer period;
-
- /**
- * Список продавцов
- */
- private List sellers;
-
-
- /**
- * Список заявителей
- */
- private List applicants;
-
- /**
- * Объект недвижимости
- */
- private Realty realty;
-
- public Product getProduct() {
- return product;
- }
-
- public void setProduct(Product product) {
- this.product = product;
- }
-
- public BigDecimal getAmount() {
- return amount;
- }
-
- //.... геттеры и сеттеры для полей
-
- public Realty getRealty() {
- return realty;
- }
-
- public void setRealty(Realty realty) {
- this.realty = realty;
- }
-}
+package com.epam.izh.rd.online.service;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * Ипотечный займ (упрощенный вариант)
+ */
+public class Mortgage {
+
+ /**
+ * Продукт (например Семейная ипотека)
+ */
+ private Product product;
+
+ /**
+ * Размер заемных средств
+ */
+ private BigDecimal amount;
+
+ /**
+ * Размер ипотечной ставки
+ */
+ private BigDecimal interestRate;
+
+ /**
+ * Срок кредитования
+ */
+ private Integer period;
+
+ /**
+ * Список продавцов
+ */
+ private List sellers;
+
+
+ /**
+ * Список заявителей
+ */
+ private List applicants;
+
+ /**
+ * Объект недвижимости
+ */
+ private Realty realty;
+
+ public Product getProduct() {
+ return product;
+ }
+
+ public void setProduct(Product product) {
+ this.product = product;
+ }
+
+ public BigDecimal getAmount() {
+ return amount;
+ }
+
+ //.... геттеры и сеттеры для полей
+
+ public Realty getRealty() {
+ return realty;
+ }
+
+ public void setRealty(Realty realty) {
+ this.realty = realty;
+ }
+}
diff --git a/src/main/java/com/epam/izh/rd/online/service/PaymentScheduleRequest.java b/src/main/java/com/epam/izh/rd/online/service/PaymentScheduleRequest.java
index d41161ce..c5863b7c 100644
--- a/src/main/java/com/epam/izh/rd/online/service/PaymentScheduleRequest.java
+++ b/src/main/java/com/epam/izh/rd/online/service/PaymentScheduleRequest.java
@@ -1,49 +1,49 @@
-package com.epam.izh.rd.online.service;
-
-import java.math.BigDecimal;
-import java.util.List;
-
-/**
- * Запрос для расчета графика платежей
- */
-public class PaymentScheduleRequest {
-
- /**
- * Размер заемных средств
- */
- private BigDecimal amount;
-
- /**
- * Размер ипотечной ставки
- */
- private BigDecimal interestRate;
-
- /**
- * Срок кредитования
- */
- private Integer period;
-
- public BigDecimal getAmount() {
- return amount;
- }
-
- public void setAmount(BigDecimal amount) {
- this.amount = amount;
- }
-
- public BigDecimal getInterestRate() {
- return interestRate;
- }
-
- public void setInterestRate(BigDecimal interestRate) {
- this.interestRate = interestRate;
- }
-
- public Integer getPeriod() {
- return period;
- }
-
- public void setPeriod(Integer period) {
- this.period = period;
- }
-}
+package com.epam.izh.rd.online.service;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * Запрос для расчета графика платежей
+ */
+public class PaymentScheduleRequest {
+
+ /**
+ * Размер заемных средств
+ */
+ private BigDecimal amount;
+
+ /**
+ * Размер ипотечной ставки
+ */
+ private BigDecimal interestRate;
+
+ /**
+ * Срок кредитования
+ */
+ private Integer period;
+
+ public BigDecimal getAmount() {
+ return amount;
+ }
+
+ public void setAmount(BigDecimal amount) {
+ this.amount = amount;
+ }
+
+ public BigDecimal getInterestRate() {
+ return interestRate;
+ }
+
+ public void setInterestRate(BigDecimal interestRate) {
+ this.interestRate = interestRate;
+ }
+
+ public Integer getPeriod() {
+ return period;
+ }
+
+ public void setPeriod(Integer period) {
+ this.period = period;
+ }
+}
diff --git a/src/main/java/com/epam/izh/rd/online/service/Product.java b/src/main/java/com/epam/izh/rd/online/service/Product.java
index 1ecb2f61..a25909e1 100644
--- a/src/main/java/com/epam/izh/rd/online/service/Product.java
+++ b/src/main/java/com/epam/izh/rd/online/service/Product.java
@@ -1,4 +1,4 @@
-package com.epam.izh.rd.online.service;
-
-public class Product {
-}
+package com.epam.izh.rd.online.service;
+
+public class Product {
+}
diff --git a/src/main/java/com/epam/izh/rd/online/service/Realty.java b/src/main/java/com/epam/izh/rd/online/service/Realty.java
index 700eda50..5b3a7c10 100644
--- a/src/main/java/com/epam/izh/rd/online/service/Realty.java
+++ b/src/main/java/com/epam/izh/rd/online/service/Realty.java
@@ -1,4 +1,4 @@
-package com.epam.izh.rd.online.service;
-
-public class Realty {
-}
+package com.epam.izh.rd.online.service;
+
+public class Realty {
+}
diff --git a/src/main/java/com/epam/izh/rd/online/service/Seller.java b/src/main/java/com/epam/izh/rd/online/service/Seller.java
index 23e5fdc5..f0f0bd22 100644
--- a/src/main/java/com/epam/izh/rd/online/service/Seller.java
+++ b/src/main/java/com/epam/izh/rd/online/service/Seller.java
@@ -1,4 +1,4 @@
-package com.epam.izh.rd.online.service;
-
-public class Seller {
-}
+package com.epam.izh.rd.online.service;
+
+public class Seller {
+}
diff --git a/src/main/java/com/epam/izh/rd/online/service/SimpleMathService.java b/src/main/java/com/epam/izh/rd/online/service/SimpleMathService.java
index 29215765..c35ab7c1 100644
--- a/src/main/java/com/epam/izh/rd/online/service/SimpleMathService.java
+++ b/src/main/java/com/epam/izh/rd/online/service/SimpleMathService.java
@@ -1,109 +1,183 @@
-package com.epam.izh.rd.online.service;
-
-public class SimpleMathService implements MathService {
-
- /**
- * Метод возвращает 0, если value1 = value2.
- * Метод возвращает -1, если value1 < value2.
- * Метод возвращает 1, если value1 > value2.
- *
- * Например для (-1, -1) метод должен вернуть 0;
- * Например для (-3, -1) метод должен вернуть -1;
- * Например для (3, 1) метод должен вернуть 1;
- */
- @Override
- public int compare(int value1, int value2) {
- return -2;
- }
-
- /**
- * Метод возвращает максимальное число из пары.
- * Например для списка (-1, 2) метод должен вернуть 2
- */
- @Override
- public int maxFrom(int value1, int value2) {
- return -1;
- }
-
- /**
- * Метод возвращает максимальное число из переданного массива.
- * Например для списка {-1, -3, 4, 8, 5, 22, -5} метод должен вернуть 22
- */
- @Override
- public int maxFrom(int[] values) {
- return -1;
- }
-
- /**
- * Метод возвращает сумму чисел массива.
- * Например для списка {-1, -3, 4, 8, 5, 22, -5} метод должен вернуть 30
- */
- @Override
- public int sum(int[] values) {
- return -1;
- }
-
- /**
- * Метод фильтрует массив, оставляя только четные числа.
- * Например для списка {-1, -3, 4, 8, 5, 22, 17} метод должен вернуть {4, 8, 22}
- */
- @Override
- public int[] getEvenDigits(int[] values) {
- return new int[]{};
- }
-
- /**
- * Метод считает факториал из заданного числа.
- * Например для числа 5 метод должен вернуть 120.
- * Факториал 0 должен быть равен 1.
- */
- @Override
- public long calcFactorial(int initialVal) {
- return -1L;
- }
-
- /**
- * Метод возвращает число, которе находится на заданной позиции (счет начинается с нуля) в ряду фибоначчи.
- *
- * Ряд фибоначчи - ряд, следующие элементы которого состоят из суммы двух предыдущих.
- * Ряд начинается 0 и 1.
- * Пример 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 ...
- *
- * Для числа 9 метод должен вернуть 34
- * Для числа 0 метод должен вернуть 0
- */
- @Override
- public long calcFibonacci(int number) {
- return -1L;
- }
-
- /**
- * Метод возвращает отсортированный по возрастанию массив.
- * Например для массива {-1, -3, 4, 8, 5, 22, -5} метод должен вернуть {-5, -3, -1, 4, 5, 8, 22}
- */
- @Override
- public int[] sort(int[] values) {
- return new int[]{};
- }
-
- /**
- * Метод определяет, является ли заданное число простым.
- * Простое число - число, которое делится только на 1 и на само себя.
- *
- * Например для числа 22 вернется false, а для числа 23 true.
- */
- @Override
- public boolean isPrimary(int number) {
- return false;
- }
-
- /**
- * Метод возвращает массив, в котором элементы расположены в обратном порядке.
- *
- * Например для массива {-1, -3, 4, 8, 5, 22, -5} метод вернет {-5, 22, 5, 8, 4, -3, -1}
- */
- @Override
- public int[] reverseArray(int[] values) {
- return new int[]{};
- }
-}
+package com.epam.izh.rd.online.service;
+
+import java.util.Collections;
+
+public class SimpleMathService implements MathService {
+
+ /**
+ * Метод возвращает 0, если value1 = value2.
+ * Метод возвращает -1, если value1 < value2.
+ * Метод возвращает 1, если value1 > value2.
+ *
+ * Например для (-1, -1) метод должен вернуть 0;
+ * Например для (-3, -1) метод должен вернуть -1;
+ * Например для (3, 1) метод должен вернуть 1;
+ */
+ @Override
+ public int compare(int value1, int value2) {
+ if (value1 == value2) {
+ return 0;
+ } else if (value1 < value2) {
+ return -1;
+ } else {
+ return 1;
+ }
+ }
+
+ /**
+ * Метод возвращает максимальное число из пары.
+ * Например для списка (-1, 2) метод должен вернуть 2
+ */
+ @Override
+ public int maxFrom(int value1, int value2) {
+ if (value1 >= value2) {
+ return value1;
+ } else {
+ return value2;
+ }
+ }
+
+ /**
+ * Метод возвращает максимальное число из переданного массива.
+ * Например для списка {-1, -3, 4, 8, 5, 22, -5} метод должен вернуть 22
+ */
+ @Override
+ public int maxFrom(int[] values) {
+ int max = values[0];
+ for (int value : values) {
+ if (value > max) {
+ max = value;
+ }
+ }
+ return max;
+ }
+
+ /**
+ * Метод возвращает сумму чисел массива.
+ * Например для списка {-1, -3, 4, 8, 5, 22, -5} метод должен вернуть 30
+ */
+ @Override
+ public int sum(int[] values) {
+ int sum = 0;
+ for (int element : values) {
+ sum += element;
+ }
+ return sum;
+ }
+
+ /**
+ * Метод фильтрует массив, оставляя только четные числа.
+ * Например для списка {-1, -3, 4, 8, 5, 22, 17} метод должен вернуть {4, 8, 22}
+ */
+ @Override
+ public int[] getEvenDigits(int[] values) {
+ int evenArrLength = 0;
+ for (int value : values) {
+ if (value % 2 == 0) {
+ evenArrLength++;
+ }
+ }
+ int[] arr = new int[evenArrLength];
+
+ for (int i = 0, j = 0; i < values.length; i++) {
+ if (values[i] % 2 == 0) {
+ arr[j++] = values[i];
+ }
+ }
+ return arr;
+ }
+
+ /**
+ * Метод считает факториал из заданного числа.
+ * Например для числа 5 метод должен вернуть 120.
+ * Факториал 0 должен быть равен 1.
+ */
+ @Override
+ public long calcFactorial(int initialVal) {
+ long fac = 1;
+ for (int i = 1; i <= initialVal; i++) {
+ fac *= i;
+ }
+ return fac;
+ }
+
+ /**
+ * Метод возвращает число, которе находится на заданной позиции (счет начинается с нуля) в ряду фибоначчи.
+ *
+ * Ряд фибоначчи - ряд, следующие элементы которого состоят из суммы двух предыдущих.
+ * Ряд начинается 0 и 1.
+ * Пример 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 ...
+ *
+ * Для числа 9 метод должен вернуть 34
+ * Для числа 0 метод должен вернуть 0
+ */
+ @Override
+ public long calcFibonacci(int number) {
+ if (number == 0) {
+ return 0;
+ } else if (number == 1) {
+ return 1;
+ }
+ long first = 0;
+ long second = 1;
+ long third = 1;
+ for (int i = 0; i < number - 1; i++) {
+ third = first + second;
+ first = second;
+ second = third;
+ }
+ return third;
+ }
+
+ /**
+ * Метод возвращает отсортированный по возрастанию массив.
+ * Например для массива {-1, -3, 4, 8, 5, 22, -5} метод должен вернуть {-5, -3, -1, 4, 5, 8, 22}
+ */
+ @Override
+ public int[] sort(int[] values) {
+ int temp;
+ boolean isSorted = false;
+ while (!isSorted){
+ isSorted = true;
+ for (int i = 1; i < values.length; i++){
+ if (values[i] < values[i-1]){
+ temp = values[i];
+ values[i] = values[i-1];
+ values[i-1] = temp;
+ isSorted = false;
+ }
+ }
+ }
+ return values;
+ }
+
+ /**
+ * Метод определяет, является ли заданное число простым.
+ * Простое число - число, которое делится только на 1 и на само себя.
+ *
+ * Например для числа 22 вернется false, а для числа 23 true.
+ */
+ @Override
+ public boolean isPrimary(int number) {
+ for (int i = 2; i <= number / 2; i++) {
+ if (number % i == 0) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Метод возвращает массив, в котором элементы расположены в обратном порядке.
+ *
+ * Например для массива {-1, -3, 4, 8, 5, 22, -5} метод вернет {-5, 22, 5, 8, 4, -3, -1}
+ */
+ @Override
+ public int[] reverseArray(int[] values) {
+ int reverse[] = new int[values.length];
+ for (int i = 0; i < values.length; i++) {
+ reverse[i] = values[values.length - 1 - i];
+ }
+ return reverse;
+ }
+}
diff --git a/src/test/java/com.epam.izh.rd.online/MathServiceTest.java b/src/test/java/com.epam.izh.rd.online/MathServiceTest.java
index 47d7b356..03cd3085 100644
--- a/src/test/java/com.epam.izh.rd.online/MathServiceTest.java
+++ b/src/test/java/com.epam.izh.rd.online/MathServiceTest.java
@@ -1,92 +1,92 @@
-package com.epam.izh.rd.online;
-
-import com.epam.izh.rd.online.service.MathService;
-import com.epam.izh.rd.online.service.SimpleMathService;
-import org.junit.jupiter.api.BeforeAll;
-import org.junit.jupiter.api.DisplayName;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.MethodSource;
-
-import java.util.Arrays;
-
-import static org.junit.jupiter.api.Assertions.*;
-
-public class MathServiceTest {
-
- private static MathService mathService;
-
- @BeforeAll
- static void setup() {
- mathService = new SimpleMathService();
- }
-
- @ParameterizedTest
- @MethodSource("com.epam.izh.rd.online.Providers#testCompare")
- @DisplayName("Тест метода MathService.compare(int value1, int value2)")
- void testCompare(int value1, int value2, int expected) {
- assertEquals(expected, mathService.compare(value1, value2), "Для входных параметров: " + value1 + " " + value2);
- }
-
- @Test
- @DisplayName("Тест метода MathService.maxFrom(int value1, int value2)")
- void testMaxFrom() {
- assertEquals(2, mathService.maxFrom(-10, 2), "Для входных параметров: " + -10 + " " + 2);
- }
-
- @Test
- @DisplayName("Тест метода MathService.maxFrom(int[] values)")
- void testMaxFromArray() {
- int[] param = {1, 3, 5, 7, 8};
- assertEquals(8, mathService.maxFrom(param), "Для входных параметров: " + Arrays.toString(param));
- }
-
- @ParameterizedTest
- @MethodSource("com.epam.izh.rd.online.Providers#testSumProvider")
- @DisplayName("Тест метода MathService.sum(int[] values)")
- void testSum(int[] param, int expected) {
- assertEquals(expected, mathService.sum(param), "Для входных параметров: " + Arrays.toString(param));
- }
-
- @ParameterizedTest
- @MethodSource("com.epam.izh.rd.online.Providers#testGetEvenDigitsProvider")
- @DisplayName("Тест метода MathService.getEvenDigits(int[] values)")
- void testGetEvenDigits(int[] param, int[] expected) {
- assertArrayEquals(expected, mathService.getEvenDigits(param), "Для входных параметров: " + Arrays.toString(param));
- }
-
- @ParameterizedTest
- @MethodSource("com.epam.izh.rd.online.Providers#testCalcFactorialProvider")
- @DisplayName("Тест метода MathService.calcFactorial(int initialVal)")
- void testCalcFactorial(int param, int expected) {
- assertEquals(expected, mathService.calcFactorial(param), "Для входого параметра: " + param);
- }
-
- @ParameterizedTest
- @MethodSource("com.epam.izh.rd.online.Providers#testCalcFibonacciProvider")
- @DisplayName("Тест метода MathService.calcFibonacci(int number)")
- void testCalcFibonacci(int param, int expected) {
- assertEquals(expected, mathService.calcFibonacci(param), "Для входого параметра: " + param);
- }
-
- @ParameterizedTest
- @MethodSource("com.epam.izh.rd.online.Providers#testSortProvider")
- @DisplayName("Тест метода MathService.sort(int[] arr)")
- void testSort(int[] param, int[] expected) {
- assertArrayEquals(expected, mathService.sort(param), "Для входных параметров: " + Arrays.toString(param));
- }
-
- @ParameterizedTest
- @MethodSource("com.epam.izh.rd.online.Providers#testIsPrimaryProvider")
- @DisplayName("Тест метода MathService.isPrimary(int number)")
- void testIsPrimary(int param, boolean expected) {
- assertEquals(expected, mathService.isPrimary(param), "Для входого параметра: " + param);
- }
-
- @ParameterizedTest
- @MethodSource("com.epam.izh.rd.online.Providers#testReverseArrayProvider")
- @DisplayName("Тест метода MathService.reverseArray(int[] arr)")
- void testIsPrimary(int[] param, int[] expected) {
- assertArrayEquals(expected, mathService.reverseArray(param), "Для входных параметров: " + Arrays.toString(param));
- }
-}
+package com.epam.izh.rd.online;
+
+import com.epam.izh.rd.online.service.MathService;
+import com.epam.izh.rd.online.service.SimpleMathService;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.DisplayName;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.MethodSource;
+
+import java.util.Arrays;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+public class MathServiceTest {
+
+ private static MathService mathService;
+
+ @BeforeAll
+ static void setup() {
+ mathService = new SimpleMathService();
+ }
+
+ @ParameterizedTest
+ @MethodSource("com.epam.izh.rd.online.Providers#testCompare")
+ @DisplayName("Тест метода MathService.compare(int value1, int value2)")
+ void testCompare(int value1, int value2, int expected) {
+ assertEquals(expected, mathService.compare(value1, value2), "Для входных параметров: " + value1 + " " + value2);
+ }
+
+ @Test
+ @DisplayName("Тест метода MathService.maxFrom(int value1, int value2)")
+ void testMaxFrom() {
+ assertEquals(2, mathService.maxFrom(-10, 2), "Для входных параметров: " + -10 + " " + 2);
+ }
+
+ @Test
+ @DisplayName("Тест метода MathService.maxFrom(int[] values)")
+ void testMaxFromArray() {
+ int[] param = {1, 3, 5, 7, 8};
+ assertEquals(8, mathService.maxFrom(param), "Для входных параметров: " + Arrays.toString(param));
+ }
+
+ @ParameterizedTest
+ @MethodSource("com.epam.izh.rd.online.Providers#testSumProvider")
+ @DisplayName("Тест метода MathService.sum(int[] values)")
+ void testSum(int[] param, int expected) {
+ assertEquals(expected, mathService.sum(param), "Для входных параметров: " + Arrays.toString(param));
+ }
+
+ @ParameterizedTest
+ @MethodSource("com.epam.izh.rd.online.Providers#testGetEvenDigitsProvider")
+ @DisplayName("Тест метода MathService.getEvenDigits(int[] values)")
+ void testGetEvenDigits(int[] param, int[] expected) {
+ assertArrayEquals(expected, mathService.getEvenDigits(param), "Для входных параметров: " + Arrays.toString(param));
+ }
+
+ @ParameterizedTest
+ @MethodSource("com.epam.izh.rd.online.Providers#testCalcFactorialProvider")
+ @DisplayName("Тест метода MathService.calcFactorial(int initialVal)")
+ void testCalcFactorial(int param, int expected) {
+ assertEquals(expected, mathService.calcFactorial(param), "Для входого параметра: " + param);
+ }
+
+ @ParameterizedTest
+ @MethodSource("com.epam.izh.rd.online.Providers#testCalcFibonacciProvider")
+ @DisplayName("Тест метода MathService.calcFibonacci(int number)")
+ void testCalcFibonacci(int param, int expected) {
+ assertEquals(expected, mathService.calcFibonacci(param), "Для входого параметра: " + param);
+ }
+
+ @ParameterizedTest
+ @MethodSource("com.epam.izh.rd.online.Providers#testSortProvider")
+ @DisplayName("Тест метода MathService.sort(int[] arr)")
+ void testSort(int[] param, int[] expected) {
+ assertArrayEquals(expected, mathService.sort(param), "Для входных параметров: " + Arrays.toString(param));
+ }
+
+ @ParameterizedTest
+ @MethodSource("com.epam.izh.rd.online.Providers#testIsPrimaryProvider")
+ @DisplayName("Тест метода MathService.isPrimary(int number)")
+ void testIsPrimary(int param, boolean expected) {
+ assertEquals(expected, mathService.isPrimary(param), "Для входого параметра: " + param);
+ }
+
+ @ParameterizedTest
+ @MethodSource("com.epam.izh.rd.online.Providers#testReverseArrayProvider")
+ @DisplayName("Тест метода MathService.reverseArray(int[] arr)")
+ void testIsPrimary(int[] param, int[] expected) {
+ assertArrayEquals(expected, mathService.reverseArray(param), "Для входных параметров: " + Arrays.toString(param));
+ }
+}
diff --git a/src/test/java/com.epam.izh.rd.online/Providers.java b/src/test/java/com.epam.izh.rd.online/Providers.java
index cffa6b4c..f8e3a088 100644
--- a/src/test/java/com.epam.izh.rd.online/Providers.java
+++ b/src/test/java/com.epam.izh.rd.online/Providers.java
@@ -1,91 +1,91 @@
-package com.epam.izh.rd.online;
-
-import org.junit.jupiter.params.provider.Arguments;
-
-import java.util.stream.Stream;
-
-import static org.junit.jupiter.params.provider.Arguments.arguments;
-
-public class Providers {
-
- private Providers() {
-
- }
-
- public static Stream testCompare() {
- return Stream.of(
- arguments(-10, -1, -1),
- arguments(0, 0, 0),
- arguments(3, 3, 0),
- arguments(33, 2, 1)
- );
- }
-
- public static Stream testSumProvider() {
- return Stream.of(
- arguments(new int[]{}, 0),
- arguments(new int[]{1, 2}, 3),
- arguments(new int[]{-6, 5, -2, 78}, 75),
- arguments(new int[]{5, -7, 3, 7, 3, -1, 4, 3}, 17)
- );
- }
-
- public static Stream testGetEvenDigitsProvider() {
- return Stream.of(
- arguments(new int[]{}, new int[]{}),
- arguments(new int[]{1, 2}, new int[]{2}),
- arguments(new int[]{-6, 5, -2, 78}, new int[]{-6, -2, 78}),
- arguments(new int[]{5, -7, 3, 7, 3, -1, 3}, new int[]{})
- );
- }
-
- public static Stream testCalcFactorialProvider() {
- return Stream.of(
- arguments(5, 120),
- arguments(0, 1),
- arguments(8, 40320),
- arguments(9, 362880)
- );
- }
-
- public static Stream testCalcFibonacciProvider() {
- return Stream.of(
- arguments(0, 0),
- arguments(1, 1),
- arguments(2, 1),
- arguments(3, 2),
- arguments(4, 3),
- arguments(5, 5),
- arguments(7, 13),
- arguments(11, 89)
- );
- }
-
- public static Stream testSortProvider() {
- return Stream.of(
- arguments(new int[]{}, new int[]{}),
- arguments(new int[]{-1, -3, 4, 8, 5, 22, -5}, new int[]{-5, -3, -1, 4, 5, 8, 22}),
- arguments(new int[]{3, 4, 3, 4}, new int[]{3, 3, 4, 4})
- );
- }
-
- public static Stream testIsPrimaryProvider() {
- return Stream.of(
- arguments(2, true),
- arguments(4, false),
- arguments(5, true),
- arguments(10, false),
- arguments(21, false),
- arguments(23, true),
- arguments(7349, true)
- );
- }
-
- public static Stream testReverseArrayProvider() {
- return Stream.of(
- arguments(new int[]{}, new int[]{}),
- arguments(new int[]{-1, -3, 4, 8, 5, 22, -5}, new int[]{-5, 22, 5, 8, 4, -3, -1}),
- arguments(new int[]{4, 4, 5, 5, 2, 6}, new int[]{6, 2, 5, 5, 4, 4})
- );
- }
-}
+package com.epam.izh.rd.online;
+
+import org.junit.jupiter.params.provider.Arguments;
+
+import java.util.stream.Stream;
+
+import static org.junit.jupiter.params.provider.Arguments.arguments;
+
+public class Providers {
+
+ private Providers() {
+
+ }
+
+ public static Stream testCompare() {
+ return Stream.of(
+ arguments(-10, -1, -1),
+ arguments(0, 0, 0),
+ arguments(3, 3, 0),
+ arguments(33, 2, 1)
+ );
+ }
+
+ public static Stream testSumProvider() {
+ return Stream.of(
+ arguments(new int[]{}, 0),
+ arguments(new int[]{1, 2}, 3),
+ arguments(new int[]{-6, 5, -2, 78}, 75),
+ arguments(new int[]{5, -7, 3, 7, 3, -1, 4, 3}, 17)
+ );
+ }
+
+ public static Stream testGetEvenDigitsProvider() {
+ return Stream.of(
+ arguments(new int[]{}, new int[]{}),
+ arguments(new int[]{1, 2}, new int[]{2}),
+ arguments(new int[]{-6, 5, -2, 78}, new int[]{-6, -2, 78}),
+ arguments(new int[]{5, -7, 3, 7, 3, -1, 3}, new int[]{})
+ );
+ }
+
+ public static Stream testCalcFactorialProvider() {
+ return Stream.of(
+ arguments(5, 120),
+ arguments(0, 1),
+ arguments(8, 40320),
+ arguments(9, 362880)
+ );
+ }
+
+ public static Stream testCalcFibonacciProvider() {
+ return Stream.of(
+ arguments(0, 0),
+ arguments(1, 1),
+ arguments(2, 1),
+ arguments(3, 2),
+ arguments(4, 3),
+ arguments(5, 5),
+ arguments(7, 13),
+ arguments(11, 89)
+ );
+ }
+
+ public static Stream testSortProvider() {
+ return Stream.of(
+ arguments(new int[]{}, new int[]{}),
+ arguments(new int[]{-1, -3, 4, 8, 5, 22, -5}, new int[]{-5, -3, -1, 4, 5, 8, 22}),
+ arguments(new int[]{3, 4, 3, 4}, new int[]{3, 3, 4, 4})
+ );
+ }
+
+ public static Stream testIsPrimaryProvider() {
+ return Stream.of(
+ arguments(2, true),
+ arguments(4, false),
+ arguments(5, true),
+ arguments(10, false),
+ arguments(21, false),
+ arguments(23, true),
+ arguments(7349, true)
+ );
+ }
+
+ public static Stream testReverseArrayProvider() {
+ return Stream.of(
+ arguments(new int[]{}, new int[]{}),
+ arguments(new int[]{-1, -3, 4, 8, 5, 22, -5}, new int[]{-5, 22, 5, 8, 4, -3, -1}),
+ arguments(new int[]{4, 4, 5, 5, 2, 6}, new int[]{6, 2, 5, 5, 4, 4})
+ );
+ }
+}