Files
even-perfect-numbers-scanner/PerfectNumbers.Core.Tests/MersenneResidueStepperTests.cs
T
2025-09-09 21:15:57 +02:00

38 lines
817 B
C#

using FluentAssertions;
using Xunit;
namespace PerfectNumbers.Core.Tests;
public class MersenneResidueStepperTests
{
[Fact]
[Trait("Category", "Fast")]
public void Step_advances_residue()
{
var stepper = new MersenneResidueStepper(13, 4, 2);
stepper.State().Should().Be((4UL, 2UL));
stepper.Step(3).Should().Be((7UL, 10UL));
}
[Fact]
[Trait("Category", "Fast")]
public void To_moves_directly_to_target_exponent()
{
var stepper = new MersenneResidueStepper(13, 4, 2);
stepper.To(10).Should().Be((10UL, 9UL));
}
[Fact]
[Trait("Category", "Fast")]
public void Constructor_rejects_zero_modulus()
{
var act = () => new MersenneResidueStepper(0, 0, 0);
act.Should().Throw<ArgumentException>();
}
}