40 lines
1.0 KiB
C#
40 lines
1.0 KiB
C#
using FluentAssertions;
|
|
using PeterO.Numbers;
|
|
using Xunit;
|
|
|
|
namespace PerfectNumbers.Core.Tests;
|
|
|
|
public class PrimeCacheTests
|
|
{
|
|
[Fact]
|
|
[Trait("Category", "Fast")]
|
|
public void GetEulerPrimes_returns_primes_congruent_to_one_mod_four()
|
|
{
|
|
var cache = new PrimeCache();
|
|
EInteger[] result = cache.GetEulerPrimes(EInteger.FromInt32(2), EInteger.FromInt32(20));
|
|
|
|
result.Should().Equal(
|
|
EInteger.FromInt32(5),
|
|
EInteger.FromInt32(13),
|
|
EInteger.FromInt32(17));
|
|
}
|
|
|
|
[Fact]
|
|
[Trait("Category", "Fast")]
|
|
public void EnumeratePrimes_returns_sequence_starting_from_value()
|
|
{
|
|
var cache = new PrimeCache();
|
|
EInteger[] result = cache.EnumeratePrimes(EInteger.FromInt32(10))
|
|
.Take(5)
|
|
.ToArray();
|
|
|
|
result.Should().Equal(
|
|
EInteger.FromInt32(11),
|
|
EInteger.FromInt32(13),
|
|
EInteger.FromInt32(17),
|
|
EInteger.FromInt32(19),
|
|
EInteger.FromInt32(23));
|
|
}
|
|
}
|
|
|