Skip to content

Commit 6a4ea53

Browse files
ianfnelsonclaude
andcommitted
Migrate test framework from NUnit to xUnit
Replace NUnit 4.5 with xUnit 2.9.3 across all 56 test files. Update test attributes ([TestFixture] → auto-discovery, [Test] → [Fact], [TestCase] → [Theory]/[InlineData]) and convert assertions to xUnit syntax with correct parameter ordering (expected, actual). All 182 tests passing. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent 9263f49 commit 6a4ea53

60 files changed

Lines changed: 475 additions & 511 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

AdventOfCodeTests/AdventOfCodeTests.csproj

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,15 @@
1111
<ItemGroup>
1212
<PackageReference Include="coverlet.collector" Version="8.0.0"/>
1313
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="18.3.0" />
14-
<PackageReference Include="NUnit" Version="4.5.0" />
15-
<PackageReference Include="NUnit.Analyzers" Version="4.11.2">
14+
<PackageReference Include="xunit" Version="2.9.3" />
15+
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2">
1616
<PrivateAssets>all</PrivateAssets>
1717
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
1818
</PackageReference>
19-
<PackageReference Include="NUnit3TestAdapter" Version="6.1.0" />
2019
</ItemGroup>
2120

2221
<ItemGroup>
23-
<Using Include="NUnit.Framework"/>
22+
<Using Include="Xunit"/>
2423
</ItemGroup>
2524

2625
<ItemGroup>

AdventOfCodeTests/Events/2018/Day01Tests.cs

Lines changed: 0 additions & 32 deletions
This file was deleted.
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
using AdventOfCode.Events._2018.Days;
2+
3+
namespace AdventOfCodeTests.Events._2018.Days;
4+
5+
public class Day01Tests
6+
{
7+
[Theory]
8+
[InlineData("+1, +1, +1", "3")]
9+
[InlineData("+1, +1, -2", "0")]
10+
[InlineData("-1, -2, -3", "-6")]
11+
public void Part1Test(string inputString, string expectedOutput)
12+
{
13+
var input = inputString.Split(", ");
14+
15+
var output = Day01.Part1Impl(input);
16+
17+
Assert.Equal(expectedOutput, output);
18+
}
19+
20+
[Theory]
21+
[InlineData("+1, -1", "0")]
22+
[InlineData("+3, +3, +4, -2, -4", "10")]
23+
[InlineData("-6, +3, +8, +5, -6", "5")]
24+
[InlineData("+7, +7, -2, -7, -4", "14")]
25+
public void Part2Test(string inputString, string expectedOutput)
26+
{
27+
var input = inputString.Split(", ");
28+
29+
var output = Day01.Part2Impl(input);
30+
31+
Assert.Equal(expectedOutput, output);
32+
}
33+
}

AdventOfCodeTests/Events/2019/Days/Day01Tests.cs

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,29 @@
22

33
namespace AdventOfCodeTests.Events._2019.Days;
44

5-
[TestFixture]
65
public class Day01Tests
76
{
8-
[TestCase(12, 2)]
9-
[TestCase(14, 2)]
10-
[TestCase(1969, 654)]
11-
[TestCase(100756, 33583)]
7+
[Theory]
8+
[InlineData(12, 2)]
9+
[InlineData(14, 2)]
10+
[InlineData(1969, 654)]
11+
[InlineData(100756, 33583)]
1212
public void Module_FuelCalculation_Part1(int mass, int expectedFuel)
1313
{
1414
var sut = new Day01.Module(mass);
15-
16-
Assert.That(sut.FuelRequirement(false), Is.EqualTo(expectedFuel));
15+
16+
Assert.Equal(expectedFuel, sut.FuelRequirement(false));
1717
}
18-
19-
[TestCase(12, 2)]
20-
[TestCase(14, 2)]
21-
[TestCase(1969, 966)]
22-
[TestCase(100756, 50346)]
18+
19+
[Theory]
20+
[InlineData(12, 2)]
21+
[InlineData(14, 2)]
22+
[InlineData(1969, 966)]
23+
[InlineData(100756, 50346)]
2324
public void Module_FuelCalculation_Part2(int mass, int expectedFuel)
2425
{
2526
var sut = new Day01.Module(mass);
26-
27-
Assert.That(sut.FuelRequirement(true), Is.EqualTo(expectedFuel));
27+
28+
Assert.Equal(expectedFuel, sut.FuelRequirement(true));
2829
}
2930
}

AdventOfCodeTests/Events/2019/Days/Day02Tests.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,21 @@
22

33
namespace AdventOfCodeTests.Events._2019.Days;
44

5-
[TestFixture]
65
public class Day02Tests
76
{
8-
[TestCase("1,0,0,0,99","2,0,0,0,99")]
9-
[TestCase("2,3,0,3,99","2,3,0,6,99")]
10-
[TestCase("2,4,4,5,99,0","2,4,4,5,99,9801")]
11-
[TestCase("1,1,1,4,99,5,6,0,99","30,1,1,4,2,5,6,0,99")]
7+
[Theory]
8+
[InlineData("1,0,0,0,99","2,0,0,0,99")]
9+
[InlineData("2,3,0,3,99","2,3,0,6,99")]
10+
[InlineData("2,4,4,5,99,0","2,4,4,5,99,9801")]
11+
[InlineData("1,1,1,4,99,5,6,0,99","30,1,1,4,2,5,6,0,99")]
1212
public void Computer_Run_Part1(string input, string expectedOutput)
1313
{
1414
var sut = new Day02.Computer();
15-
15+
1616
sut.Program(input);
17-
17+
1818
sut.Run();
19-
20-
Assert.That(sut.ToString(), Is.EqualTo(expectedOutput));
19+
20+
Assert.Equal(expectedOutput, sut.ToString());
2121
}
2222
}

