mirror of
https://bitbucket.org/Mattrixwv/projecteulerjava.git
synced 2025-12-06 17:13:58 -05:00
61 lines
1.6 KiB
Java
61 lines
1.6 KiB
Java
package com.mattrixwv.project_euler.problems;
|
|
|
|
|
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
|
import static org.junit.jupiter.api.Assertions.assertThrows;
|
|
|
|
import org.junit.jupiter.api.Test;
|
|
import org.junit.jupiter.api.extension.ExtendWith;
|
|
import org.mockito.InjectMocks;
|
|
import org.mockito.junit.jupiter.MockitoExtension;
|
|
|
|
import com.mattrixwv.project_euler.exceptions.Unsolved;
|
|
|
|
|
|
@ExtendWith(MockitoExtension.class)
|
|
public class TestProblem29 extends BaseTest{
|
|
@InjectMocks
|
|
private Problem29 problem;
|
|
|
|
|
|
@Test
|
|
@Override
|
|
public void testDescription(){
|
|
assertEquals("How many distinct terms are in the sequence generated by a^b for 2 <= a <= 100 and 2 <= b <= 100?", problem.getDescription());
|
|
assertFalse(problem.getSolved());
|
|
}
|
|
|
|
@Test
|
|
@Override
|
|
public void testSolve(){
|
|
assertThrows(Unsolved.class, () -> { problem.getUnique(); });
|
|
assertThrows(Unsolved.class, () -> { problem.getNumUnique(); });
|
|
|
|
problem.solve();
|
|
|
|
//Verify result
|
|
assertEquals(9183, problem.getUnique().size());
|
|
assertEquals(9183, problem.getNumUnique());
|
|
assertEquals("The number of unique values generated by a^b for 2 <= a <= 100 and 2 <= b <= 100 is 9183", problem.getResult());
|
|
//Verify the problem variables and functions were called
|
|
verifyProblem(problem);
|
|
|
|
//Verify the problem won't be run again
|
|
verifyProblemSecondRun(problem);
|
|
}
|
|
|
|
@Test
|
|
@Override
|
|
public void testReset(){
|
|
problem.reset();
|
|
|
|
//Verify solved was reset
|
|
assertFalse(problem.getSolved());
|
|
super.testReset();
|
|
|
|
//Verify the problem can be solved again
|
|
testSolve();
|
|
}
|
|
}
|