Merge pull request #40 from mlemanczyk/codex/expand-tests-for-mersennenumberresiduegputester

Expand GPU coverage for even perfect candidate tests
This commit is contained in:
Marek Lemańczyk authored and GitHub committed 2025-09-20 10:50:23 +02:00
commit e148f5b6bc
4 files changed
+189

No files matched your search

@@ -21,6 +21,18 @@ public class MersenneNumberResidueCpuTesterTests
RunCase(tester, 127UL, 1_000UL, expectedPrime: true);
}
[Fact]
[Trait("Category", "Fast")]
public void Scan_recognizes_all_known_small_mersenne_primes()
{
var tester = new MersenneNumberResidueCpuTester();
foreach (ulong exponent in MersennePrimeTestData.Exponents)
{
RunCase(tester, exponent, 1UL, expectedPrime: true);
}
}
private static void RunCase(MersenneNumberResidueCpuTester tester, ulong exponent, ulong maxK, bool expectedPrime)
{
bool isPrime = true;
@@ -25,6 +25,20 @@ public class MersenneNumberResidueGpuTesterTests
RunCase(tester, 127UL, 1_001UL, expectedPrime: true);
}
[Theory]
[InlineData(false)]
[InlineData(true)]
[Trait("Category", "Fast")]
public void Scan_recognizes_all_known_small_mersenne_primes(bool useGpuOrder)
{
var tester = new MersenneNumberResidueGpuTester(useGpuOrder);
foreach (ulong exponent in MersennePrimeTestData.Exponents)
{
RunCase(tester, exponent, 1UL, expectedPrime: true);
}
}
[Theory]
[InlineData(false)]
[InlineData(true)]
@@ -0,0 +1,25 @@
namespace PerfectNumbers.Core.Tests;
internal static class MersennePrimeTestData
{
public static readonly ulong[] Exponents =
{
31UL,
61UL,
89UL,
107UL,
127UL,
521UL,
607UL,
1279UL,
2203UL,
2281UL,
3217UL,
4253UL,
4423UL,
9689UL,
9941UL,
11213UL
};
}