//using System; //using MonoGame.Extended.Particles; //using Xunit; //namespace MonoGame.Extended.Tests.Particles //{ // // public class ParticleBufferTests // { // public class AvailableProperty // { // [Fact] // public void WhenNoParticlesReleased_ReturnsBufferSize() // { // var subject = new ParticleBuffer(100); // Assert.Equal(subject.Available, 100); // } // [Fact] // public void WhenSomeParticlesReleased_ReturnsAvailableCount() // { // var subject = new ParticleBuffer(100); // subject.Release(10); // Assert.Equal(subject.Available, 90); // } // [Fact] // public void WhenAllParticlesReleased_ReturnsZero() // { // var subject = new ParticleBuffer(100); // subject.Release(100); // Assert.Equal(subject.Available, 0); // } // } // public class CountProperty // { // [Fact] // public void WhenNoParticlesReleased_ReturnsZero() // { // var subject = new ParticleBuffer(100); // Assert.Equal(subject.Count, 0); // } // [Fact] // public void WhenSomeParticlesReleased_ReturnsCount() // { // var subject = new ParticleBuffer(100); // subject.Release(10); // Assert.Equal(subject.Count, 10); // } // [Fact] // public void WhenAllParticlesReleased_ReturnsZero() // { // var subject = new ParticleBuffer(100); // subject.Release(100); // Assert.Equal(subject.Count, 100); // } // } // public class ReleaseMethod // { // [Fact] // public void WhenPassedReasonableQuantity_ReturnsNumberReleased() // { // var subject = new ParticleBuffer(100); // var count = subject.Release(50); // Assert.Equal(count.Total, 50); // } // [Fact] // public void WhenPassedImpossibleQuantity_ReturnsNumberActuallyReleased() // { // var subject = new ParticleBuffer(100); // var count = subject.Release(200); // Assert.Equal(count.Total, 100); // } // } // public class ReclaimMethod // { // [Fact] // public void WhenPassedReasonableNumber_ReclaimsParticles() // { // var subject = new ParticleBuffer(100); // subject.Release(100); // Assert.Equal(subject.Count, 100); // subject.Reclaim(50); // Assert.Equal(subject.Count, 50); // } // } // //public class CopyToMethod // //{ // // [Fact] // // public void WhenBufferIsSequential_CopiesParticlesInOrder() // // { // // unsafe // // { // // var subject = new ParticleBuffer(10); // // var iterator = subject.Release(5); // // do // // { // // var particle = iterator.Next(); // // particle->Age = 1f; // // } // // while (iterator.HasNext); // // var destination = new Particle[10]; // // fixed (Particle* buffer = destination) // // { // // subject.CopyTo((IntPtr)buffer); // // } // // Assert.Equal(destination[0].Age, 1f, 0.0001); // // Assert.Equal(destination[1].Age, 1f, 0.0001); // // Assert.Equal(destination[2].Age, 1f, 0.0001); // // Assert.Equal(destination[3].Age, 1f, 0.0001); // // Assert.Equal(destination[4].Age, 1f, 0.0001); // // } // // } // //} // //public class CopyToReverseMethod // //{ // // [Fact] // // public void WhenBufferIsSequential_CopiesParticlesInReverseOrder() // // { // // unsafe // // { // // var subject = new ParticleBuffer(10); // // var iterator = subject.Release(5); // // do // // { // // var particle = iterator.Next(); // // particle->Age = 1f; // // } // // while (iterator.HasNext); // // var destination = new Particle[10]; // // fixed (Particle* buffer = destination) // // { // // subject.CopyToReverse((IntPtr)buffer); // // } // // Assert.Equal(destination[0].Age, 1f, 0.0001); // // Assert.Equal(destination[1].Age, 1f, 0.0001); // // Assert.Equal(destination[2].Age, 1f, 0.0001); // // Assert.Equal(destination[3].Age, 1f, 0.0001); // // Assert.Equal(destination[4].Age, 1f, 0.0001); // // } // // } // //} // public class DisposeMethod // { // [Fact] // public void IsIdempotent() // { // var subject = new ParticleBuffer(100); // subject.Dispose(); // subject.Dispose(); // } // } // } //}