Skip to content

Commit 7fe924c

Browse files
committed
Исправил ошибки в тестах. Убрал задачу - калькулятор.
1 parent 8e59abe commit 7fe924c

6 files changed

Lines changed: 69 additions & 65 deletions

File tree

README.md

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,4 @@
11
# Шаблон для практической работы по теме Java Basics
2-
3-
### Задание №1
42
Реализуйте методы в классе SimpleMathService. Следите за правильностью написания кода - метод должен
53
делать только то, что от него требуется. Также уделите внимание оптимизации, некоторые методы можно выполнить несколькими
6-
способами, от быстрого и красивого до нечитаемого и медленного.
7-
8-
### Задание №2
9-
Реализовать класс Expression, который создается конструктором с единственным аргументом (стартовое значение) и к
10-
экземпляру возможно применить следующие методы: `plus`, `minus`, `divide`, `multiply`, `sqrt`, `pow`, `mod`, `factorial`,
11-
и `calculate`.
12-
Пример:\
13-
`new Expression(2)`\
14-
`.plus(6)`\
15-
`.divide(2)`\
16-
`.sqrt()`\
17-
`.calculate()` - возвращает ответ (в конкретном случае 2)
18-
При возникновении исключительных ситуаций (например, деление на 0) должно выводиться сообщение об ошибке.
19-
В методе Main необходимо написать демо, демострирующее работу данного класса.
4+
способами, от быстрого и красивого до нечитаемого и медленного.

src/main/java/com/epam/izh/rd/online/calculator/Expression.java

Lines changed: 0 additions & 21 deletions
This file was deleted.

