Skip to content

Commit 077a699

Browse files
committed
Refactor tests to use submodule repository
1 parent 89d6d5e commit 077a699

File tree

31 files changed

+330
-181
lines changed

31 files changed

+330
-181
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "src/test/resources/inputs"]
2+
path = src/test/resources/inputs
3+
url = https://github.com/Flashky/advent-of-code-2022-data

src/test/java/com/adventofcode/flashk/common/test/constants/TestFilename.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,8 @@ private TestFilename() {}
99
public final static String INPUT_FILE_SAMPLE = "sample.input";
1010
public final static String INPUT_FILE_SINGLE_SAMPLE = "single_sample.input";
1111

12+
// Other tests
13+
public final static String ARRAY_JSON = "array.json";
14+
public final static String INVALID_JSON = "invalid.json";
15+
1216
}
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
package com.adventofcode.flashk.common.test.utils;
2+
3+
import java.io.IOException;
4+
import java.nio.file.Files;
5+
import java.nio.file.Path;
6+
import java.nio.file.Paths;
7+
import java.util.ArrayList;
8+
import java.util.List;
9+
import java.util.stream.Collectors;
10+
11+
/**
12+
* Helper class for reading Advent of Code input files.
13+
* <p></p>All input files are expected to be located under <code>src/test/resources/inputs</code> path.</p>
14+
*/
15+
public final class Input {
16+
17+
private static final String PATH_INPUTS = "src/test/resources/inputs";
18+
19+
private Input() {}
20+
21+
public static List<Integer> readIntegerLines(String inputFolder, String inputFile) {
22+
23+
List<Integer> input;
24+
25+
try {
26+
Path path = Paths.get(PATH_INPUTS, inputFolder, inputFile).toAbsolutePath();
27+
input = Files.lines(path).map(Integer::parseInt).collect(Collectors.toList());
28+
29+
} catch (IOException e) {
30+
input = new ArrayList<>();
31+
e.printStackTrace();
32+
}
33+
34+
return input;
35+
}
36+
37+
public static List<String> readStringLines(String inputFolder, String inputFile) {
38+
39+
List<String> input;
40+
41+
try {
42+
Path path = Paths.get(PATH_INPUTS, inputFolder, inputFile).toAbsolutePath();
43+
input = Files.lines(path).collect(Collectors.toList());
44+
45+
} catch (IOException e) {
46+
input = new ArrayList<>();
47+
e.printStackTrace();
48+
}
49+
50+
return input;
51+
}
52+
53+
/**
54+
* Reads an input file into a bidimensional char array.
55+
* @param inputFolder the folder where the input file is located.
56+
* @param inputFile the file to be read.
57+
* @return a bidimensional array of characters.
58+
*/
59+
public static char[][] read2DCharArray(String inputFolder, String inputFile) {
60+
List<String> inputs = readStringLines(inputFolder,inputFile);
61+
62+
int rows = inputs.size();
63+
int cols = inputs.get(0).length();
64+
char[][] char2D = new char[rows][cols];
65+
66+
int i = 0;
67+
for(String input : inputs) {
68+
char2D[i++] = input.toCharArray();
69+
}
70+
71+
return char2D;
72+
}
73+
74+
/**
75+
* Reads an input file into a bidimensional int array.
76+
* @param inputFolder the folder where the input file is located.
77+
* @param inputFile the file to be read.
78+
* @return a bidimensional array of integers.
79+
*/
80+
public static int[][] read2DIntArray(String inputFolder, String inputFile) {
81+
List<String> inputs = readStringLines(inputFolder,inputFile);
82+
83+
int rows = inputs.size();
84+
int cols = inputs.get(0).length();
85+
int[][] char2D = new int[rows][cols];
86+
87+
int i = 0;
88+
for(String input : inputs) {
89+
char2D[i++] = input.chars().map(Character::getNumericValue).toArray();
90+
}
91+
92+
return char2D;
93+
}
94+
95+
}

src/test/java/com/adventofcode/flashk/common/test/utils/Util.java

Lines changed: 0 additions & 58 deletions
This file was deleted.

src/test/java/com/adventofcode/flashk/day01/Day01Test.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import com.adventofcode.flashk.common.test.constants.TestTag;
1919
import com.adventofcode.flashk.common.test.utils.PuzzleTest;
2020
import com.adventofcode.flashk.common.test.utils.Timer;
21-
import com.adventofcode.flashk.common.test.utils.Util;
21+
import com.adventofcode.flashk.common.test.utils.Input;
2222

