diff --git a/.woodpecker/.build.yml b/.woodpecker/.build.yml index 689899e..363e290 100644 --- a/.woodpecker/.build.yml +++ b/.woodpecker/.build.yml @@ -8,7 +8,8 @@ steps: # Test - nix develop --command dotnet test AdventOfCode2023.FSharp - nix develop --command dotnet test AdventOfCode2023.FSharp --configuration Release - - nix develop --command dotnet publish AdventOfCode2023.FSharp/AdventOfCode2023.FSharp/AdventOfCode2023.FSharp --configuration Release + - nix develop --command dotnet publish AdventOfCode2023.FSharp/AdventOfCode2023.FSharp/AdventOfCode2023.FSharp.fsproj --configuration Release + - nix develop --command sh -c "$(find . -type f -name AdventOfCode2023.FSharp | grep Release | grep publish) AdventOfCode2023.FSharp/Test/samples" - nix develop --command alejandra --check . when: diff --git a/AdventOfCode2023.FSharp/Test/Test.fsproj b/AdventOfCode2023.FSharp/Test/Test.fsproj index 4c64424..9d58fdc 100644 --- a/AdventOfCode2023.FSharp/Test/Test.fsproj +++ b/AdventOfCode2023.FSharp/Test/Test.fsproj @@ -8,9 +8,14 @@ + + + + + diff --git a/AdventOfCode2023.FSharp/Test/TestDay1.fs b/AdventOfCode2023.FSharp/Test/TestDay1.fs index 5d003e6..dc95439 100644 --- a/AdventOfCode2023.FSharp/Test/TestDay1.fs +++ b/AdventOfCode2023.FSharp/Test/TestDay1.fs @@ -8,26 +8,13 @@ open System.IO [] module TestDay1 = - let sample1 = - """1abc2 -pqr3stu8vwx -a1b2c3d4e5f -treb7uchet -""" + let sample1 = Assembly.getEmbeddedResource typeof.Assembly "day1part1.txt" [] let part1Sample () = sample1 |> Day1.part1 |> shouldEqual 142 - let sample2 = - """two1nine -eightwothree -abcone2threexyz -xtwone3four -4nineeightseven2 -zoneight234 -7pqrstsixteen -""" + let sample2 = Assembly.getEmbeddedResource typeof.Assembly "day1.txt" [] let part2Sample () = diff --git a/AdventOfCode2023.FSharp/Test/TestDay2.fs b/AdventOfCode2023.FSharp/Test/TestDay2.fs index 4624da5..09ff309 100644 --- a/AdventOfCode2023.FSharp/Test/TestDay2.fs +++ b/AdventOfCode2023.FSharp/Test/TestDay2.fs @@ -8,13 +8,7 @@ open System.IO [] module TestDay2 = - let sample = - """Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green -Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue -Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red -Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red -Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green -""" + let sample = Assembly.getEmbeddedResource typeof.Assembly "day2.txt" [] let part1Sample () = sample |> Day2.part1 |> shouldEqual 8 diff --git a/AdventOfCode2023.FSharp/Test/TestDay3.fs b/AdventOfCode2023.FSharp/Test/TestDay3.fs index f709d20..c8ecd79 100644 --- a/AdventOfCode2023.FSharp/Test/TestDay3.fs +++ b/AdventOfCode2023.FSharp/Test/TestDay3.fs @@ -13,18 +13,7 @@ open System.IO [] module TestDay3 = - let sample = - """467..114.. -...*...... -..35..633. -......#... -617*...... -.....+.58. -..592..... -......755. -...$.*.... -.664.598.. -""" + let sample = Assembly.getEmbeddedResource typeof.Assembly "day3.txt" [] let part1Sample () = diff --git a/AdventOfCode2023.FSharp/Test/Util.fs b/AdventOfCode2023.FSharp/Test/Util.fs new file mode 100644 index 0000000..49b87e5 --- /dev/null +++ b/AdventOfCode2023.FSharp/Test/Util.fs @@ -0,0 +1,21 @@ +namespace AdventOfCode2023.Test + +open System.IO +open System.Reflection + +type Dummy = class end + +[] +module Assembly = + let getEmbeddedResource (assembly : Assembly) (name : string) : string = + let names = assembly.GetManifestResourceNames () + let names = names |> Seq.filter (fun s -> s.EndsWith name) + + use s = + names + |> Seq.exactlyOne + |> assembly.GetManifestResourceStream + |> fun s -> new StreamReader (s) + + s.ReadToEnd () + diff --git a/AdventOfCode2023.FSharp/Test/samples/day1.txt b/AdventOfCode2023.FSharp/Test/samples/day1.txt new file mode 100644 index 0000000..41aa89c --- /dev/null +++ b/AdventOfCode2023.FSharp/Test/samples/day1.txt @@ -0,0 +1,7 @@ +two1nine +eightwothree +abcone2threexyz +xtwone3four +4nineeightseven2 +zoneight234 +7pqrstsixteen diff --git a/AdventOfCode2023.FSharp/Test/samples/day1part1.txt b/AdventOfCode2023.FSharp/Test/samples/day1part1.txt new file mode 100644 index 0000000..7bbc69a --- /dev/null +++ b/AdventOfCode2023.FSharp/Test/samples/day1part1.txt @@ -0,0 +1,4 @@ +1abc2 +pqr3stu8vwx +a1b2c3d4e5f +treb7uchet diff --git a/AdventOfCode2023.FSharp/Test/samples/day2.txt b/AdventOfCode2023.FSharp/Test/samples/day2.txt new file mode 100644 index 0000000..295c36d --- /dev/null +++ b/AdventOfCode2023.FSharp/Test/samples/day2.txt @@ -0,0 +1,5 @@ +Game 1: 3 blue, 4 red; 1 red, 2 green, 6 blue; 2 green +Game 2: 1 blue, 2 green; 3 green, 4 blue, 1 red; 1 green, 1 blue +Game 3: 8 green, 6 blue, 20 red; 5 blue, 4 red, 13 green; 5 green, 1 red +Game 4: 1 green, 3 red, 6 blue; 3 green, 6 red; 3 green, 15 blue, 14 red +Game 5: 6 red, 1 blue, 3 green; 2 blue, 1 red, 2 green diff --git a/AdventOfCode2023.FSharp/Test/samples/day3.txt b/AdventOfCode2023.FSharp/Test/samples/day3.txt new file mode 100644 index 0000000..b20187f --- /dev/null +++ b/AdventOfCode2023.FSharp/Test/samples/day3.txt @@ -0,0 +1,10 @@ +467..114.. +...*...... +..35..633. +......#... +617*...... +.....+.58. +..592..... +......755. +...$.*.... +.664.598..