Files
ProjectEulerJava/src/test/java/com/mattrixwv/project_euler/problems/TestProblem27.java
2023-06-30 21:59:11 -04:00

67 lines
1.7 KiB
Java

package com.mattrixwv.project_euler.problems;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import com.mattrixwv.project_euler.exceptions.Unsolved;
public class TestProblem27 extends TestProblemBase{
@InjectMocks
private Problem27 problem;
static{
description = "Find the product of the coefficients, |a| <= 999 and |b| <= 1000, for the quadratic expression that produces the maximum number of primes for consecutive values of n, starting with n=0";
result = String.format("The greatest number of primes found is 70%nIt was found with A = -61, B = 971%nThe product of A and B is -59231");
}
private int topA = -61;
private int topB = 971;
private int topN = 70;
@Test
@Override
public void testDescription(){
super.testDescription(problem);
}
@Test
@Override
public void testSolve(){
assertThrows(Unsolved.class, () -> { problem.getTopA(); });
assertThrows(Unsolved.class, () -> { problem.getTopB(); });
assertThrows(Unsolved.class, () -> { problem.getTopN(); });
assertThrows(Unsolved.class, () -> { problem.getProduct(); });
super.testSolve(problem);
//Verify result
assertEquals(topA, problem.getTopA());
assertEquals(topB, problem.getTopB());
assertEquals(topN, problem.getTopN());
assertEquals(topA * topB, problem.getProduct());
}
@Test
@Override
public void testReset(){
//Setup
problem.topA = topA;
problem.topB = topB;
problem.topN = topN;
problem.solved = true;
super.testReset(problem);
}
@Override
public void verifyReset(){
assertEquals(0, problem.topA);
assertEquals(0, problem.topB);
assertEquals(0, problem.topN);
}
}