Skip to content

Commit 1c6f6e6

Browse files
authored
Merge pull request #234 from sir-gon/develop
[REFACTOR] [Hacker Rank]: Project Euler #1: Multiples of 3 and 5. Loa…
2 parents 955a657 + 8f263df commit 1c6f6e6

File tree

3 files changed

+50
-23
lines changed

3 files changed

+50
-23
lines changed

.github/workflows/docker-image.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,8 @@ jobs:
189189
uses: github/codeql-action/upload-sarif@v3
190190
with:
191191
sarif_file: 'trivy-results.sarif'
192+
env:
193+
ACTIONS_RUNTIME_TOKEN: ${{ secrets.GITHUB_TOKEN }}
192194

193195
report:
194196
name: "Trivy (report)"
@@ -211,3 +213,5 @@ jobs:
211213
with:
212214
image-ref: ${{ env.IMAGE_NAME }}:${{ github.sha }}
213215
format: 'table'
216+
env:
217+
ACTIONS_RUNTIME_TOKEN: ${{ secrets.GITHUB_TOKEN }}

algorithm-exercises-java/src/test/java/ae/hackerrank/projecteuler/Euler001Test.java

Lines changed: 40 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,48 @@
22

33
import static org.junit.jupiter.api.Assertions.assertEquals;
44

5-
import org.junit.jupiter.params.ParameterizedTest;
6-
import org.junit.jupiter.params.provider.CsvSource;
5+
import java.io.IOException;
6+
import java.util.List;
7+
import org.junit.jupiter.api.BeforeAll;
8+
import org.junit.jupiter.api.Test;
9+
import org.junit.jupiter.api.TestInstance;
10+
import org.junit.jupiter.api.TestInstance.Lifecycle;
11+
import util.JsonLoader;
12+
13+
@TestInstance(Lifecycle.PER_CLASS)
14+
class Euler001Test {
15+
16+
public static class Euler001TestCase {
17+
public Integer a;
18+
public Integer b;
19+
public Integer n;
20+
public Long expected;
21+
}
722

23+
private List<Euler001TestCase> testCases;
824

9-
class Euler001Test {
25+
@BeforeAll
26+
public void setup() throws IOException {
27+
String path = String.join("/",
28+
"hackerrank",
29+
"projecteuler",
30+
"euler001.testcases.json");
31+
32+
this.testCases = JsonLoader.loadJson(path, Euler001TestCase.class);
33+
}
34+
35+
@Test void euler001() {
36+
37+
for (Euler001TestCase test : testCases) {
38+
Long solutionFound = Euler001.euler001(test.a, test.b, test.n);
1039

11-
@ParameterizedTest
12-
@CsvSource({
13-
"3, 5, 10, 23, Test Case 1",
14-
"3, 5, 100, 2318, Test Case 2",
15-
"3, 5, 1000, 233168, Test Case 3"
16-
})
17-
void euler001(
18-
int a,
19-
int b,
20-
int n,
21-
long answer,
22-
String testCase) {
23-
24-
Long solutionFound = Euler001.euler001(a, b, n);
25-
26-
String log = String.format("Problem 001 solved: %s. Answer must be %s",
27-
testCase,
28-
answer);
29-
30-
assertEquals(answer, solutionFound, log);
40+
assertEquals(test.expected, solutionFound,
41+
"%s(%d, %d, %d) => must be: %s".formatted(
42+
"Euler001.euler001",
43+
test.a, test.b, test.n,
44+
test.expected
45+
)
46+
);
47+
}
3148
}
3249
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[
2+
{ "a": 3, "b": 5, "n": 10, "expected": 23 },
3+
{ "a": 5, "b": 3, "n": 10, "expected": 23 },
4+
{ "a": 3, "b": 5, "n": 100, "expected": 2318 },
5+
{ "a": 3, "b": 5, "n": 1000, "expected": 233168 }
6+
]

0 commit comments

Comments
 (0)