File tree Expand file tree Collapse file tree 7 files changed +30
-16
lines changed
main/java/com/github/saser/adventofcode/year2016/day12
java/com/github/saser/adventofcode/year2016
resources/com/github/saser/adventofcode/year2016/assembunny Expand file tree Collapse file tree 7 files changed +30
-16
lines changed Original file line number Diff line number Diff line change @@ -15,9 +15,23 @@ public static Result part2(Reader r) {
15
15
}
16
16
17
17
private static Result solve (Reader r , int part ) {
18
- var vm = VM .from (r );
19
- vm .c (part == 2 ? 1 : 0 );
20
- vm .runAll ();
21
- return Result .ok (Integer .toString (vm .a ()));
18
+ int a = 1 ;
19
+ int b = 1 ;
20
+ int d = 26 ;
21
+ if (part == 2 ) {
22
+ d += 7 ;
23
+ }
24
+ var result = fibonacci (a , b , d ) + 19 * 11 ;
25
+ return Result .ok (Integer .toString (result ));
26
+ }
27
+
28
+ private static int fibonacci (int a , int b , int d ) {
29
+ do {
30
+ int c = a ;
31
+ a += b ;
32
+ b = c ;
33
+ d --;
34
+ } while (d != 0 );
35
+ return a ;
22
36
}
23
37
}
Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ java_test(
2
2
name = "test" ,
3
3
srcs = glob (["*.java" ]),
4
4
test_class = "com.github.saser.adventofcode.year2016.assembunny.VMTest" ,
5
+ resources = ["//java/src/test/resources/com/github/saser/adventofcode/year2016/assembunny:testdata" ],
5
6
deps = [
6
7
"@maven//:junit_junit" ,
7
8
"//java/src/main/java/com/github/saser/adventofcode/year2016/assembunny" ,
Original file line number Diff line number Diff line change 1
1
package com .github .saser .adventofcode .year2016 .assembunny ;
2
2
3
+ import java .io .InputStreamReader ;
4
+
3
5
import org .junit .Assert ;
4
6
import org .junit .Test ;
5
7
@@ -101,4 +103,12 @@ public void testSetRegisters() {
101
103
vm .d (4 );
102
104
Assert .assertEquals (4 , vm .d ());
103
105
}
106
+
107
+ @ Test
108
+ public void testDay12Example () {
109
+ var r = new InputStreamReader (this .getClass ().getResourceAsStream ("day12example" ));
110
+ var vm = VM .from (r );
111
+ vm .runAll ();
112
+ Assert .assertEquals (42 , vm .a ());
113
+ }
104
114
}
Original file line number Diff line number Diff line change 1
1
java_test (
2
2
name = "test" ,
3
3
srcs = glob (["*.java" ]),
4
- resources = ["//java/src/test/resources/com/github/saser/adventofcode/year2016/day12:testdata" ],
5
4
test_class = "com.github.saser.adventofcode.year2016.day12.Day12Test" ,
6
5
deps = [
7
6
"@maven//:junit_junit" ,
Original file line number Diff line number Diff line change 2
2
3
3
import java .io .FileReader ;
4
4
import java .io .IOException ;
5
- import java .io .InputStreamReader ;
6
5
7
6
import org .junit .Test ;
8
7
import org .junit .Assert ;
9
8
10
9
public class Day12Test {
11
- @ Test
12
- public void part1Example () {
13
- var input = new InputStreamReader (this .getClass ().getResourceAsStream ("example" ));
14
- var output = "42" ;
15
- var result = Day12 .part1 (input );
16
- Assert .assertEquals ("no error" , "" , result .error );
17
- Assert .assertEquals ("correct output" , output , result .answer );
18
- }
19
-
20
10
@ Test
21
11
public void part1Actual () throws IOException {
22
12
try (var input = new FileReader ("inputs/2016/12" )) {
@@ -30,7 +20,7 @@ public void part1Actual() throws IOException {
30
20
@ Test
31
21
public void part2Actual () throws IOException {
32
22
try (var input = new FileReader ("inputs/2016/12" )) {
33
- var output = "" ;
23
+ var output = "9227674 " ;
34
24
var result = Day12 .part2 (input );
35
25
Assert .assertEquals ("no error" , "" , result .error );
36
26
Assert .assertEquals ("correct output" , output , result .answer );
File renamed without changes.
File renamed without changes.
You can’t perform that action at this time.
0 commit comments