public void UpadateProcess_Demo(float initDeltaPosOnAxis, float deceleration, int dimension, Vector2 elementInitLocalPos) { IInertialScrollProcessConstArg arg = CreateMockConstArg(); arg.processManager.GetInertialScrollDeceleration().Returns(deceleration); arg.initialVelocity.Returns(initDeltaPosOnAxis); arg.dimension.Returns(dimension); IUIElement scrollerElement = Substitute.For <IUIElement>(); scrollerElement.GetLocalPosition().Returns(elementInitLocalPos); arg.scrollerElement.Returns(scrollerElement); TestInertialScrollProcess process = new TestInertialScrollProcess(arg); bool done = false; DebugHelper.PrintInRed("initVel: " + initDeltaPosOnAxis.ToString() + ", deceleration: " + deceleration.ToString()); float deltaT = .1f; Vector2 localPos = elementInitLocalPos; scrollerElement.SetLocalPosition(Arg.Do <Vector2>(x => localPos = x)); while (!done) { process.UpdateProcess(deltaT); Debug.Log("elementLocalPos: " + localPos.ToString() + ", velocity: " + process.thisPrevVelocity_Test.ToString()); if (process.thisElapsedTime_Test >= process.thisExpireTime_Test) { done = true; } } }
public void Construction_MultiplierNotLessThanZero_SetsExpireTime(float initialVelocity, float deceleration, float decelerationAxisComponentMultiplier, float expected) { IInertialScrollProcessConstArg arg = CreateMockConstArg(); arg.deceleration.Returns(deceleration); arg.initialVelocity.Returns(initialVelocity); arg.decelerationAxisComponentMultiplier.Returns(decelerationAxisComponentMultiplier); TestInertialScrollProcess process = new TestInertialScrollProcess(arg); float actual = process.thisExpireTime_Test; Assert.That(actual, Is.EqualTo(expected)); }