feat: stalled on day 12 part 2

This commit is contained in:
Stevan Freeborn
2024-12-13 10:21:50 -06:00
parent b10320ae09
commit 36806c530e
3 changed files with 322 additions and 2 deletions
+94
View File
@@ -2,5 +2,99 @@
public class GardenTests
{
[Test]
[MethodDataSource(nameof(CalculateFencePriceBasedOnPerimeterTestCases))]
public async Task CalculateFencePriceBasedOnPerimeter_WhenCalled_ItShouldReturnExpectedValue(CalculateFencePriceTestCase testCase)
{
var result = Garden.From(testCase.Input).CalculateFencePriceBasedOnPerimeter();
await Assert.That(result).IsEqualTo(testCase.ExpectedPrice);
}
[Test]
[MethodDataSource(nameof(CalculateFencePriceBasedOnSidesTestCases))]
public async Task CalculateFencePriceBasedOnSides_WhenCalled_ItShouldReturnExpectedValue(CalculateFencePriceTestCase testCase)
{
var result = Garden.From(testCase.Input).CalculateFencePriceBasedOnSides();
await Assert.That(result).IsEqualTo(testCase.ExpectedPrice);
}
public static IEnumerable<Func<CalculateFencePriceTestCase>> CalculateFencePriceBasedOnSidesTestCases()
{
yield return () => new(["AAAA", "BBCD", "BBCC", "EEEC"], 80);
yield return () => new(
[
"EEEEE",
"EXXXX",
"EEEEE",
"EXXXX",
"EEEEE",
],
236
);
yield return () => new(
[
"AAAAAA",
"AAABBA",
"AAABBA",
"ABBAAA",
"ABBAAA",
"AAAAAA",
],
368
);
yield return () => new(
[
"RRRRIICCFF",
"RRRRIICCCF",
"VVRRRCCFFF",
"VVRCCCJFFF",
"VVVVCJJCFE",
"VVIVCCJJEE",
"VVIIICJJEE",
"MIIIIIJJEE",
"MIIISIJEEE",
"MMMISSJEEE",
],
1206
);
}
public static IEnumerable<Func<CalculateFencePriceTestCase>> CalculateFencePriceBasedOnPerimeterTestCases()
{
yield return () => new(["AAAA", "BBCD", "BBCC", "EEEC"], 140);
yield return () => new(
[
"OOOOO",
"OXOXO",
"OOOOO",
"OXOXO",
"OOOOO",
],
772
);
yield return () => new(
[
"RRRRIICCFF",
"RRRRIICCCF",
"VVRRRCCFFF",
"VVRCCCJFFF",
"VVVVCJJCFE",
"VVIVCCJJEE",
"VVIIICJJEE",
"MIIIIIJJEE",
"MIIISIJEEE",
"MMMISSJEEE",
],
1930
);
}
public record CalculateFencePriceTestCase(string[] Input, int ExpectedPrice);
}