예제 #1
0
            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.AreEqual(destination[0].Age, 1f, 0.0001);
                    Assert.AreEqual(destination[1].Age, 1f, 0.0001);
                    Assert.AreEqual(destination[2].Age, 1f, 0.0001);
                    Assert.AreEqual(destination[3].Age, 1f, 0.0001);
                    Assert.AreEqual(destination[4].Age, 1f, 0.0001);
                }
            }