JAVA-625: Moved 3 articles from java-numbers-2 to java-numbers-3
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
package com.baeldung.fibonacci;
|
||||
|
||||
public class FibonacciSeriesUtils {
|
||||
|
||||
public static int nthFibonacciTermRecursiveMethod(int n) {
|
||||
if (n == 0 || n == 1) {
|
||||
return n;
|
||||
}
|
||||
return nthFibonacciTermRecursiveMethod(n - 1) + nthFibonacciTermRecursiveMethod(n - 2);
|
||||
}
|
||||
|
||||
public static int nthFibonacciTermIterativeMethod(int n) {
|
||||
if (n == 0 || n == 1) {
|
||||
return n;
|
||||
}
|
||||
int n0 = 0, n1 = 1;
|
||||
int tempNthTerm;
|
||||
for (int i = 2; i <= n; i++) {
|
||||
tempNthTerm = n0 + n1;
|
||||
n0 = n1;
|
||||
n1 = tempNthTerm;
|
||||
}
|
||||
return n1;
|
||||
}
|
||||
|
||||
public static int nthFibonacciTermUsingBinetsFormula(int n) {
|
||||
final double squareRootOf5 = Math.sqrt(5);
|
||||
final double phi = (1 + squareRootOf5)/2;
|
||||
int nthTerm = (int) ((Math.pow(phi, n) - Math.pow(-phi, -n))/squareRootOf5);
|
||||
return nthTerm;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.baeldung.numbersinrange;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
public class NumbersInARange {
|
||||
|
||||
public List<Integer> getNumbersInRange(int start, int end) {
|
||||
List<Integer> result = new ArrayList<>();
|
||||
for (int i = start; i < end; i++) {
|
||||
result.add(i);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public List<Integer> getNumbersUsingIntStreamRange(int start, int end) {
|
||||
return IntStream.range(start, end)
|
||||
.boxed()
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public List<Integer> getNumbersUsingIntStreamRangeClosed(int start, int end) {
|
||||
return IntStream.rangeClosed(start, end)
|
||||
.boxed()
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
public List<Integer> getNumbersUsingIntStreamIterate(int start, int limit) {
|
||||
return IntStream.iterate(start, i -> i + 1)
|
||||
.limit(limit)
|
||||
.boxed()
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.baeldung.numbersinrange;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
public class RandomNumbersInARange {
|
||||
|
||||
public int getRandomNumber(int min, int max) {
|
||||
return (int) ((Math.random() * (max - min)) + min);
|
||||
}
|
||||
|
||||
public int getRandomNumberUsingNextInt(int min, int max) {
|
||||
Random random = new Random();
|
||||
return random.nextInt(max - min) + min;
|
||||
}
|
||||
|
||||
public int getRandomNumberUsingInts(int min, int max) {
|
||||
Random random = new Random();
|
||||
return random.ints(min, max)
|
||||
.findFirst()
|
||||
.getAsInt();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.baeldung.fibonacci;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
public class FibonacciSeriesUtilsUnitTest {
|
||||
|
||||
@Test
|
||||
public void givenTermToCalculate_thenReturnThatTermUsingRecursion() {
|
||||
int term = 10;
|
||||
int expectedValue = 55;
|
||||
assertEquals(FibonacciSeriesUtils.nthFibonacciTermRecursiveMethod(term), expectedValue);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenTermToCalculate_thenReturnThatTermUsingIteration() {
|
||||
int term = 10;
|
||||
int expectedValue = 55;
|
||||
assertEquals(FibonacciSeriesUtils.nthFibonacciTermIterativeMethod(term), expectedValue);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenTermToCalculate_thenReturnThatTermUsingBinetsFormula() {
|
||||
int term = 10;
|
||||
int expectedValue = 55;
|
||||
assertEquals(FibonacciSeriesUtils.nthFibonacciTermUsingBinetsFormula(term), expectedValue);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
package com.baeldung.numbersinrange;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
public class NumbersInARangeUnitTest {
|
||||
|
||||
@Test
|
||||
public void givenTheRange1To10_andUsingForLoop_thenExpectCorrectResult() {
|
||||
NumbersInARange numbersInARange = new NumbersInARange();
|
||||
List<Integer> numbers = numbersInARange.getNumbersInRange(1, 10);
|
||||
|
||||
assertEquals(Arrays.asList(1,2,3,4,5,6,7,8,9), numbers);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenTheRange1To10_andUsingIntStreamRange_thenExpectCorrectResult() {
|
||||
NumbersInARange numbersInARange = new NumbersInARange();
|
||||
List<Integer> numbers = numbersInARange.getNumbersUsingIntStreamRange(1, 10);
|
||||
|
||||
assertEquals(Arrays.asList(1,2,3,4,5,6,7,8,9), numbers);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenTheRange1To10_andUsingIntStreamRangeClosed_thenExpectCorrectResult() {
|
||||
NumbersInARange numbersInARange = new NumbersInARange();
|
||||
List<Integer> numbers = numbersInARange.getNumbersUsingIntStreamRangeClosed(1, 10);
|
||||
|
||||
assertEquals(Arrays.asList(1,2,3,4,5,6,7,8,9,10), numbers);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenTheRange1To10_andUsingIntStreamIterate_thenExpectCorrectResult() {
|
||||
NumbersInARange numbersInARange = new NumbersInARange();
|
||||
List<Integer> numbers = numbersInARange.getNumbersUsingIntStreamIterate(1, 10);
|
||||
|
||||
assertEquals(Arrays.asList(1,2,3,4,5,6,7,8,9,10), numbers);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.baeldung.numbersinrange;
|
||||
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
public class RandomNumbersInARangeUnitTest {
|
||||
|
||||
@Test
|
||||
public void givenTheRange1To10_andUsingMathRandom_thenExpectCorrectResult() {
|
||||
RandomNumbersInARange randomNumbersInARange = new RandomNumbersInARange();
|
||||
int number = randomNumbersInARange.getRandomNumber(1, 10);
|
||||
|
||||
assertTrue(number >= 1);
|
||||
assertTrue(number < 10);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenTheRange1To10_andUsingRandomInts_thenExpectCorrectResult() {
|
||||
RandomNumbersInARange randomNumbersInARange = new RandomNumbersInARange();
|
||||
int number = randomNumbersInARange.getRandomNumberUsingInts(1, 10);
|
||||
|
||||
assertTrue(number >= 1);
|
||||
assertTrue(number < 10);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void givenTheRange1To10_andUsingRandomNextInt_thenExpectCorrectResult() {
|
||||
RandomNumbersInARange randomNumbersInARange = new RandomNumbersInARange();
|
||||
int number = randomNumbersInARange.getRandomNumberUsingNextInt(1, 10);
|
||||
|
||||
assertTrue(number >= 1);
|
||||
assertTrue(number < 10);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user