using FluentAssertions; using PerfectNumbers.Core.Gpu; using Xunit; namespace PerfectNumbers.Core.Tests; [Collection("GpuNtt")] public class GpuKernelPoolTests { // [Fact] // [Trait("Category", "Fast")] // public void EnsureSmallCyclesOnDevice_returns_same_view_on_subsequent_calls() // { // GpuContextPool.GpuContextLease lease = GpuContextPool.RentPreferred(preferCpu: true); // try // { // var accelerator = lease.Accelerator; // var first = GpuKernelPool.EnsureSmallCyclesOnDevice(accelerator); // var second = GpuKernelPool.EnsureSmallCyclesOnDevice(accelerator); // second.Equals(first).Should().BeTrue(); // second.Length.Should().Be(MersenneDivisorCycles.SmallDivisorsMax + 1); // } // finally // { // lease.Dispose(); // } // } [Fact] [Trait("Category", "Fast")] public void Run_provides_accelerator_and_stream() { bool executed = false; GpuKernelPool.Run((acc, stream) => { acc.Should().NotBeNull(); stream.Should().NotBeNull(); executed = true; }); executed.Should().BeTrue(); } }