public void SkipOne_ExhaustiveTest() { var tween1FinishCallbacks = 0; var tween2FinishCallbacks = 0; var sequenceFinishCallbacks = 0; var tween1 = new TweenSleep(new TimeSpan(100), () => tween1FinishCallbacks++); var tween2 = new TweenSleep(new TimeSpan(100), () => tween2FinishCallbacks++); var sequence = new TweenSequence(() => sequenceFinishCallbacks++); sequence.Add(tween1); sequence.Add(tween2); sequence.SkipOne(); Assert.Equal(1, sequence.TweenCount); Assert.Equal(0, tween1FinishCallbacks); Assert.Equal(0, tween2FinishCallbacks); Assert.Equal(0, sequenceFinishCallbacks); Assert.True(tween1.IsFinished); Assert.False(tween2.IsFinished); Assert.False(sequence.IsFinished); sequence.SkipOne(); Assert.Equal(0, sequence.TweenCount); Assert.Equal(0, tween1FinishCallbacks); Assert.Equal(0, tween2FinishCallbacks); Assert.Equal(1, sequenceFinishCallbacks); Assert.True(tween1.IsFinished); Assert.True(tween2.IsFinished); Assert.True(sequence.IsFinished); }