/aoc2020

Primary LanguageElixir

Advent of Code 2020

My solutions for Advent of Code 2020 in Elixir.

Based on a template by mhanberg.

Usage

There are 25 modules, 25 tests, and 50 mix tasks.

  1. Fill in the tests with the example solutions.
  2. Write your implementation.
  3. Fill in the final problem inputs into the mix task and run mix d01.p1!
    • Benchmark your solution by passing the -b flag, mix d01.p1 -b
defmodule AdventOfCode.Day01 do
  def part1(args) do
  end

  def part2(args) do
  end
end
defmodule AdventOfCode.Day01Test do
  use ExUnit.Case

  import AdventOfCode.Day01

  @tag :skip # Make sure to remove to run your test.
  test "part1" do
    input = nil 
    result = part1(input)

    assert result
  end

  @tag :skip # Make sure to remove to run your test.
  test "part2" do
    input = nil 
    result = part2(input)

    assert result
  end
end
defmodule Mix.Tasks.D01.P1 do
  use Mix.Task

  import AdventOfCode.Day01

  @shortdoc "Day 01 Part 1"
  def run(args) do
    input = nil

    if Enum.member?(args, "-b"),
      do: Benchee.run(%{part_1: fn -> input |> part1() end}),
      else:
        input
        |> part1()
        |> IO.inspect(label: "Part 1 Results")
  end
end   

Installation

# clone
$ git clone git@github.com:mhanberg/advent-of-code-elixir-starter.git advent-of-code
$ cd advent-of-code

# Reinitialize your git repo
$ rm -rf .git
$ git init