40 lines
985 B
C#
40 lines
985 B
C#
using FluentAssertions;
|
|
using PerfectNumbers.Core.Gpu;
|
|
using Xunit;
|
|
|
|
namespace PerfectNumbers.Core.Tests;
|
|
|
|
public class PrimeTesterIsPrimeTests
|
|
{
|
|
[Theory]
|
|
[Trait("Category", "Fast")]
|
|
[InlineData(1UL, false)]
|
|
[InlineData(2UL, true)]
|
|
[InlineData(3UL, true)]
|
|
[InlineData(4UL, false)]
|
|
[InlineData(7UL, true)]
|
|
[InlineData(97UL, true)]
|
|
[InlineData(121UL, false)]
|
|
public void IsPrime_returns_expected_results(ulong n, bool expected)
|
|
{
|
|
var tester = new PrimeTester();
|
|
|
|
tester.IsPrime(n, CancellationToken.None).Should().Be(expected);
|
|
}
|
|
|
|
[Fact]
|
|
[Trait("Category", "Fast")]
|
|
public void IsPrimeGpu_falls_back_to_cpu_when_forced()
|
|
{
|
|
var tester = new PrimeTester();
|
|
GpuContextPool.ForceCpu = true;
|
|
|
|
tester.IsPrimeGpu(11UL, CancellationToken.None).Should().BeTrue();
|
|
|
|
tester.IsPrimeGpu(12UL, CancellationToken.None).Should().BeFalse();
|
|
|
|
GpuContextPool.ForceCpu = false;
|
|
}
|
|
}
|
|
|