using FluentAssertions; using ILGPU; using ILGPU.Runtime; using PerfectNumbers.Core.Gpu; using Xunit; namespace PerfectNumbers.Core.Tests.Gpu; [Collection("GpuNtt")] public class GpuContextPoolTests { // [Fact] // [Trait("Category", "Fast")] // public void RentPreferred_cpu_returns_cpu_accelerator() // { // GpuContextPool.DisposeAll(); // GpuContextPool.GpuContextLease lease = GpuContextPool.RentPreferred(preferCpu: true); // try // { // lease.Accelerator.AcceleratorType.Should().Be(AcceleratorType.CPU); // } // finally // { // lease.Dispose(); // } // GpuContextPool.DisposeAll(); // } // [Fact] // [Trait("Category", "Fast")] // public void RentPreferred_reuses_cpu_context() // { // GpuContextPool.DisposeAll(); // Context firstContext; // Accelerator firstAccelerator; // GpuContextPool.GpuContextLease lease = GpuContextPool.RentPreferred(preferCpu: true); // try // { // firstContext = lease.Context; // firstAccelerator = lease.Accelerator; // } // finally // { // lease.Dispose(); // } // lease = GpuContextPool.RentPreferred(preferCpu: true); // try // { // lease.Context.Should().BeSameAs(firstContext); // lease.Accelerator.Should().BeSameAs(firstAccelerator); // } // finally // { // lease.Dispose(); // } // GpuContextPool.DisposeAll(); // } // [Fact] // [Trait("Category", "Fast")] // public void DisposeAll_clears_pooled_contexts() // { // GpuContextPool.DisposeAll(); // Context firstContext; // GpuContextPool.GpuContextLease lease = GpuContextPool.RentPreferred(preferCpu: true); // try // { // firstContext = lease.Context; // } // finally // { // lease.Dispose(); // } // GpuContextPool.DisposeAll(); // lease = GpuContextPool.RentPreferred(preferCpu: true); // try // { // lease.Context.Should().NotBeSameAs(firstContext); // } // finally // { // lease.Dispose(); // } // GpuContextPool.DisposeAll(); // } }