Skip to content

Commit

Permalink
pos_integer when it is more appropriate
Browse files Browse the repository at this point in the history
  • Loading branch information
code-shoily committed Jun 29, 2024
1 parent 43f6a3c commit 46d9257
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 7 deletions.
10 changes: 5 additions & 5 deletions lib/2015/day_02.ex
Original file line number Diff line number Diff line change
Expand Up @@ -35,30 +35,30 @@ defmodule AdventOfCode.Y2015.Day02 do
|> Enum.reduce(&Kernel.+/2)
end

@spec required_paper([non_neg_integer(), ...]) :: non_neg_integer()
@spec required_paper([pos_integer(), ...]) :: pos_integer()
defp required_paper(sides) do
surface_area(sides) + minimum(area_per_dim(sides))
end

@spec surface_area([non_neg_integer(), ...]) :: non_neg_integer()
@spec surface_area([pos_integer(), ...]) :: pos_integer()
defp surface_area(sides) do
sides
|> area_per_dim()
|> Enum.sum()
|> Kernel.*(2)
end

@spec area_per_dim([non_neg_integer(), ...]) :: [non_neg_integer(), ...]
@spec area_per_dim([pos_integer(), ...]) :: [pos_integer(), ...]
defp area_per_dim([width, length, height]) do
[length * width, width * height, height * length]
end

@spec minimum([non_neg_integer(), ...]) :: non_neg_integer()
@spec minimum([pos_integer(), ...]) :: pos_integer()
defp minimum([side_1, side_2, side_3]) do
side_1 |> min(side_2) |> min(side_3)
end

@spec smallest_perimeter_plus_volume([non_neg_integer(), ...]) :: non_neg_integer()
@spec smallest_perimeter_plus_volume([pos_integer(), ...]) :: pos_integer()
defp smallest_perimeter_plus_volume([width, length, height]) do
[width + length, length + height, height + width]
|> Enum.min()
Expand Down
2 changes: 1 addition & 1 deletion lib/advent_of_code.ex
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ defmodule AdventOfCode do
@latest_year 2023

@type year() :: 2015 | 2016 | 2017 | 2018 | 2019 | 2020 | 2021 | 2022 | 2023
@type day() :: non_neg_integer()
@type day() :: pos_integer()

@doc """
Returns the latest year solved.
Expand Down
2 changes: 1 addition & 1 deletion lib/helpers/input_reader.ex
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ defmodule AdventOfCode.Helpers.InputReader do
is configurable because some AoC problems (i.e. Year 2017 day 19) has significant leading
or trailing space(s)
"""
@spec read_from_file(non_neg_integer(), non_neg_integer(), boolean()) :: binary()
@spec read_from_file(pos_integer(), pos_integer(), boolean()) :: binary()
def read_from_file(year, day, trim \\ true) do
case {trim, File.read!("#{@input_dir}/#{year}_#{day}.txt")} do
{true, data} -> String.trim(data)
Expand Down

0 comments on commit 46d9257

Please sign in to comment.