From 10039cdf689076dd4675922faa32bc6848bcd5eb Mon Sep 17 00:00:00 2001 From: Gonzalo Diaz Date: Fri, 30 Jan 2026 10:12:03 -0300 Subject: [PATCH 1/4] [BUGFIX] gradle warning fixed: - `/Users/gdiazc/devel/sir-gon/algorithm-exercises-java/algorithm-exercises-java/build.gradle` - [warn] Declaring dependencies using multi-string notation has been deprecated.`:34` - [warn] Declaring dependencies using multi-string notation has been deprecated.`:35` - [warn] Declaring dependencies using multi-string notation has been deprecated.`:36` --- algorithm-exercises-java/build.gradle | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/algorithm-exercises-java/build.gradle b/algorithm-exercises-java/build.gradle index 2ff6f76b..8934b191 100644 --- a/algorithm-exercises-java/build.gradle +++ b/algorithm-exercises-java/build.gradle @@ -31,9 +31,9 @@ dependencies { implementation 'com.google.guava:guava:33.5.0-jre' // - implementation group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.21.0' - implementation group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.21' - implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.21.0' + implementation 'com.fasterxml.jackson.core:jackson-core:2.21.0' + implementation 'com.fasterxml.jackson.core:jackson-annotations:2.21' + implementation 'com.fasterxml.jackson.core:jackson-databind:2.21.0' } From d1bc3889f95b812180d20548ed1b893d910b1082 Mon Sep 17 00:00:00 2001 From: Gonzalo Diaz Date: Fri, 30 Jan 2026 12:50:09 -0300 Subject: [PATCH 2/4] [Github Actions] CodeQL, don't check styling, just build. --- .github/workflows/codeql.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 2d2a38df..57213ac3 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -10,17 +10,16 @@ # supported CodeQL languages. # --- - name: CodeQL permissions: read-all on: # yamllint disable-line rule:truthy push: - branches: ["main"] + branches: ['main'] pull_request: # The branches below must be a subset of the branches above - branches: ["main"] + branches: ['main'] workflow_dispatch: schedule: # ┌───────────── minute (0 - 59) @@ -43,8 +42,7 @@ jobs: # - https://gh.io/using-larger-runners (GitHub.com only) # Consider using larger runners or machines with greater resources # for possible analysis time improvements. - runs-on: - ${{ (matrix.language == 'swift' && 'macos-14') || 'ubuntu-24.04' }} + runs-on: ${{ (matrix.language == 'swift' && 'macos-14') || 'ubuntu-24.04' }} permissions: # required for all workflows security-events: write @@ -106,7 +104,7 @@ jobs: - run: | echo Run, Build Application using script - ./gradlew build + ./gradlew build -x checkstyleMain checkstyleTest # - run: | # echo Run, Build Application using script From d6e143f1f6567739d456011292aa3d49f8f529ab Mon Sep 17 00:00:00 2001 From: Gonzalo Diaz Date: Fri, 30 Jan 2026 17:04:16 -0300 Subject: [PATCH 3/4] [BUGFIX] Null analysis at compile time, config removed. --- .vscode/settings.json | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index df346f23..2bd7fffd 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,11 +1,10 @@ { - "java.configuration.updateBuildConfiguration": "automatic", - "java.compile.nullAnalysis.mode": "automatic", - "java.checkstyle.configuration": "${workspaceFolder}/checkstyle.xml", - "java.checkstyle.version": "10.10.0", - "sonarlint.connectedMode.project": { - "connectionId": "sir-gon", - "projectKey": "sir-gon_algorithm-exercises-java" - }, - "snyk.advanced.additionalParameters": "--exclude=.trunk,algorithm-exercises-java/build/reports" -} + "java.configuration.updateBuildConfiguration": "automatic", + "java.checkstyle.configuration": "${workspaceFolder}/checkstyle.xml", + "java.checkstyle.version": "10.10.0", + "sonarlint.connectedMode.project": { + "connectionId": "sir-gon", + "projectKey": "sir-gon_algorithm-exercises-java" + }, + "snyk.advanced.additionalParameters": "--exclude=.trunk,algorithm-exercises-java/build/reports" +} \ No newline at end of file From 1c9602d6a711a0a69d36221d7d9aa9f25185ce09 Mon Sep 17 00:00:00 2001 From: Gonzalo Diaz Date: Fri, 30 Jan 2026 16:29:18 -0300 Subject: [PATCH 4/4] [BUGFIX] multiple Null checking fixed. Unsafe null type conversion (type annotations): The value of type 'List<*Test.@NonNull *TestCase>' is made accessible using the less-annotated type 'List<*Test.*TestCase>'Java(536871895) util.JsonLoader --- .../arrays/ArraysLeftRotationTest.java | 6 +- .../arrays/CrushBruteForceTest.java | 6 +- .../arrays/CrushTest.java | 6 +- .../arrays/MinimumSwaps2Test.java | 6 +- .../arrays/NewYearChaosTest.java | 6 +- .../arrays/TwoDarrayTest.java | 5 +- .../CountTripletsBruteForceTest.java | 6 +- .../CountTripletsTest.java | 11 +- .../FrequencyQueriesTest.java | 38 +++--- .../RansomNoteTest.java | 6 +- .../SherlockAndAnagramsTest.java | 26 ++-- .../TwoStringsTest.java | 6 +- .../greedy_algorithms/AngryFloristTest.java | 6 +- .../greedy_algorithms/GreedyFloristTest.java | 6 +- .../greedy_algorithms/LuckBalanceTest.java | 6 +- ...inimumAbsoluteDifferenceInAnArrayTest.java | 7 +- .../FlippingBitsAlternativeTest.java | 12 +- .../miscellaneous/FlippingBitsTest.java | 12 +- .../TimeComplexityPrimalityTest.java | 12 +- .../hackerrank/projecteuler/Euler001Test.java | 6 +- .../hackerrank/projecteuler/Euler002Test.java | 6 +- .../hackerrank/projecteuler/Euler003Test.java | 6 +- .../warmup/BirthdayCakeCandlesTest.java | 17 +-- .../warmup/CompareTripletsTest.java | 13 +- .../warmup/DiagonalDifferenceTest.java | 13 +- .../ae/hackerrank/warmup/MiniMaxSumTest.java | 9 +- .../ae/hackerrank/warmup/PlusMinusTest.java | 6 +- .../ae/hackerrank/warmup/StaircaseTest.java | 6 +- .../hackerrank/warmup/TimeConversionTest.java | 10 +- .../ae/projecteuler/helper/BigNumTest.java | 123 ++++++++---------- 30 files changed, 223 insertions(+), 181 deletions(-) diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/arrays/ArraysLeftRotationTest.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/arrays/ArraysLeftRotationTest.java index 6ed59c8d..64a8b70d 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/arrays/ArraysLeftRotationTest.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/arrays/ArraysLeftRotationTest.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.junit.jupiter.api.BeforeAll; @@ -19,7 +20,7 @@ public static class ArraysLeftRotationTestCase { public List expected; } - List testCases; + private final List testCases = new ArrayList<>(); @BeforeAll void setup() throws IOException { @@ -29,7 +30,8 @@ void setup() throws IOException { "arrays", "ctci_array_left_rotation.testcases.json"); - this.testCases = JsonLoader.loadJson(path, ArraysLeftRotationTestCase.class); + this.testCases.clear(); + this.testCases.addAll(JsonLoader.loadJson(path, ArraysLeftRotationTestCase.class)); } @Test diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/arrays/CrushBruteForceTest.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/arrays/CrushBruteForceTest.java index 39e1c19b..f42af7f8 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/arrays/CrushBruteForceTest.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/arrays/CrushBruteForceTest.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -20,7 +21,7 @@ public static class CrushBruteForceTestCase { public long expected; } - List testCases; + private final List testCases = new ArrayList<>(); @BeforeAll void setup() throws IOException { @@ -29,7 +30,8 @@ void setup() throws IOException { "interview_preparation_kit", "arrays", "crush.testcases.json"); - this.testCases = JsonLoader.loadJson(path, CrushBruteForceTestCase.class); + this.testCases.clear(); + this.testCases.addAll(JsonLoader.loadJson(path, CrushBruteForceTestCase.class)); } @Test diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/arrays/CrushTest.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/arrays/CrushTest.java index 28b42259..b193da04 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/arrays/CrushTest.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/arrays/CrushTest.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -20,7 +21,7 @@ public static class CrushTestCase { public long expected; } - List testCases; + private final List testCases = new ArrayList<>(); @BeforeAll void setup() throws IOException { @@ -29,7 +30,8 @@ void setup() throws IOException { "arrays", "crush.testcases.json"); - this.testCases = JsonLoader.loadJson(path, CrushTestCase.class); + this.testCases.clear(); + this.testCases.addAll(JsonLoader.loadJson(path, CrushTestCase.class)); } @Test diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/arrays/MinimumSwaps2Test.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/arrays/MinimumSwaps2Test.java index 1151e0fc..c61ab3a2 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/arrays/MinimumSwaps2Test.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/arrays/MinimumSwaps2Test.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -19,7 +20,7 @@ public static class MinimumSwaps2TestCase { public long expected; } - List testCases; + private final List testCases = new ArrayList<>(); @BeforeAll void setup() throws IOException { @@ -28,7 +29,8 @@ void setup() throws IOException { "arrays", "minimum_swaps_2.testcases.json"); - this.testCases = JsonLoader.loadJson(path, MinimumSwaps2TestCase.class); + this.testCases.clear(); + this.testCases.addAll(JsonLoader.loadJson(path, MinimumSwaps2TestCase.class)); } @Test diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/arrays/NewYearChaosTest.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/arrays/NewYearChaosTest.java index 3419f767..0b4602d9 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/arrays/NewYearChaosTest.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/arrays/NewYearChaosTest.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -19,7 +20,7 @@ public static class NewYearChaosTestCase { public String expected; } - List testCases; + private final List testCases = new ArrayList<>(); @BeforeAll void setup() throws IOException { @@ -29,7 +30,8 @@ void setup() throws IOException { "arrays", "new_year_chaos.testcases.json"); - this.testCases = JsonLoader.loadJson(path, NewYearChaosTestCase.class); + this.testCases.clear(); + this.testCases.addAll(JsonLoader.loadJson(path, NewYearChaosTestCase.class)); } @Test diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/arrays/TwoDarrayTest.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/arrays/TwoDarrayTest.java index f5754e6b..85c827ae 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/arrays/TwoDarrayTest.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/arrays/TwoDarrayTest.java @@ -20,7 +20,7 @@ public static class TwoDarrayTestCase { public long expected; } - private List testCases; + private final List testCases = new ArrayList<>(); @BeforeAll void setup() throws IOException { @@ -29,7 +29,8 @@ void setup() throws IOException { "arrays", "2d_array.testcases.json"); - this.testCases = JsonLoader.loadJson(path, TwoDarrayTestCase.class); + this.testCases.clear(); + this.testCases.addAll(JsonLoader.loadJson(path, TwoDarrayTestCase.class)); } @Test diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/CountTripletsBruteForceTest.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/CountTripletsBruteForceTest.java index c2616c0c..bbc25f16 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/CountTripletsBruteForceTest.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/CountTripletsBruteForceTest.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -22,7 +23,7 @@ public static class CountTripletsBruteForceTestCase { public Long expected; } - private List smallTestCases; + private final List smallTestCases = new ArrayList<>(); @BeforeAll void setup() throws IOException { @@ -33,7 +34,8 @@ void setup() throws IOException { "dictionaries_and_hashmaps", "count_triplets_1.small.testcases.json"); - this.smallTestCases = JsonLoader.loadJson(path, CountTripletsBruteForceTestCase.class); + this.smallTestCases.clear(); + this.smallTestCases.addAll(JsonLoader.loadJson(path, CountTripletsBruteForceTestCase.class)); } @Test diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/CountTripletsTest.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/CountTripletsTest.java index 57f330b3..619ce03e 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/CountTripletsTest.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/CountTripletsTest.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -22,8 +23,8 @@ public static class CountTripletsTestCase { public Long expected; } - private List smallTestCases; - private List bigTestCases; + private final List smallTestCases = new ArrayList<>(); + private final List bigTestCases = new ArrayList<>(); @BeforeAll void setup() throws IOException { @@ -34,7 +35,8 @@ void setup() throws IOException { "dictionaries_and_hashmaps", "count_triplets_1.small.testcases.json"); - this.smallTestCases = JsonLoader.loadJson(path, CountTripletsTestCase.class); + this.smallTestCases.clear(); + this.smallTestCases.addAll(JsonLoader.loadJson(path, CountTripletsTestCase.class)); path = String.join("/", "hackerrank", @@ -42,7 +44,8 @@ void setup() throws IOException { "dictionaries_and_hashmaps", "count_triplets_1.big.testcases.json"); - this.bigTestCases = JsonLoader.loadJson(path, CountTripletsTestCase.class); + this.bigTestCases.clear(); + this.bigTestCases.addAll(JsonLoader.loadJson(path, CountTripletsTestCase.class)); } diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/FrequencyQueriesTest.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/FrequencyQueriesTest.java index c51cb68a..d0810b98 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/FrequencyQueriesTest.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/FrequencyQueriesTest.java @@ -5,6 +5,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -21,10 +22,10 @@ public static class FrequencyQueriesTestCase { public List expected; } - List testCases; - List testCase6; - List testCaseBorderCases; - List testCaseBorderCaseException; + private final List testCases = new ArrayList<>(); + private final List testCase6 = new ArrayList<>(); + private final List testCaseBorderCases = new ArrayList<>(); + private final List testCaseBorderCaseException = new ArrayList<>(); @BeforeAll void setup() throws IOException { @@ -35,28 +36,33 @@ void setup() throws IOException { "dictionaries_and_hashmaps", "frequency_queries.testcases.json"); - this.testCases = JsonLoader.loadJson(path, FrequencyQueriesTestCase.class); + this.testCases.clear(); + this.testCases.addAll(JsonLoader.loadJson(path, FrequencyQueriesTestCase.class)); path = String.join("/", "hackerrank", "interview_preparation_kit", "dictionaries_and_hashmaps", "frequency_queries.testcase6.json"); - this.testCase6 = JsonLoader.loadJson(path, FrequencyQueriesTestCase.class); + this.testCase6.clear(); + this.testCase6.addAll(JsonLoader.loadJson(path, FrequencyQueriesTestCase.class)); path = String.join("/", - "hackerrank", - "interview_preparation_kit", - "dictionaries_and_hashmaps", - "frequency_queries.testcase_border_cases.json"); - this.testCaseBorderCases = JsonLoader.loadJson(path, FrequencyQueriesTestCase.class); + "hackerrank", + "interview_preparation_kit", + "dictionaries_and_hashmaps", + "frequency_queries.testcase_border_cases.json"); + this.testCaseBorderCases.clear(); + this.testCaseBorderCases.addAll(JsonLoader.loadJson(path, FrequencyQueriesTestCase.class)); path = String.join("/", - "hackerrank", - "interview_preparation_kit", - "dictionaries_and_hashmaps", - "frequency_queries.testcase_border_case_exception.json"); - this.testCaseBorderCaseException = JsonLoader.loadJson(path, FrequencyQueriesTestCase.class); + "hackerrank", + "interview_preparation_kit", + "dictionaries_and_hashmaps", + "frequency_queries.testcase_border_case_exception.json"); + this.testCaseBorderCaseException.clear(); + this.testCaseBorderCaseException.addAll( + JsonLoader.loadJson(path, FrequencyQueriesTestCase.class)); } @Test diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/RansomNoteTest.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/RansomNoteTest.java index e8fd48da..f0881497 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/RansomNoteTest.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/RansomNoteTest.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -20,7 +21,7 @@ public static class RansomNoteTestCase { public String expected; } - List testCases; + private final List testCases = new ArrayList<>(); @BeforeAll void setup() throws IOException { @@ -29,7 +30,8 @@ void setup() throws IOException { "dictionaries_and_hashmaps", "ctci_ransom_note.testcases.json"); - this.testCases = JsonLoader.loadJson(path, RansomNoteTestCase.class); + this.testCases.clear(); + this.testCases.addAll(JsonLoader.loadJson(path, RansomNoteTestCase.class)); } @Test diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/SherlockAndAnagramsTest.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/SherlockAndAnagramsTest.java index a0076a11..b3538fe6 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/SherlockAndAnagramsTest.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/SherlockAndAnagramsTest.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -13,7 +14,8 @@ /** * SherlockAndAnagrams. * - * @link Problem definition [[docs/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/two-strings.md]] + * @link Problem definition + * [[docs/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/two-strings.md]] */ @TestInstance(Lifecycle.PER_CLASS) class SherlockAndAnagramsTest { @@ -34,11 +36,12 @@ public static class TestCase { public List tests; } - List testCases; + private final List testCases = new ArrayList<>(); /** * Sets up the test environment by loading test cases from a JSON file. - * The JSON file is located in the specified path relative to the project structure. + * The JSON file is located in the specified path relative to the project + * structure. * * @throws IOException if an error occurs while reading the JSON file. */ @@ -49,15 +52,18 @@ void setup() throws IOException { "dictionaries_and_hashmaps", "sherlock_and_anagrams.testcases.json"); - this.testCases = JsonLoader.loadJson(path, SherlockAndAnagramsTestCase.class); + this.testCases.clear(); + this.testCases.addAll(JsonLoader.loadJson(path, SherlockAndAnagramsTestCase.class)); } - private SherlockAndAnagramsTest() {} + private SherlockAndAnagramsTest() { + } /** * sherlockAndAnagrams. */ - @Test void testSherlockAndAnagrams() { + @Test + void testSherlockAndAnagrams() { for (SherlockAndAnagramsTestCase _testCases : this.testCases) { for (SherlockAndAnagramsTestCase.TestCase test : _testCases.tests) { @@ -65,11 +71,9 @@ private SherlockAndAnagramsTest() {} assertEquals(test.expected, solutionFound, "%s(%s) answer must be: %s".formatted( - "SherlockAndAnagrams.sherlockAndAnagrams", - test.input, - test.expected - ) - ); + "SherlockAndAnagrams.sherlockAndAnagrams", + test.input, + test.expected)); } } } diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/TwoStringsTest.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/TwoStringsTest.java index f903493d..89f7ac64 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/TwoStringsTest.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/dictionaries_and_hashmaps/TwoStringsTest.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -22,7 +23,7 @@ public static class TwoStringsTestCase { public String expected; } - private List testCases; + private final List testCases = new ArrayList<>(); @BeforeAll void setup() throws IOException { @@ -32,7 +33,8 @@ void setup() throws IOException { "dictionaries_and_hashmaps", "two_strings.testcases.json"); - this.testCases = JsonLoader.loadJson(path, TwoStringsTestCase.class); + this.testCases.clear(); + this.testCases.addAll(JsonLoader.loadJson(path, TwoStringsTestCase.class)); } @Test diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/greedy_algorithms/AngryFloristTest.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/greedy_algorithms/AngryFloristTest.java index 99bd462c..db4091b9 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/greedy_algorithms/AngryFloristTest.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/greedy_algorithms/AngryFloristTest.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -22,7 +23,7 @@ public static class AngryFloristTestCase { public Integer expected; } - private List testCases; + private final List testCases = new ArrayList<>(); @BeforeAll void setup() throws IOException { @@ -31,7 +32,8 @@ void setup() throws IOException { "interview_preparation_kit", "greedy_algorithms", "angry_children.testcases.json"); - this.testCases = JsonLoader.loadJson(path, AngryFloristTestCase.class); + this.testCases.clear(); + this.testCases.addAll(JsonLoader.loadJson(path, AngryFloristTestCase.class)); } @Test diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/greedy_algorithms/GreedyFloristTest.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/greedy_algorithms/GreedyFloristTest.java index 86096da6..e35389cd 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/greedy_algorithms/GreedyFloristTest.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/greedy_algorithms/GreedyFloristTest.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -22,7 +23,7 @@ public static class GreedyFloristTestCase { public Integer expected; } - private List testCases; + private final List testCases = new ArrayList<>(); @BeforeAll void setup() throws IOException { @@ -31,7 +32,8 @@ void setup() throws IOException { "interview_preparation_kit", "greedy_algorithms", "greedy_florist.testcases.json"); - this.testCases = JsonLoader.loadJson(path, GreedyFloristTestCase.class); + this.testCases.clear(); + this.testCases.addAll(JsonLoader.loadJson(path, GreedyFloristTestCase.class)); } @Test diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/greedy_algorithms/LuckBalanceTest.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/greedy_algorithms/LuckBalanceTest.java index c14892fa..301fd0da 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/greedy_algorithms/LuckBalanceTest.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/greedy_algorithms/LuckBalanceTest.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -22,7 +23,7 @@ public static class LuckBalanceTestCase { public Integer expected; } - private List testCases; + private final List testCases = new ArrayList<>(); @BeforeAll void setup() throws IOException { @@ -32,7 +33,8 @@ void setup() throws IOException { "greedy_algorithms", "luck_balance.testcases.json"); - this.testCases = JsonLoader.loadJson(path, LuckBalanceTestCase.class); + this.testCases.clear(); + this.testCases.addAll(JsonLoader.loadJson(path, LuckBalanceTestCase.class)); } @Test diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/greedy_algorithms/MinimumAbsoluteDifferenceInAnArrayTest.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/greedy_algorithms/MinimumAbsoluteDifferenceInAnArrayTest.java index 0222fd65..acaba0c9 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/greedy_algorithms/MinimumAbsoluteDifferenceInAnArrayTest.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/greedy_algorithms/MinimumAbsoluteDifferenceInAnArrayTest.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -21,7 +22,7 @@ public static class MinimumAbsoluteDifferenceInAnArrayTestCase { public Integer expected; } - private List testCases; + private final List testCases = new ArrayList<>(); @BeforeAll void setup() throws IOException { @@ -30,7 +31,9 @@ void setup() throws IOException { "interview_preparation_kit", "greedy_algorithms", "minimum_absolute_difference_in_an_array.testcases.json"); - this.testCases = JsonLoader.loadJson(path, MinimumAbsoluteDifferenceInAnArrayTestCase.class); + this.testCases.clear(); + this.testCases.addAll( + JsonLoader.loadJson(path, MinimumAbsoluteDifferenceInAnArrayTestCase.class)); } @Test diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/miscellaneous/FlippingBitsAlternativeTest.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/miscellaneous/FlippingBitsAlternativeTest.java index b3feab0e..89d750fc 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/miscellaneous/FlippingBitsAlternativeTest.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/miscellaneous/FlippingBitsAlternativeTest.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -31,7 +32,7 @@ public static class FlippingBitsAlternativeTestCase { public List tests; } - private List testCases; + private final List testCases = new ArrayList<>(); @BeforeAll void setup() throws IOException { @@ -41,7 +42,8 @@ void setup() throws IOException { "miscellaneous", "flipping_bits.testcases.json"); - this.testCases = JsonLoader.loadJson(path, FlippingBitsAlternativeTestCase.class); + this.testCases.clear(); + this.testCases.addAll(JsonLoader.loadJson(path, FlippingBitsAlternativeTestCase.class)); } @Test @@ -52,9 +54,9 @@ void testFlippingBitsAlternative() { assertEquals(test.answer, result, "%s(%s) => must be: %d".formatted( - "FlippingBits.flippingBits", - test.input, - test.answer)); + "FlippingBits.flippingBits", + test.input, + test.answer)); } } } diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/miscellaneous/FlippingBitsTest.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/miscellaneous/FlippingBitsTest.java index 32ee3708..fd2aca28 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/miscellaneous/FlippingBitsTest.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/miscellaneous/FlippingBitsTest.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -31,7 +32,7 @@ public static class FlippingBitsTestCase { public List tests; } - private List testCases; + private final List testCases = new ArrayList<>(); @BeforeAll void setup() throws IOException { @@ -41,7 +42,8 @@ void setup() throws IOException { "miscellaneous", "flipping_bits.testcases.json"); - this.testCases = JsonLoader.loadJson(path, FlippingBitsTestCase.class); + this.testCases.clear(); + this.testCases.addAll(JsonLoader.loadJson(path, FlippingBitsTestCase.class)); } @Test @@ -52,9 +54,9 @@ void testFlippingBits() { assertEquals(test.answer, result, "%s(%s) => must be: %d".formatted( - "FlippingBits.flippingBits", - test.input, - test.answer)); + "FlippingBits.flippingBits", + test.input, + test.answer)); } } } diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/miscellaneous/TimeComplexityPrimalityTest.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/miscellaneous/TimeComplexityPrimalityTest.java index c2adc98a..4671c19c 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/miscellaneous/TimeComplexityPrimalityTest.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/interview_preparation_kit/miscellaneous/TimeComplexityPrimalityTest.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -31,7 +32,7 @@ public static class TimeComplexityPrimalityTestCase { public List tests; } - private List testCases; + private final List testCases = new ArrayList<>(); @BeforeAll void setup() throws IOException { @@ -41,7 +42,8 @@ void setup() throws IOException { "miscellaneous", "ctci_big_o.testcases.json"); - this.testCases = JsonLoader.loadJson(path, TimeComplexityPrimalityTestCase.class); + this.testCases.clear(); + this.testCases.addAll(JsonLoader.loadJson(path, TimeComplexityPrimalityTestCase.class)); } @Test @@ -52,9 +54,9 @@ void testTimeComplexityPrimality() { assertEquals(test.answer, result, "%s(%s) => must be: %s".formatted( - "TimeComplexityPrimality.primality", - test.input, - test.answer)); + "TimeComplexityPrimality.primality", + test.input, + test.answer)); } } } diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/projecteuler/Euler001Test.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/projecteuler/Euler001Test.java index 4de6b460..ab677560 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/projecteuler/Euler001Test.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/projecteuler/Euler001Test.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -20,7 +21,7 @@ public static class Euler001TestCase { public Long expected; } - private List testCases; + private final List testCases = new ArrayList<>(); @BeforeAll void setup() throws IOException { @@ -29,7 +30,8 @@ void setup() throws IOException { "projecteuler", "euler001.testcases.json"); - this.testCases = JsonLoader.loadJson(path, Euler001TestCase.class); + this.testCases.clear(); + this.testCases.addAll(JsonLoader.loadJson(path, Euler001TestCase.class)); } @Test diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/projecteuler/Euler002Test.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/projecteuler/Euler002Test.java index 56640130..9e1e40ae 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/projecteuler/Euler002Test.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/projecteuler/Euler002Test.java @@ -3,6 +3,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -18,7 +19,7 @@ public static class Euler002TestCase { public Long expected; } - private List testCases; + private final List testCases = new ArrayList<>(); @BeforeAll void setup() throws IOException { @@ -27,7 +28,8 @@ void setup() throws IOException { "projecteuler", "euler002.testcases.json"); - this.testCases = JsonLoader.loadJson(path, Euler002TestCase.class); + this.testCases.clear(); + this.testCases.addAll(JsonLoader.loadJson(path, Euler002TestCase.class)); } @Test diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/projecteuler/Euler003Test.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/projecteuler/Euler003Test.java index f18e9b56..2b4776dc 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/projecteuler/Euler003Test.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/projecteuler/Euler003Test.java @@ -5,6 +5,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; +import java.util.ArrayList; import java.util.List; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -22,7 +23,7 @@ public static class Euler003TestCase { public Long expected; } - private List testCases; + private final List testCases = new ArrayList<>(); @BeforeAll void setup() throws IOException { @@ -31,7 +32,8 @@ void setup() throws IOException { "projecteuler", "euler003.testcases.json"); - this.testCases = JsonLoader.loadJson(path, Euler003TestCase.class); + this.testCases.clear(); + this.testCases.addAll(JsonLoader.loadJson(path, Euler003TestCase.class)); } @Test diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/BirthdayCakeCandlesTest.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/BirthdayCakeCandlesTest.java index 5b0d32c1..b6bb68e6 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/BirthdayCakeCandlesTest.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/BirthdayCakeCandlesTest.java @@ -4,6 +4,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.junit.jupiter.api.BeforeAll; @@ -23,17 +24,17 @@ public BirthdayCakeCandlesTestCase(List candles, Integer expected) { } } - public List testCases; + public final List testCases = new ArrayList<>(); @BeforeAll void setup() { - this.testCases = Arrays.asList( - new BirthdayCakeCandlesTestCase( - Arrays.asList(3, 2, 1, 3), - 2), - new BirthdayCakeCandlesTestCase( - Arrays.asList(1, 2, 3, 3), - 2)); + this.testCases.clear(); + this.testCases.add(new BirthdayCakeCandlesTestCase( + Arrays.asList(3, 2, 1, 3), + 2)); + this.testCases.add(new BirthdayCakeCandlesTestCase( + Arrays.asList(1, 2, 3, 3), + 2)); } @Test diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/CompareTripletsTest.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/CompareTripletsTest.java index b4353e00..ae3b13c4 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/CompareTripletsTest.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/CompareTripletsTest.java @@ -2,6 +2,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.junit.jupiter.api.BeforeAll; @@ -24,15 +25,15 @@ public CompareTripletsTestCase(List la, List lb, List } } - public List testCases; + public final List testCases = new ArrayList<>(); @BeforeAll void setup() { - this.testCases = Arrays.asList( - new CompareTripletsTestCase( - Arrays.asList(5, 6, 7), - Arrays.asList(3, 6, 10), - Arrays.asList(1, 1))); + this.testCases.clear(); + this.testCases.add(new CompareTripletsTestCase( + Arrays.asList(5, 6, 7), + Arrays.asList(3, 6, 10), + Arrays.asList(1, 1))); } @Test diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/DiagonalDifferenceTest.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/DiagonalDifferenceTest.java index 856f438b..f86efa8d 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/DiagonalDifferenceTest.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/DiagonalDifferenceTest.java @@ -2,6 +2,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.junit.jupiter.api.BeforeAll; @@ -22,15 +23,15 @@ public DiagonalDifferenceTestCase(List> input, int expected) { } } - public List testCases; + public final List testCases = new ArrayList<>(); @BeforeAll void setup() { - this.testCases = Arrays.asList( - new DiagonalDifferenceTestCase(Arrays.asList( - Arrays.asList(11, 2, 4), - Arrays.asList(4, 5, 6), - Arrays.asList(10, 8, -12)), 15)); + this.testCases.clear(); + this.testCases.add(new DiagonalDifferenceTestCase(Arrays.asList( + Arrays.asList(11, 2, 4), + Arrays.asList(4, 5, 6), + Arrays.asList(10, 8, -12)), 15)); } @Test diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/MiniMaxSumTest.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/MiniMaxSumTest.java index f0bc9820..ba31e9a6 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/MiniMaxSumTest.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/MiniMaxSumTest.java @@ -4,6 +4,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows; import static org.junit.jupiter.api.Assertions.assertTrue; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.junit.jupiter.api.BeforeAll; @@ -24,13 +25,13 @@ public MiniMaxSumTestCase(List input, String expected) { } } - public List testCases; + public final List testCases = new ArrayList<>(); @BeforeAll void setup() { - this.testCases = Arrays.asList( - new MiniMaxSumTestCase(Arrays.asList(1, 2, 3, 4, 5), "10 14"), - new MiniMaxSumTestCase(Arrays.asList(5, 4, 3, 2, 1), "10 14")); + this.testCases.clear(); + this.testCases.add(new MiniMaxSumTestCase(Arrays.asList(1, 2, 3, 4, 5), "10 14")); + this.testCases.add(new MiniMaxSumTestCase(Arrays.asList(5, 4, 3, 2, 1), "10 14")); } @Test diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/PlusMinusTest.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/PlusMinusTest.java index aaae6da2..bd172d5f 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/PlusMinusTest.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/PlusMinusTest.java @@ -22,14 +22,16 @@ public PlusMinusTestCase(List input, String expected) { } } - public List testCases; + public List testCases = new java.util.ArrayList<>(); @BeforeAll void setup() { - this.testCases = Arrays.asList( + this.testCases.clear(); + this.testCases.add( new PlusMinusTestCase( Arrays.asList(-4, 3, -9, 0, 4, 1), String.join("\n", "0.500000", "0.333333", "0.166667"))); + } @Test diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/StaircaseTest.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/StaircaseTest.java index 5e2f3622..de937e46 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/StaircaseTest.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/StaircaseTest.java @@ -2,7 +2,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -import java.util.Arrays; import java.util.List; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -21,11 +20,12 @@ public StaircaseTestCase(Integer input, String expected) { } } - public List testCases; + public List testCases = new java.util.ArrayList<>(); @BeforeAll void setup() { - this.testCases = Arrays.asList( + this.testCases.clear(); + this.testCases.add( new StaircaseTestCase( 6, String.join("\n", " #", diff --git a/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/TimeConversionTest.java b/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/TimeConversionTest.java index fe411b48..73353e0a 100644 --- a/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/TimeConversionTest.java +++ b/algorithm-exercises-java/src/test/java/ae/hackerrank/warmup/TimeConversionTest.java @@ -2,7 +2,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; -import java.util.Arrays; +import java.util.ArrayList; import java.util.List; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; @@ -21,13 +21,13 @@ public TimeConversionTestCase(String input, String expected) { } } - public List testCases; + public List testCases = new ArrayList<>(); @BeforeAll void setup() { - this.testCases = Arrays.asList( - new TimeConversionTestCase("12:01:00PM", "12:01:00"), - new TimeConversionTestCase("12:01:00AM", "00:01:00")); + this.testCases.clear(); + this.testCases.add(new TimeConversionTestCase("12:01:00PM", "12:01:00")); + this.testCases.add(new TimeConversionTestCase("12:01:00AM", "00:01:00")); } @Test diff --git a/algorithm-exercises-java/src/test/java/ae/projecteuler/helper/BigNumTest.java b/algorithm-exercises-java/src/test/java/ae/projecteuler/helper/BigNumTest.java index 3805a6aa..c82f50b5 100644 --- a/algorithm-exercises-java/src/test/java/ae/projecteuler/helper/BigNumTest.java +++ b/algorithm-exercises-java/src/test/java/ae/projecteuler/helper/BigNumTest.java @@ -8,11 +8,10 @@ import java.util.Arrays; import org.junit.jupiter.api.Test; - - class BigNumTest { - @Test void instanceCaseTest() { + @Test + void instanceCaseTest() { BigNum classUnderTest = new BigNum(0); assertNotNull(classUnderTest); @@ -22,7 +21,8 @@ class BigNumTest { String.format("Must be an instance of %s", BigNum.class)); } - @Test void bigNumInitialiceTest() { + @Test + void bigNumInitialiceTest() { BigNum solutionFound; Integer[] expectedAnswer = { 0 }; @@ -33,8 +33,7 @@ class BigNumTest { assertArrayEquals( expectedAnswer, - solutionFound.toArray() - ); + solutionFound.toArray()); // Test string input String inputString = "0"; @@ -42,8 +41,7 @@ class BigNumTest { assertArrayEquals( expectedAnswer, - solutionFound.toArray() - ); + solutionFound.toArray()); // Test ArrayList input ArrayList inputList = new ArrayList(Arrays.asList(0)); @@ -51,12 +49,12 @@ class BigNumTest { assertArrayEquals( expectedAnswer, - solutionFound.toArray() - ); + solutionFound.toArray()); } - @Test void bigNumbigSumTest() { + @Test + void bigNumbigSumTest() { BigNum solutionFound; // Test sum operation @@ -68,19 +66,18 @@ class BigNumTest { assertArrayEquals( expectedAnswer, - solutionFound.toArray() - ); + solutionFound.toArray()); BigNum solutionFoundB = new BigNum(input); solutionFoundB.bigSum(solutionFound); assertArrayEquals( expectedAnswer, - solutionFoundB.toArray() - ); + solutionFoundB.toArray()); } - @Test void bigMultiplyRowToBigNumTest() { + @Test + void bigMultiplyRowToBigNumTest() { BigNum solutionFound; // Test sum operation @@ -89,91 +86,79 @@ class BigNumTest { solutionFound.bigSum(6); assertArrayEquals( - new Integer[]{ 4 }, - BigNum.bigMultiplyRowToBigNum("2", 2).toArray() - ); + new Integer[] { 4 }, + BigNum.bigMultiplyRowToBigNum("2", 2).toArray()); assertArrayEquals( - new Integer[]{ 2, 4 }, - BigNum.bigMultiplyRowToBigNum("12", 2).toArray() - ); + new Integer[] { 2, 4 }, + BigNum.bigMultiplyRowToBigNum("12", 2).toArray()); assertArrayEquals( - new Integer[]{ 4, 8 }, - BigNum.bigMultiplyRowToBigNum("12", 4).toArray() - ); + new Integer[] { 4, 8 }, + BigNum.bigMultiplyRowToBigNum("12", 4).toArray()); assertArrayEquals( - new Integer[]{ 8, 9, 9, 1 }, - BigNum.bigMultiplyRowToBigNum("999", 9).toArray() - ); + new Integer[] { 8, 9, 9, 1 }, + BigNum.bigMultiplyRowToBigNum("999", 9).toArray()); } - @Test void bigMultiplyTest() { + @Test + void bigMultiplyTest() { assertArrayEquals( - new BigNum("4").toArray(), - new BigNum("2").bigMultiply("2").toArray() - ); + new BigNum("4").toArray(), + new BigNum("2").bigMultiply("2").toArray()); assertArrayEquals( - new BigNum("44").toArray(), - new BigNum("2").bigMultiply("22").toArray() - ); + new BigNum("44").toArray(), + new BigNum("2").bigMultiply("22").toArray()); assertArrayEquals( - new BigNum("998001").toArray(), - new BigNum("999").bigMultiply("999").toArray() - ); + new BigNum("998001").toArray(), + new BigNum("999").bigMultiply("999").toArray()); assertArrayEquals( - new BigNum("152415787532388367501905199875019052100").toArray(), - new BigNum("12345678901234567890").bigMultiply("12345678901234567890").toArray() - ); + new BigNum("152415787532388367501905199875019052100").toArray(), + new BigNum("12345678901234567890").bigMultiply("12345678901234567890").toArray()); } - @Test void bigPowerTest() { + @Test + void bigPowerTest() { assertArrayEquals( - new BigNum("4").toArray(), - new BigNum("2").bigPower(2).toArray() - ); + new BigNum("4").toArray(), + new BigNum("2").bigPower(2).toArray()); assertArrayEquals( - new BigNum("16").toArray(), - new BigNum("2").bigPower(4).toArray() - ); + new BigNum("16").toArray(), + new BigNum("2").bigPower(4).toArray()); assertArrayEquals( - new BigNum("32").toArray(), - new BigNum("2").bigPower(5).toArray() - ); + new BigNum("32").toArray(), + new BigNum("2").bigPower(5).toArray()); assertArrayEquals( - new BigNum( - "10715086071862673209484250490600018105614048117055" - + "33607443750388370351051124936122493198378815695858" - + "12759467291755314682518714528569231404359845775746" - + "98574803934567774824230985421074605062371141877954" - + "18215304647498358194126739876755916554394607706291" - + "4571196477686542167660429831652624386837205668069376").toArray(), - new BigNum("2").bigPower(1000).toArray() - ); + new BigNum( + "10715086071862673209484250490600018105614048117055" + + "33607443750388370351051124936122493198378815695858" + + "12759467291755314682518714528569231404359845775746" + + "98574803934567774824230985421074605062371141877954" + + "18215304647498358194126739876755916554394607706291" + + "4571196477686542167660429831652624386837205668069376") + .toArray(), + new BigNum("2").bigPower(1000).toArray()); } - @Test void bigFactorialTest() { + @Test + void bigFactorialTest() { assertArrayEquals( new BigNum("2").toArray(), - BigNum.bigFactorial(2).toArray() - ); + BigNum.bigFactorial(2).toArray()); assertArrayEquals( new BigNum("6").toArray(), - BigNum.bigFactorial(3).toArray() - ); + BigNum.bigFactorial(3).toArray()); assertArrayEquals( new BigNum("120").toArray(), - BigNum.bigFactorial(5).toArray() - ); + BigNum.bigFactorial(5).toArray()); assertArrayEquals( new BigNum("3628800").toArray(), - BigNum.bigFactorial(10).toArray() - ); + BigNum.bigFactorial(10).toArray()); } }