src/main/java/com/epam/izh/rd/online/service/MathService.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
public interface MathService {
44

5+
int compare(int value1, int value2);
6+
57
int maxFrom(int value1, int value2);
68

79
int maxFrom(int[] values);
@@ -14,9 +16,9 @@ public interface MathService {
1416

1517
long calcFibonacci(int number);
1618

17-
int[] sort(int[] arr);
19+
int[] sort(int[] values);
1820

1921
boolean isPrimary(int number);
2022

21-
int[] reverseArray(int[] arr);
23+
int[] reverseArray(int[] values);
2224
}

src/main/java/com/epam/izh/rd/online/service/SimpleMathService.java

Lines changed: 32 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,36 @@
22

33
public class SimpleMathService implements MathService {
44

5+
/**
6+
* Метод возвращает 0, если value1 = value2.
7+
* Метод возвращает -1, если value1 < value2.
8+
* Метод возвращает 1, если value1 > value2.
9+
*
10+
* Например для (-1, -1) метод должен вернуть 0;
11+
* Например для (-3, -1) метод должен вернуть -1;
12+
* Например для (3, 1) метод должен вернуть 1;
13+
*/
14+
@Override
15+
public int compare(int value1, int value2) {
16+
return -2;
17+
}
18+
519
/**
620
* Метод возвращает максимальное число из пары.
721
* Например для списка (-1, 2) метод должен вернуть 2
822
*/
923
@Override
1024
public int maxFrom(int value1, int value2) {
11-
return -1; //TODO
25+
return -1;
1226
}
1327

1428
/**
15-
* Метод возвращает максимальное число из массива.
29+
* Метод возвращает максимальное число из переданного массива.
1630
* Например для списка {-1, -3, 4, 8, 5, 22, -5} метод должен вернуть 22
1731
*/
1832
@Override
1933
public int maxFrom(int[] values) {
20-
return -1; //TODO
34+
return -1;
2135
}
2236

2337
/**
@@ -26,7 +40,7 @@ public int maxFrom(int[] values) {
2640
*/
2741
@Override
2842
public int sum(int[] values) {
29-
return -1; //TODO
43+
return -1;
3044
}
3145

3246
/**
@@ -35,50 +49,52 @@ public int sum(int[] values) {
3549
*/
3650
@Override
3751
public int[] getEvenDigits(int[] values) {
38-
return null; //TODO
52+
return null;
3953
}
4054

4155
/**
4256
* Метод считает факториал из заданного числа.
43-
* Например для числа 5 метод должен вернуть 120
57+
* Например для числа 5 метод должен вернуть 120.
58+
* Факториал 0 должен быть равен 1.
4459
*/
4560
@Override
4661
public long calcFactorial(int initialVal) {
47-
return -1L; //TODO
62+
return -1L;
4863
}
4964

5065
/**
51-
* Метод возвращает число, которе находится на заданной позиции в ряду фибоначчи.
66+
* Метод возвращает число, которе находится на заданной позиции (счет начинается с нуля) в ряду фибоначчи.
5267
*
5368
* Ряд фибоначчи - ряд, следующие элементы которого состоят из суммы двух предыдущих.
54-
* Ряд начинается с 0 и 1.
69+
* Ряд начинается 0 и 1.
70+
* Пример 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55 ...
5571
*
56-
* Например для числа 9 метод должен вернуть 34
72+
* Для числа 9 метод должен вернуть 34
73+
* Для числа 0 метод должен вернуть 0
5774
*/
5875
@Override
5976
public long calcFibonacci(int number) {
60-
return -1L; //TODO
77+
return -1L;
6178
}
6279

6380
/**
6481
* Метод возвращает отсортированный по возрастанию массив.
6582
* Например для массива {-1, -3, 4, 8, 5, 22, -5} метод должен вернуть {-5, -3, -1, 4, 5, 8, 22}
6683
*/
6784
@Override
68-
public int[] sort(int[] arr) {
69-
return null; //TODO
85+
public int[] sort(int[] values) {
86+
return null;
7087
}
7188

7289
/**
7390
* Метод определяет, является ли заданное число простым.
74-
*
7591
* Простое число - число, которое делится только на 1 и на само себя.
7692
*
7793
* Например для числа 22 вернется false, а для числа 23 true.
7894
*/
7995
@Override
8096
public boolean isPrimary(int number) {
81-
return false; //TODO
97+
return false;
8298
}
8399

84100
/**
@@ -87,7 +103,7 @@ public boolean isPrimary(int number) {
87103
* Например для массива {-1, -3, 4, 8, 5, 22, -5} метод вернет {-5, 22, 5, 8, 4, -3, -1}
88104
*/
89105
@Override
90-
public int[] reverseArray(int[] arr) {
106+
public int[] reverseArray(int[] values) {
91107
return null;
92108
}
93109
}

src/test/java/com.epam.izh.rd.online/MathServiceTest.java

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import org.junit.jupiter.params.ParameterizedTest;
99
import org.junit.jupiter.params.provider.MethodSource;
1010

11-
import static org.junit.jupiter.api.Assertions.assertEquals;
11+
import static org.junit.jupiter.api.Assertions.*;
1212

1313
public class MathServiceTest {
1414

@@ -19,6 +19,13 @@ static void setup() {
1919
mathService = new SimpleMathService();
2020
}
2121

22+
@ParameterizedTest
23+
@MethodSource("com.epam.izh.rd.online.Providers#testCompare")
24+
@DisplayName("Тест метода MathService.compare(int value1, int value2)")
25+
void testCompare(int value1, int value2, int expected) {
26+
assertEquals(expected, mathService.compare(value1, value2));
27+
}
28+
2229
@Test
2330
@DisplayName("Тест метода MathService.maxFrom(int value1, int value2)")
2431
void testMaxFrom() {
@@ -42,7 +49,7 @@ void testSum(int[] param, int expected) {
4249
@MethodSource("com.epam.izh.rd.online.Providers#testGetEvenDigitsProvider")
4350
@DisplayName("Тест метода MathService.getEvenDigits(int[] values)")
4451
void testGetEvenDigits(int[] param, int[] expected) {
45-
assertEquals(expected, mathService.getEvenDigits(param));
52+
assertArrayEquals(expected, mathService.getEvenDigits(param));
4653
}
4754

4855
@ParameterizedTest
@@ -63,7 +70,7 @@ void testCalcFibonacci(int param, int expected) {
6370
@MethodSource("com.epam.izh.rd.online.Providers#testSortProvider")
6471
@DisplayName("Тест метода MathService.sort(int[] arr)")
6572
void testSort(int[] param, int[] expected) {
66-
assertEquals(expected, mathService.sort(param));
73+
assertArrayEquals(expected, mathService.sort(param));
6774
}
6875

6976
@ParameterizedTest
@@ -77,6 +84,6 @@ void testIsPrimary(int param, boolean expected) {
7784
@MethodSource("com.epam.izh.rd.online.Providers#testReverseArrayProvider")
7885
@DisplayName("Тест метода MathService.reverseArray(int[] arr)")
7986
void testIsPrimary(int[] param, int[] expected) {
80-
assertEquals(expected, mathService.reverseArray(param));
87+
assertArrayEquals(expected, mathService.reverseArray(param));
8188
}
8289
}

src/test/java/com.epam.izh.rd.online/Providers.java

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,30 @@ private Providers() {
1212

1313
}
1414

15+
public static Stream<Arguments> testCompare() {
16+
return Stream.of(
17+
arguments(-10, -1, -1),
18+
arguments(0, 0, 0),
19+
arguments(3, 3, 0),
20+
arguments(33, 2, 1)
21+
);
22+
}
23+
1524
public static Stream<Arguments> testSumProvider() {
1625
return Stream.of(
26+
arguments(new int[]{}, 0),
1727
arguments(new int[]{1, 2}, 3),
1828
arguments(new int[]{-6, 5, -2, 78}, 75),
19-
arguments(new int[]{5, -7, 3, 7, 3, -1, 4, 3}, 15)
29+
arguments(new int[]{5, -7, 3, 7, 3, -1, 4, 3}, 17)
2030
);
2131
}
2232

2333
public static Stream<Arguments> testGetEvenDigitsProvider() {
2434
return Stream.of(
25-
arguments(new int[]{2}, new int[]{1, 2}),
26-
arguments(new int[]{-6, -2, 78}, new int[]{-6, 5, -2, 78}),
27-
arguments(new int[]{}, new int[]{5, -7, 3, 7, 3, -1, 3})
35+
arguments(new int[]{}, new int[]{}),
36+
arguments(new int[]{1, 2}, new int[]{2}),
37+
arguments(new int[]{-6, 5, -2, 78}, new int[]{-6, -2, 78}),
38+
arguments(new int[]{5, -7, 3, 7, 3, -1, 3}, new int[]{})
2839
);
2940
}
3041

@@ -39,6 +50,7 @@ public static Stream<Arguments> testCalcFactorialProvider() {
3950

4051
public static Stream<Arguments> testCalcFibonacciProvider() {
4152
return Stream.of(
53+
arguments(0, 0),
4254
arguments(1, 1),
4355
arguments(2, 1),
4456
arguments(3, 2),
@@ -51,24 +63,27 @@ public static Stream<Arguments> testCalcFibonacciProvider() {
5163

5264
public static Stream<Arguments> testSortProvider() {
5365
return Stream.of(
66+
arguments(new int[]{}, new int[]{}),
5467
arguments(new int[]{-1, -3, 4, 8, 5, 22, -5}, new int[]{-5, -3, -1, 4, 5, 8, 22}),
5568
arguments(new int[]{3, 4, 3, 4}, new int[]{3, 3, 4, 4})
5669
);
5770
}
5871

5972
public static Stream<Arguments> testIsPrimaryProvider() {
6073
return Stream.of(
61-
arguments(1, true),
74+
arguments(2, true),
6275
arguments(4, false),
6376
arguments(5, true),
6477
arguments(10, false),
6578
arguments(21, false),
66-
arguments(23, true)
79+
arguments(23, true),
80+
arguments(7349, true)
6781
);
6882
}
6983

7084
public static Stream<Arguments> testReverseArrayProvider() {
7185
return Stream.of(
86+
arguments(new int[]{}, new int[]{}),
7287
arguments(new int[]{-1, -3, 4, 8, 5, 22, -5}, new int[]{-5, 22, 5, 8, 4, -3, -1}),
7388
arguments(new int[]{4, 4, 5, 5, 2, 6}, new int[]{6, 2, 5, 5, 4, 4})
7489
);

0 commit comments

Comments
 (0)