AdventOfCodeTests/Events/2019/Days/Day04Tests.cs

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,23 @@
22

33
namespace AdventOfCodeTests.Events._2019.Days;
44

5-
[TestFixture]
65
public class Day04Tests
76
{
8-
[TestCase(111111,true)]
9-
[TestCase(223450,false)]
10-
[TestCase(123789,false)]
7+
[Theory]
8+
[InlineData(111111,true)]
9+
[InlineData(223450,false)]
10+
[InlineData(123789,false)]
1111
public void MeetsCriteriaPart1(int value, bool expectedResult)
1212
{
13-
Assert.That(Day04.MeetsCriteria(value, 1), Is.EqualTo(expectedResult));
13+
Assert.Equal(expectedResult, Day04.MeetsCriteria(value, 1));
1414
}
15-
16-
[TestCase(112233,true)]
17-
[TestCase(123444,false)]
18-
[TestCase(111122,true)]
15+
16+
[Theory]
17+
[InlineData(112233,true)]
18+
[InlineData(123444,false)]
19+
[InlineData(111122,true)]
1920
public void MeetsCriteriaPart2(int value, bool expectedResult)
2021
{
21-
Assert.That(Day04.MeetsCriteria(value, 2), Is.EqualTo(expectedResult));
22+
Assert.Equal(expectedResult, Day04.MeetsCriteria(value, 2));
2223
}
2324
}

AdventOfCodeTests/Events/2020/Days/Day01Tests.cs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,19 @@
22

33
namespace AdventOfCodeTests.Events._2020.Days;
44

5-
[TestFixture]
65
public class Day01Tests
76
{
87
private readonly Day01 _systemUnderTest = new();
9-
10-
[Test]
8+
9+
[Fact]
1110
public void Part1Test()
1211
{
13-
Assert.That(_systemUnderTest.Part1("Events/2020/TestData/1.txt"), Is.EqualTo("514579"));
12+
Assert.Equal("514579", _systemUnderTest.Part1("Events/2020/TestData/1.txt"));
1413
}
15-
16-
[Test]
14+
15+
[Fact]
1716
public void Part2Test()
1817
{
19-
Assert.That(_systemUnderTest.Part2("Events/2020/TestData/1.txt"), Is.EqualTo("241861950"));
18+
Assert.Equal("241861950", _systemUnderTest.Part2("Events/2020/TestData/1.txt"));
2019
}
2120
}

AdventOfCodeTests/Events/2021/Days/Day01Tests.cs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,19 @@
22

33
namespace AdventOfCodeTests.Events._2021.Days;
44

5-
[TestFixture]
65
public class Day01Tests
76
{
87
private readonly Day01 _systemUnderTest = new();
98

10-
[Test]
9+
[Fact]
1110
public void Part1Test()
1211
{
13-
Assert.That(_systemUnderTest.Part1("Events/2021/TestData/1.txt"), Is.EqualTo("7"));
12+
Assert.Equal("7", _systemUnderTest.Part1("Events/2021/TestData/1.txt"));
1413
}
15-
16-
[Test]
14+
15+
[Fact]
1716
public void Part2Test()
1817
{
19-
Assert.That(_systemUnderTest.Part2("Events/2021/TestData/1.txt"), Is.EqualTo("5"));
18+
Assert.Equal("5", _systemUnderTest.Part2("Events/2021/TestData/1.txt"));
2019
}
2120
}

AdventOfCodeTests/Events/2022/Days/Day01Tests.cs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,19 @@
22

33
namespace AdventOfCodeTests.Events._2022.Days;
44

5-
[TestFixture]
65
public class Day01Tests
76
{
87
private readonly Day01 _systemUnderTest = new();
9-
10-
[Test]
8+
9+
[Fact]
1110
public void Part1Test()
1211
{
13-
Assert.That(_systemUnderTest.Part1("Events/2022/TestData/1.txt"), Is.EqualTo("24000"));
12+
Assert.Equal("24000", _systemUnderTest.Part1("Events/2022/TestData/1.txt"));
1413
}
15-
16-
[Test]
14+
15+
[Fact]
1716
public void Part2Test()
1817
{
19-
Assert.That(_systemUnderTest.Part2("Events/2022/TestData/1.txt"), Is.EqualTo("45000"));
18+
Assert.Equal("45000", _systemUnderTest.Part2("Events/2022/TestData/1.txt"));
2019
}
2120
}

AdventOfCodeTests/Events/2022/Days/Day02Tests.cs

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,19 @@
22

33
namespace AdventOfCodeTests.Events._2022.Days;
44

5-
[TestFixture]
65
public class Day02Tests
76
{
87
private readonly Day02 _systemUnderTest = new();
9-
10-
[Test]
8+
9+
[Fact]
1110
public void Part1Test()
1211
{
13-
Assert.That(_systemUnderTest.Part1("Events/2022/TestData/2.txt"), Is.EqualTo("15"));
12+
Assert.Equal("15", _systemUnderTest.Part1("Events/2022/TestData/2.txt"));
1413
}
15-
16-
[Test]
14+
15+
[Fact]
1716
public void Part2Test()
1817
{
19-
Assert.That(_systemUnderTest.Part2("Events/2022/TestData/2.txt"), Is.EqualTo("12"));
18+
Assert.Equal("12", _systemUnderTest.Part2("Events/2022/TestData/2.txt"));
2019
}
2120
}

0 commit comments

Comments
 (0)