// Path: src/main/java/demo/Calculator.java
// public class Calculator {
// 
// 	public int add(int a, int b) {
// 		return a + b;
// 	}
// 
// 	public int subtract(int a, int b) {
// 		return a - b;
// 	}
// 
// 	public int multiply(int a, int b) {
// 		return a * b;
// 	}
// 
// 	public int divide(int a, int b) {
// 		return a / b;
// 	}
// 
// 	public int fibonacci(int n) {
// 		if (n == 0) {
// 			return 0;
// 		}
// 		else if (n == 1) {
// 			return 1;
// 		}
// 		return fibonacci(n - 1) + fibonacci(n - 2);
// 	}
// 
// }


import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.parallel.ExecutionMode.CONCURRENT;
import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.jupiter.api.parallel.Execution;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
import demo.Calculator;

package working;




@Execution(CONCURRENT)
@ExtendWith(LoggingExtension.class)
class ParameterizedFibonacciTests {

	private final Calculator calculator = new Calculator();

	@ParameterizedTest(name = "fib({0}) → {1}")
	@CsvSource({ //
			"0,  0", //
			"1,  1", //
			"2,  1", //
			"3,  2", //
			"4,  3", //
			"5,  5", //
// Path: src/main/java/demo/Calculator.java
// public class Calculator {
// 
// 	public int add(int a, int b) {
// 		return a + b;
// 	}
// 
// 	public int subtract(int a, int b) {
// 		return a - b;
// 	}
// 
// 	public int multiply(int a, int b) {
// 		return a * b;
// 	}
// 
// 	public int divide(int a, int b) {
// 		return a / b;
// 	}
// 
// 	public int fibonacci(int n) {
// 		if (n == 0) {
// 			return 0;
// 		}
// 		else if (n == 1) {
// 			return 1;
// 		}
// 		return fibonacci(n - 1) + fibonacci(n - 2);
// 	}
// 
// }


// Path: src/test/java/working/ParameterizedFibonacciTests.java
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.parallel.ExecutionMode.CONCURRENT;
import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.jupiter.api.parallel.Execution;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
import demo.Calculator;


package working;




@Execution(CONCURRENT)
@ExtendWith(LoggingExtension.class)
class ParameterizedFibonacciTests {

	private final Calculator calculator = new Calculator();

	@ParameterizedTest(name = "fib({0}) → {1}")
	@CsvSource({ //
			"0,  0", //
			"1,  1", //
			"2,  1", //
			"3,  2", //
			"4,  3", //
			"5,  5", //
			"40, 102334155", //