Skip to content

Commit 7779c18

Browse files
authored
Add More Tests (TheAlgorithms#4148)
1 parent f35e9a7 commit 7779c18

File tree

6 files changed

+105
-30
lines changed

6 files changed

+105
-30
lines changed
Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,23 @@
11
package com.thealgorithms.maths;
22

3+
/**
4+
* https://en.wikipedia.org/wiki/Leonardo_number
5+
*/
36
public class LeonardoNumber {
47

8+
/**
9+
* Calculate nth Leonardo Number (1, 1, 3, 5, 9, 15, 25, 41, 67, 109, 177, ...)
10+
*
11+
* @param n the index of Leonardo Number to calculate
12+
* @return nth number of Leonardo sequences
13+
*/
514
public static int leonardoNumber(int n) {
615
if (n < 0) {
7-
return 0;
16+
throw new ArithmeticException();
817
}
918
if (n == 0 || n == 1) {
1019
return 1;
1120
}
1221
return (leonardoNumber(n - 1) + leonardoNumber(n - 2) + 1);
1322
}
14-
15-
public static void main(String args[]) {
16-
for (int i = 0; i < 20; i++) {
17-
System.out.print(leonardoNumber(i) + " ");
18-
}
19-
}
2023
}

src/main/java/com/thealgorithms/maths/LucasSeries.java

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,12 @@
55
*/
66
public class LucasSeries {
77

8-
public static void main(String[] args) {
9-
assert lucasSeries(1) == 2 && lucasSeriesIteration(1) == 2;
10-
assert lucasSeries(2) == 1 && lucasSeriesIteration(2) == 1;
11-
assert lucasSeries(3) == 3 && lucasSeriesIteration(3) == 3;
12-
assert lucasSeries(4) == 4 && lucasSeriesIteration(4) == 4;
13-
assert lucasSeries(5) == 7 && lucasSeriesIteration(5) == 7;
14-
assert lucasSeries(6) == 11 && lucasSeriesIteration(6) == 11;
15-
assert lucasSeries(11) == 123 && lucasSeriesIteration(11) == 123;
16-
}
17-
188
/**
19-
* Calculate nth number of lucas series(2, 1, 3, 4, 7, 11, 18, 29, 47, 76,
9+
* Calculate nth number of Lucas Series(2, 1, 3, 4, 7, 11, 18, 29, 47, 76,
2010
* 123, ....) using recursion
2111
*
2212
* @param n nth
23-
* @return nth number of lucas series
13+
* @return nth number of Lucas Series
2414
*/
2515
public static int lucasSeries(int n) {
2616
return n == 1
@@ -29,7 +19,7 @@ public static int lucasSeries(int n) {
2919
}
3020

3121
/**
32-
* Calculate nth number of lucas series(2, 1, 3, 4, 7, 11, 18, 29, 47, 76,
22+
* Calculate nth number of Lucas Series(2, 1, 3, 4, 7, 11, 18, 29, 47, 76,
3323
* 123, ....) using iteration
3424
*
3525
* @param n nth

src/main/java/com/thealgorithms/maths/Median.java

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,9 @@
77
*/
88
public class Median {
99

10-
public static void main(String[] args) {
11-
assert median(new int[] { 0 }) == 0;
12-
assert median(new int[] { 1, 2 }) == 1.5;
13-
assert median(new int[] { 4, 1, 3, 2 }) == 2.5;
14-
assert median(new int[] { 1, 3, 3, 6, 7, 8, 9 }) == 6;
15-
assert median(new int[] { 1, 2, 3, 4, 5, 6, 8, 9 }) == 4.5;
16-
}
17-
1810
/**
1911
* Calculate average median
20-
*
21-
* @param values number series
12+
* @param values sorted numbers to find median of
2213
* @return median of given {@code values}
2314
*/
2415
public static double median(int[] values) {
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package com.thealgorithms.maths;
2+
3+
import org.junit.jupiter.api.Test;
4+
import static org.junit.jupiter.api.Assertions.assertEquals;
5+
import static org.junit.jupiter.api.Assertions.assertThrows;
6+
7+
public class LeonardoNumberTest {
8+
@Test
9+
void leonardoNumberNegative() {
10+
assertThrows(ArithmeticException.class, ()-> LeonardoNumber.leonardoNumber(-1));
11+
}
12+
@Test
13+
void leonardoNumberZero() {
14+
assertEquals(1, LeonardoNumber.leonardoNumber(0));
15+
}
16+
@Test
17+
void leonardoNumberOne() {
18+
assertEquals(1, LeonardoNumber.leonardoNumber(1));
19+
}
20+
@Test
21+
void leonardoNumberFive() {
22+
assertEquals(15, LeonardoNumber.leonardoNumber(5));
23+
}
24+
@Test
25+
void leonardoNumberTwenty() {
26+
assertEquals(21891 , LeonardoNumber.leonardoNumber(20));
27+
}
28+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package com.thealgorithms.maths;
2+
3+
import org.junit.jupiter.api.Test;
4+
import static org.junit.jupiter.api.Assertions.assertEquals;
5+
6+
public class LucasSeriesTest {
7+
@Test
8+
void lucasSeriesTwo() {
9+
assertEquals(2, LucasSeries.lucasSeries(1));
10+
assertEquals(2, LucasSeries.lucasSeriesIteration(1));
11+
}
12+
@Test
13+
void lucasSeriesOne() {
14+
assertEquals(1, LucasSeries.lucasSeries(2));
15+
assertEquals(1, LucasSeries.lucasSeriesIteration(2));
16+
}
17+
@Test
18+
void lucasSeriesSeven() {
19+
assertEquals(7, LucasSeries.lucasSeries(5));
20+
assertEquals(7, LucasSeries.lucasSeriesIteration(5));
21+
}
22+
@Test
23+
void lucasSeriesEleven() {
24+
assertEquals(123, LucasSeries.lucasSeries(11));
25+
assertEquals(123, LucasSeries.lucasSeriesIteration(11));
26+
}
27+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package com.thealgorithms.maths;
2+
3+
import org.junit.jupiter.api.Test;
4+
import static org.junit.jupiter.api.Assertions.assertEquals;
5+
6+
public class MedianTest {
7+
@Test
8+
void medianSingleValue() {
9+
int[] arr = {0};
10+
assertEquals(0, Median.median(arr));
11+
}
12+
13+
@Test
14+
void medianTwoValues() {
15+
int[] arr = {1, 2};
16+
assertEquals(1.5, Median.median(arr));
17+
}
18+
19+
@Test
20+
void medianThreeValues() {
21+
int[] arr = {1, 2, 3};
22+
assertEquals(2, Median.median(arr));
23+
}
24+
25+
@Test
26+
void medianDecimalValueReturn() {
27+
int[] arr = {1, 2, 3, 4, 5, 6, 8, 9};
28+
assertEquals(4.5, Median.median(arr));
29+
}
30+
31+
@Test
32+
void medianNegativeValues() {
33+
int[] arr = {-27, -16, -7, -4, -2, -1};
34+
assertEquals(-5.5, Median.median(arr));
35+
}
36+
}

0 commit comments

Comments
 (0)