Skip to content

Commit 9eb195e

Browse files
committed
DFSmethods. Pre-repease refactoring.
Release notes 1.Simplest working algorithm for pizza slicing.
1 parent b18be2a commit 9eb195e

File tree

13 files changed

+45
-135
lines changed

13 files changed

+45
-135
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
.classpath
66
.project
77
target
8-
#ignore the archived source code
8+
#ignore the archived source code and output files
9+
/outputDataSet/*
910
*.zip
1011
/.classpath
1112
.settings/

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
# GoogleHashCode2017
2+
hash tags: #hashcode #2017 #googleHashCode
23
![google hash code logo](./documentation/logo.png)
4+
[![Build Status](https://travis-ci.org/LyashenkoGS/GoogleHashCode2017.svg?branch=master)](https://travis-ci.org/LyashenkoGS/GoogleHashCode2017)
35

46
##Pizza
57
Practice problem for the Google HashCode 2017

src/main/java/com/google/hashcode/App.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,20 +13,23 @@
1313
import java.util.List;
1414
import java.util.Map;
1515

16-
import static com.google.hashcode.utils.InputFiles.EXAMPLE_INPUT_FILE_PATH;
16+
import static com.google.hashcode.utils.FilesPaths.*;
1717

1818

1919
public class App {
2020
private static final Logger LOGGER = LoggerFactory.getLogger(App.class);
2121

2222
public static void main(String[] args) throws IOException {
23-
slicePizza(EXAMPLE_INPUT_FILE_PATH, "outputDataSet/example.txt");
24-
23+
slicePizza(EXAMPLE_INPUT_FILE_PATH, OUTPUT_DATA_SET_EXAMPLE_TXT);
24+
slicePizza(SMALL_INPUT_FILE_PATH, OUTPUT_DATA_SET_SMALL_TXT);
25+
//TODO troubles to input big files, possible exciting String max size
26+
//slicePizza(BIG_INPUT_FILE_PATH, OUTPUT_DATA_SET_BIG_TXT);
27+
//slicePizza(MEDIUM_INPUT_FILE_PATH, OUTPUT_DATA_SET_MEDIUM_TXT);
2528
}
2629

27-
public static void slicePizza(String exampleInputFilePath, String outputFile) throws IOException {
30+
public static void slicePizza(String inputFile, String outputFile) throws IOException {
2831
List<Slice> output;
29-
Pizza pizza = new Pizza(new File(exampleInputFilePath), IoUtils.parsePizza(exampleInputFilePath), IoUtils.parseSliceInstructions(exampleInputFilePath));
32+
Pizza pizza = new Pizza(new File(inputFile), IoUtils.parsePizza(inputFile), IoUtils.parseSliceInstructions(inputFile));
3033
//get start positions
3134
output = DFSMethods.cutAllStartPositions(pizza);
3235
//get All steps
@@ -35,12 +38,13 @@ public static void slicePizza(String exampleInputFilePath, String outputFile) th
3538
Step step = DFSMethods.selectStep(availableSteps);
3639
output.remove(step.startPosition);
3740
output.add(DFSMethods.performStep(pizza, step));
41+
//TODO available steps should include merging slices to each other
3842
availableSteps = DFSMethods.getAvailableSteps(pizza, output);
3943
LOGGER.info("OUTPUT AFTER A STEP: "
4044
+ "\n " + output);
4145
}
4246
IoUtils.writeToFile(outputFile, IoUtils.parseSlices(output));
43-
LOGGER.info("FINISHED for " + exampleInputFilePath + "!!!!!");
47+
LOGGER.info("FINISHED for " + inputFile + "!!!!!");
4448
}
4549

4650
}

src/main/java/com/google/hashcode/entity/Slice.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ public Step generateStepRight(Pizza pizza) {
196196
Slice delta = new Slice();
197197
for (int y = this.minY(); y <= this.maxY(); y++) {
198198
//try to get a cell
199-
Optional<Cell> cell = pizza.getCell(y, maxX()+1);
199+
Optional<Cell> cell = pizza.getCell(y, maxX() + 1);
200200
if (cell.isPresent()) {
201201
delta.cells.add(cell.get());
202202
} else {

src/main/java/com/google/hashcode/service/Slicer.java

Lines changed: 0 additions & 105 deletions
This file was deleted.
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.google.hashcode.utils;
2+
3+
/**
4+
* Contains common files to perform input-output
5+
*
6+
* @author Grigoriy Lyashenko (Grog).
7+
*/
8+
public abstract class FilesPaths {
9+
public static final String EXAMPLE_INPUT_FILE_PATH = "inputDataSets/example.in";
10+
public static final String SMALL_INPUT_FILE_PATH = "inputDataSets/small.in";
11+
public static final String MEDIUM_INPUT_FILE_PATH = "inputDataSets/medium.in";
12+
public static final String BIG_INPUT_FILE_PATH = "inputDataSets/big.in";
13+
14+
15+
public static final String OUTPUT_DATA_SET_EXAMPLE_TXT = "outputDataSet/example.txt";
16+
public static final String OUTPUT_DATA_SET_SMALL_TXT = "outputDataSet/small.txt";
17+
public static final String OUTPUT_DATA_SET_BIG_TXT = "outputDataSet/big.txt";
18+
public static final String OUTPUT_DATA_SET_MEDIUM_TXT = "outputDataSet/medium.txt";
19+
20+
private FilesPaths() {
21+
}
22+
}

src/main/java/com/google/hashcode/utils/InputFiles.java

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

src/main/java/com/google/hashcode/utils/StepsComparator.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@
44

55
import java.util.Comparator;
66
import java.util.List;
7-
import java.util.Objects;
87

98
/**
109
* @author Grigoriy Lyashenko (Grog).
1110
*/
11+
//TODO examine this class work by parameterized tests
1212
public class StepsComparator implements Comparator<List<Step>> {
1313

1414
@Override

src/main/resources/logback.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@
1010
</appender>
1111

1212
<root level="debug">
13-
<appender-ref ref="STDOUT" />
13+
<appender-ref ref="STDOUT"/>
1414
</root>
1515

1616
<logger name="com.google" level="debug"
1717
additivity="false">
18-
<appender-ref ref="STDOUT" />
18+
<appender-ref ref="STDOUT"/>
1919
</logger>
2020
</configuration>

src/test/java/com/google/hashcode/entity/PizzaTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import java.io.IOException;
99
import java.util.Optional;
1010

11-
import static com.google.hashcode.utils.InputFiles.EXAMPLE_INPUT_FILE_PATH;
11+
import static com.google.hashcode.utils.FilesPaths.EXAMPLE_INPUT_FILE_PATH;
1212
import static org.junit.Assert.assertEquals;
1313
import static org.junit.Assert.assertFalse;
1414

0 commit comments

Comments
 (0)