2323
@DisplayName(TestDisplayName.DAY_01)
2424
@TestMethodOrder(OrderAnnotation.class)
@@ -42,7 +42,7 @@ public void testSolvePart1Sample() {
4242
System.out.print("1 | sample | ");
4343

4444
// Read input file
45-
List<String> inputs = Util.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE_SAMPLE);
45+
List<String> inputs = Input.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE_SAMPLE);
4646

4747
CalorieCounting calorieCounting = new CalorieCounting(inputs);
4848
int result = calorieCounting.solve(1);
@@ -61,7 +61,7 @@ public void testSolvePart1Input() {
6161
System.out.print("1 | input | ");
6262

6363
// Read input file
64-
List<String> inputs = Util.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE);
64+
List<String> inputs = Input.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE);
6565

6666
CalorieCounting calorieCounting = new CalorieCounting(inputs);
6767
int result = calorieCounting.solve(1);
@@ -79,7 +79,7 @@ public void testSolvePart2Sample() {
7979
System.out.print("2 | sample | ");
8080

8181
// Read input file
82-
List<String> inputs = Util.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE_SAMPLE);
82+
List<String> inputs = Input.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE_SAMPLE);
8383

8484
CalorieCounting calorieCounting = new CalorieCounting(inputs);
8585
int result = calorieCounting.solve(3);
@@ -97,7 +97,7 @@ public void testSolvePart2Input() {
9797
System.out.print("2 | input | ");
9898

9999
// Read input file
100-
List<String> inputs = Util.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE);
100+
List<String> inputs = Input.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE);
101101

102102
CalorieCounting calorieCounting = new CalorieCounting(inputs);
103103
int result = calorieCounting.solve(3);

src/test/java/com/adventofcode/flashk/day02/Day02Test.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import com.adventofcode.flashk.common.test.constants.TestTag;
1919
import com.adventofcode.flashk.common.test.utils.PuzzleTest;
2020
import com.adventofcode.flashk.common.test.utils.Timer;
21-
import com.adventofcode.flashk.common.test.utils.Util;
21+
import com.adventofcode.flashk.common.test.utils.Input;
2222

2323
@DisplayName(TestDisplayName.DAY_02)
2424
@TestMethodOrder(OrderAnnotation.class)
@@ -42,7 +42,7 @@ public void testSolvePart1Sample() {
4242
System.out.print("1 | sample | ");
4343

4444
// Read input file
45-
List<String> inputs = Util.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE_SAMPLE);
45+
List<String> inputs = Input.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE_SAMPLE);
4646
RockPaperScissorsStrategy strategy = new RockPaperScissorsBasicStrategy(inputs);
4747
int result = strategy.solve();
4848

@@ -59,7 +59,7 @@ public void testSolvePart1Input() {
5959
System.out.print("1 | input | ");
6060

6161
// Read input file
62-
List<String> inputs = Util.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE);
62+
List<String> inputs = Input.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE);
6363

6464
RockPaperScissorsStrategy strategy = new RockPaperScissorsBasicStrategy(inputs);
6565
int result = strategy.solve();
@@ -77,7 +77,7 @@ public void testSolvePart2Sample() {
7777
System.out.print("2 | sample | ");
7878

7979
// Read input file
80-
List<String> inputs = Util.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE_SAMPLE);
80+
List<String> inputs = Input.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE_SAMPLE);
8181
RockPaperScissorsStrategy strategy = new RockPaperScissorsAdvancedStrategy(inputs);
8282
int result = strategy.solve();
8383

@@ -95,7 +95,7 @@ public void testSolvePart2Input() {
9595
System.out.print("2 | input | ");
9696

9797
// Read input file
98-
List<String> inputs = Util.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE);
98+
List<String> inputs = Input.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE);
9999
RockPaperScissorsStrategy strategy = new RockPaperScissorsAdvancedStrategy(inputs);
100100
int result = strategy.solve();
101101

src/test/java/com/adventofcode/flashk/day03/Day03Test.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
import com.adventofcode.flashk.common.test.constants.TestFolder;
1717
import com.adventofcode.flashk.common.test.constants.TestTag;
1818
import com.adventofcode.flashk.common.test.utils.PuzzleTest;
19-
import com.adventofcode.flashk.common.test.utils.Util;
19+
import com.adventofcode.flashk.common.test.utils.Input;
2020

2121
@DisplayName(TestDisplayName.DAY_03)
2222
@TestMethodOrder(OrderAnnotation.class)
@@ -36,7 +36,7 @@ public void testSolvePart1Sample() {
3636
System.out.print("1 | sample | ");
3737

3838
// Read input file
39-
List<String> inputs = Util.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE_SAMPLE);
39+
List<String> inputs = Input.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE_SAMPLE);
4040
Rucksack rucksack = new Rucksack();
4141
long result = rucksack.solveA(inputs);
4242

