public IEnumerator TestTimeSlicedMonoRunner() { yield return(null); var frames = 0; using (var timeSlicedMonoRunner = new TimeSlicedMonoRunner("timesliced", 2000)) { ValueObject val = new ValueObject(); var yieldBreak = TimeSlicedYield(val); yieldBreak.RunOnScheduler(timeSlicedMonoRunner); var yieldBreak1 = TimeSlicedYield(val); yieldBreak1.RunOnScheduler(timeSlicedMonoRunner); var yieldBreak2 = TimeSlicedYield(val); yieldBreak2.RunOnScheduler(timeSlicedMonoRunner); var yieldBreak3 = TimeSlicedYield(val); yieldBreak3.RunOnScheduler(timeSlicedMonoRunner); DateTime then = DateTime.Now; frames++; timeSlicedMonoRunner.Step(); //first iteration of the runner so that the tasks are filled while (timeSlicedMonoRunner.numberOfRunningTasks > 0) { frames++; val.counter++; timeSlicedMonoRunner.Step(); yield return(null); } Assert.That((DateTime.Now - then).TotalMilliseconds < 1900); Assert.That(frames, Is.EqualTo(1)); Assert.That(yieldBreak.Current, Is.EqualTo(100)); Assert.That(yieldBreak1.Current, Is.EqualTo(100)); Assert.That(yieldBreak2.Current, Is.EqualTo(100)); Assert.That(yieldBreak3.Current, Is.EqualTo(100)); } }
public IEnumerator TestTimeSlicedMonoRunnerSliced() { yield return(null); var frames = 0; using (var timeSlicedMonoRunner = new TimeSlicedMonoRunner("timesliced2", 2)) { ValueObject val = new ValueObject(); var yieldBreak = TimeSlicedYieldNormal(val); yieldBreak.RunOnScheduler(timeSlicedMonoRunner); var yieldBreak1 = TimeSlicedYieldNormal(val); yieldBreak1.RunOnScheduler(timeSlicedMonoRunner); var yieldBreak2 = TimeSlicedYieldNormal(val); yieldBreak2.RunOnScheduler(timeSlicedMonoRunner); var yieldBreak3 = TimeSlicedYieldNormal(val); yieldBreak3.RunOnScheduler(timeSlicedMonoRunner); frames++; timeSlicedMonoRunner.Step(); //first iteration of the runner so that the tasks are filled while (timeSlicedMonoRunner.numberOfRunningTasks > 0) { frames++; val.counter++; timeSlicedMonoRunner.Step(); yield return(null); } Assert.That(frames, Is.GreaterThan(1)); Assert.That(yieldBreak.Current, Is.EqualTo(100)); Assert.That(yieldBreak1.Current, Is.EqualTo(100)); Assert.That(yieldBreak2.Current, Is.EqualTo(100)); Assert.That(yieldBreak3.Current, Is.EqualTo(100)); } }