public void WrongParameters() { var ps = new ParticleSystem(); ps.Parameters.AddUniform<float>("A"); ps.Parameters.AddUniform<float>("S"); var e = new AngularVelocityEffector { ParticleSystem = ps }; var dt = new TimeSpan(0, 0, 0, 1); // There should be no exception. e.RequeryParameters(); e.Initialize(); e.BeginUpdate(dt); e.UpdateParticles(dt, 10, 20); e.EndUpdate(dt); e.Uninitialize(); }
public void Uninitialize() { var ps = new ParticleSystem(); var wp0 = new WeakReference(ps.Parameters.AddVarying<float>(ParticleParameterNames.Angle)); var wp1 = new WeakReference(ps.Parameters.AddVarying<float>(ParticleParameterNames.AngularSpeed)); var e = new AngularVelocityEffector { ParticleSystem = ps }; e.RequeryParameters(); e.Uninitialize(); e.ParticleSystem = null; ps = null; GC.Collect(); GC.WaitForFullGCComplete(); Assert.IsFalse(wp0.IsAlive); Assert.IsFalse(wp1.IsAlive); }