diff --git a/day1/day1.jl b/day1/day1.jl index 2af4a0b..4ce2e45 100644 --- a/day1/day1.jl +++ b/day1/day1.jl @@ -1,30 +1,48 @@ #!/usr/bin/env julia -infile = size(ARGS, 1) > 0 ? ARGS[1] : "day1input.txt" -Ns = size(ARGS, 1) > 1 ? ARGS[2] : "1" -println("infile = ", infile) +using Test -N = parse(Int64, Ns) +function elf_max_calories(infile) + max_calories = zeros(Int64, 3) + elf_calories = 0 -max_calories = zeros(Int64, N) -elf_calories = 0 -i = 1 - -io = open(infile, "r") -for line in eachline(io) - global i, max_calories, max_elf_idx, elf_calories - if length(line) == 0 + open(infile, "r") do io + for line in eachline(io) + if length(line) == 0 + if elf_calories > max_calories[1] + max_calories[1] = elf_calories + sort!(max_calories) + end + elf_calories = 0 + continue + end + snack_calories = parse(Int64, line) + elf_calories += snack_calories + end if elf_calories > max_calories[1] max_calories[1] = elf_calories sort!(max_calories) end - i += 1 - elf_calories = 0 - continue end - snack_calories = parse(Int64, line) - elf_calories += snack_calories + + return (max_calories[end], sum(max_calories)) +end + +function test() + @testset "elf snacks" verbose=true begin + @test elf_max_calories("example.txt") == (24000, 45000) + @test elf_max_calories("input.txt") == (69206, 197400) + end +end + +function main() + if size(ARGS, 1) == 0 + test() + else + infile = ARGS[1] + println("infile = ", infile) + println("snack calories: ", elf_max_calories(infile)) + end end -println(max_calories) -println(sum(max_calories)) +main() diff --git a/day1/day1input.txt b/day1/input.txt similarity index 100% rename from day1/day1input.txt rename to day1/input.txt diff --git a/day1/src/main.rs b/day1/src/main.rs index ca414eb..6d14dad 100644 --- a/day1/src/main.rs +++ b/day1/src/main.rs @@ -46,13 +46,13 @@ where P: AsRef, { } fn main() { - aoc_day1("day1input.txt", 1); + aoc_day1("input.txt", 1); } #[test] fn day1input() { - assert_eq!(aoc_day1("day1input.txt", 1), 69206); - assert_eq!(aoc_day1("day1input.txt", 3), 197400); + assert_eq!(aoc_day1("input.txt", 1), 69206); + assert_eq!(aoc_day1("input.txt", 3), 197400); } #[test]