@@ -53,7 +53,7 @@ public void testSolvePart1Input() {
5353
System.out.print("1 | input | ");
5454

5555
// Read input file
56-
List<String> inputs = Util.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE);
56+
List<String> inputs = Input.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE);
5757
Rucksack rucksack = new Rucksack();
5858
long result = rucksack.solveA(inputs);
5959

@@ -70,7 +70,7 @@ public void testSolvePart2Sample() {
7070
System.out.print("2 | sample | ");
7171

7272
// Read input file
73-
List<String> inputs = Util.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE_SAMPLE);
73+
List<String> inputs = Input.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE_SAMPLE);
7474
Rucksack rucksack = new Rucksack();
7575
long result = rucksack.solveB(inputs);
7676

@@ -87,7 +87,7 @@ public void testSolvePart2Input() {
8787
System.out.print("2 | input | ");
8888

8989
// Read input file
90-
List<String> inputs = Util.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE);
90+
List<String> inputs = Input.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE);
9191
Rucksack rucksack = new Rucksack();
9292
long result = rucksack.solveB(inputs);
9393

src/test/java/com/adventofcode/flashk/day04/Day04Test.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import com.adventofcode.flashk.common.test.constants.TestTag;
1919
import com.adventofcode.flashk.common.test.utils.PuzzleTest;
2020
import com.adventofcode.flashk.common.test.utils.Timer;
21-
import com.adventofcode.flashk.common.test.utils.Util;
21+
import com.adventofcode.flashk.common.test.utils.Input;
2222

2323
@DisplayName(TestDisplayName.DAY_04)
2424
@TestMethodOrder(OrderAnnotation.class)
@@ -36,11 +36,11 @@ public static void beforeAll() {
3636
Timer.printHeader(TestDisplayName.DAY_04);
3737

3838
// Sample initialization
39-
List<String> inputs = Util.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE_SAMPLE);
39+
List<String> inputs = Input.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE_SAMPLE);
4040
campCleanupSample = new CampCleanup(inputs);
4141

4242
// Input initialization
43-
inputs = Util.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE);
43+
inputs = Input.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE);
4444
campCleanupInput = new CampCleanup(inputs);
4545
}
4646

src/test/java/com/adventofcode/flashk/day05/Day05Test.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
import com.adventofcode.flashk.common.test.constants.TestTag;
1919
import com.adventofcode.flashk.common.test.utils.PuzzleTest;
2020
import com.adventofcode.flashk.common.test.utils.Timer;
21-
import com.adventofcode.flashk.common.test.utils.Util;
21+
import com.adventofcode.flashk.common.test.utils.Input;
2222

2323
@DisplayName(TestDisplayName.DAY_05)
2424
@TestMethodOrder(OrderAnnotation.class)
@@ -45,7 +45,7 @@ public void testSolvePart1Sample() {
4545
System.out.print("1 | sample | ");
4646

4747
// Read input file
48-
List<String> inputs = Util.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE_SAMPLE);
48+
List<String> inputs = Input.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE_SAMPLE);
4949
SupplyStacks supplyStacks = new SupplyStacks(inputs);
5050
String result = supplyStacks.solve(basicStrategy);
5151
assertEquals("CMZ", result);
@@ -61,7 +61,7 @@ public void testSolvePart1Input() {
6161
System.out.print("1 | input | ");
6262

6363
// Read input file
64-
List<String> inputs = Util.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE);
64+
List<String> inputs = Input.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE);
6565
SupplyStacks supplyStacks = new SupplyStacks(inputs);
6666
String result = supplyStacks.solve(basicStrategy);
6767

@@ -79,7 +79,7 @@ public void testSolvePart2Sample() {
7979
System.out.print("2 | sample | ");
8080

8181
// Read input file
82-
List<String> inputs = Util.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE_SAMPLE);
82+
List<String> inputs = Input.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE_SAMPLE);
8383
SupplyStacks supplyStacks = new SupplyStacks(inputs);
8484
String result = supplyStacks.solve(advancedStrategy);
8585
assertEquals("MCD", result);
@@ -95,7 +95,7 @@ public void testSolvePart2Input() {
9595
System.out.print("2 | input | ");
9696

9797
// Read input file
98-
List<String> inputs = Util.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE);
98+
List<String> inputs = Input.readStringLines(INPUT_FOLDER, TestFilename.INPUT_FILE);
9999
SupplyStacks supplyStacks = new SupplyStacks(inputs);
100100
String result = supplyStacks.solve(advancedStrategy);
101101
assertEquals("MGDMPSZTM", result);

0 commit comments

Comments
 (0)