1cc671dd3caac1d0cbf3f6999ab063c9ff1f297b2Dake Gu// CHECKSTYLE:OFF Generated code 2770847c0c8424175f0619026615b11fef50ca269Dake Gu/* This file is auto-generated from ParallaxIntEffectTest.java. DO NOT MODIFY. */ 3770847c0c8424175f0619026615b11fef50ca269Dake Gu 4770847c0c8424175f0619026615b11fef50ca269Dake Gu/* 5770847c0c8424175f0619026615b11fef50ca269Dake Gu * Copyright (C) 2016 The Android Open Source Project 6770847c0c8424175f0619026615b11fef50ca269Dake Gu * 7770847c0c8424175f0619026615b11fef50ca269Dake Gu * Licensed under the Apache License, Version 2.0 (the "License"); 8770847c0c8424175f0619026615b11fef50ca269Dake Gu * you may not use this file except in compliance with the License. 9770847c0c8424175f0619026615b11fef50ca269Dake Gu * You may obtain a copy of the License at 10770847c0c8424175f0619026615b11fef50ca269Dake Gu * 11770847c0c8424175f0619026615b11fef50ca269Dake Gu * http://www.apache.org/licenses/LICENSE-2.0 12770847c0c8424175f0619026615b11fef50ca269Dake Gu * 13770847c0c8424175f0619026615b11fef50ca269Dake Gu * Unless required by applicable law or agreed to in writing, software 14770847c0c8424175f0619026615b11fef50ca269Dake Gu * distributed under the License is distributed on an "AS IS" BASIS, 15770847c0c8424175f0619026615b11fef50ca269Dake Gu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 16770847c0c8424175f0619026615b11fef50ca269Dake Gu * See the License for the specific language governing permissions and 17770847c0c8424175f0619026615b11fef50ca269Dake Gu * limitations under the License. 18770847c0c8424175f0619026615b11fef50ca269Dake Gu */ 19770847c0c8424175f0619026615b11fef50ca269Dake Gu 20770847c0c8424175f0619026615b11fef50ca269Dake Gupackage android.support.v17.leanback.widget; 21770847c0c8424175f0619026615b11fef50ca269Dake Gu 22bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Guimport static junit.framework.Assert.assertEquals; 23bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu 24754cb29c50f09a83251dd4bb633ba445b2411adbAurimas Liutikasimport static org.mockito.Mockito.times; 25754cb29c50f09a83251dd4bb633ba445b2411adbAurimas Liutikasimport static org.mockito.Mockito.verify; 26754cb29c50f09a83251dd4bb633ba445b2411adbAurimas Liutikas 27754cb29c50f09a83251dd4bb633ba445b2411adbAurimas Liutikasimport android.support.test.filters.SmallTest; 28754cb29c50f09a83251dd4bb633ba445b2411adbAurimas Liutikasimport android.support.test.runner.AndroidJUnit4; 29bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Guimport android.util.Property; 30770847c0c8424175f0619026615b11fef50ca269Dake Gu 31770847c0c8424175f0619026615b11fef50ca269Dake Guimport org.junit.Before; 32770847c0c8424175f0619026615b11fef50ca269Dake Guimport org.junit.Test; 33770847c0c8424175f0619026615b11fef50ca269Dake Guimport org.junit.runner.RunWith; 34770847c0c8424175f0619026615b11fef50ca269Dake Guimport org.mockito.Mock; 35770847c0c8424175f0619026615b11fef50ca269Dake Guimport org.mockito.Mockito; 36770847c0c8424175f0619026615b11fef50ca269Dake Guimport org.mockito.MockitoAnnotations; 37770847c0c8424175f0619026615b11fef50ca269Dake Gu 38770847c0c8424175f0619026615b11fef50ca269Dake Gu@RunWith(AndroidJUnit4.class) 39770847c0c8424175f0619026615b11fef50ca269Dake Gu@SmallTest 40770847c0c8424175f0619026615b11fef50ca269Dake Gupublic class ParallaxFloatEffectTest { 41770847c0c8424175f0619026615b11fef50ca269Dake Gu 42bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu Parallax<Parallax.FloatProperty> mSource; 43e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu int mScreenMax; 44e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu ParallaxEffect.FloatEffect mEffect; 45e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu @Mock ParallaxTarget mTarget; 46770847c0c8424175f0619026615b11fef50ca269Dake Gu 47bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu static void assertFloatEquals(float expected, float actual) { 48bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu org.junit.Assert.assertEquals((double) expected, (double) actual, 0.0001d); 49bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu } 50bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu 51770847c0c8424175f0619026615b11fef50ca269Dake Gu @Before 52770847c0c8424175f0619026615b11fef50ca269Dake Gu public void setUp() throws Exception { 53770847c0c8424175f0619026615b11fef50ca269Dake Gu MockitoAnnotations.initMocks(this); 54bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu mSource = new Parallax<Parallax.FloatProperty>() { 55770847c0c8424175f0619026615b11fef50ca269Dake Gu 56e2104f4b5c8e3ad63570306a25e61502dfe4c418Aurimas Liutikas @Override 57e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu public float getMaxValue() { 58e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu return mScreenMax; 59770847c0c8424175f0619026615b11fef50ca269Dake Gu } 603778c4eaa62895085d33965ee391c8b21783cffaDake Gu 613778c4eaa62895085d33965ee391c8b21783cffaDake Gu @Override 623778c4eaa62895085d33965ee391c8b21783cffaDake Gu public FloatProperty createProperty(String name, int index) { 633778c4eaa62895085d33965ee391c8b21783cffaDake Gu return new FloatProperty(name, index); 643778c4eaa62895085d33965ee391c8b21783cffaDake Gu } 65770847c0c8424175f0619026615b11fef50ca269Dake Gu }; 66e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect = new ParallaxEffect.FloatEffect(); 67770847c0c8424175f0619026615b11fef50ca269Dake Gu } 68770847c0c8424175f0619026615b11fef50ca269Dake Gu 69770847c0c8424175f0619026615b11fef50ca269Dake Gu @Test 70770847c0c8424175f0619026615b11fef50ca269Dake Gu public void testOneVariable() { 71e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mScreenMax = 1080; 72e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Parallax.FloatProperty var1 = mSource.addProperty("var1"); 73770847c0c8424175f0619026615b11fef50ca269Dake Gu 74e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.setPropertyRanges(var1.atAbsolute(540), var1.atAbsolute(0)); 75e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.target(mTarget); 76770847c0c8424175f0619026615b11fef50ca269Dake Gu 77770847c0c8424175f0619026615b11fef50ca269Dake Gu // start 78bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, 540); 79e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.performMapping(mSource); 80e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu verify(mTarget, times(1)).update(0f); 81e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Mockito.reset(mTarget); 82770847c0c8424175f0619026615b11fef50ca269Dake Gu 8346ae6eb27de10f019258fe197c794cf2234abe5dsusnata // 25% complete 84bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, 405); 85e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.performMapping(mSource); 86e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu verify(mTarget, times(1)).update(0.25f); 87e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Mockito.reset(mTarget); 8846ae6eb27de10f019258fe197c794cf2234abe5dsusnata 89770847c0c8424175f0619026615b11fef50ca269Dake Gu // middle 90bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, 270); 91e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.performMapping(mSource); 92e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu verify(mTarget, times(1)).update(.5f); 93e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Mockito.reset(mTarget); 94770847c0c8424175f0619026615b11fef50ca269Dake Gu 9546ae6eb27de10f019258fe197c794cf2234abe5dsusnata // 75% complete 96bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, 135); 97e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.performMapping(mSource); 98e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu verify(mTarget, times(1)).update(0.75f); 99e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Mockito.reset(mTarget); 10046ae6eb27de10f019258fe197c794cf2234abe5dsusnata 101770847c0c8424175f0619026615b11fef50ca269Dake Gu // end 102bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, 0); 103e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.performMapping(mSource); 104e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu verify(mTarget, times(1)).update(1f); 105e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Mockito.reset(mTarget); 106770847c0c8424175f0619026615b11fef50ca269Dake Gu 107770847c0c8424175f0619026615b11fef50ca269Dake Gu // after end 108bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, -1000); 109e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.performMapping(mSource); 110e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu verify(mTarget, times(1)).update(1f); 111e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Mockito.reset(mTarget); 112770847c0c8424175f0619026615b11fef50ca269Dake Gu 113770847c0c8424175f0619026615b11fef50ca269Dake Gu // before start 114bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, 1000); 115e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.performMapping(mSource); 116e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu verify(mTarget, times(1)).update(0f); 117e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Mockito.reset(mTarget); 118770847c0c8424175f0619026615b11fef50ca269Dake Gu 119770847c0c8424175f0619026615b11fef50ca269Dake Gu // unknown_before 120bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, Parallax.FloatProperty.UNKNOWN_BEFORE); 121e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.performMapping(mSource); 122e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu verify(mTarget, times(1)).update(1f); 123e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Mockito.reset(mTarget); 124770847c0c8424175f0619026615b11fef50ca269Dake Gu 125770847c0c8424175f0619026615b11fef50ca269Dake Gu // unknown_after 126bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, Parallax.FloatProperty.UNKNOWN_AFTER); 127e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.performMapping(mSource); 128e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu verify(mTarget, times(1)).update(0f); 129e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Mockito.reset(mTarget); 130770847c0c8424175f0619026615b11fef50ca269Dake Gu } 131770847c0c8424175f0619026615b11fef50ca269Dake Gu 132770847c0c8424175f0619026615b11fef50ca269Dake Gu @Test(expected=IllegalStateException.class) 133770847c0c8424175f0619026615b11fef50ca269Dake Gu public void testVerifyKeyValueOfSameVariableInDesendantOrder() { 134e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mScreenMax = 1080; 135e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Parallax.FloatProperty var1 = mSource.addProperty("var1"); 136770847c0c8424175f0619026615b11fef50ca269Dake Gu 137e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.setPropertyRanges(var1.atAbsolute(540), var1.atAbsolute(550)); 138e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.target(mTarget); 139bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, 0); 140e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.performMapping(mSource); 141770847c0c8424175f0619026615b11fef50ca269Dake Gu } 142770847c0c8424175f0619026615b11fef50ca269Dake Gu 143770847c0c8424175f0619026615b11fef50ca269Dake Gu @Test 144770847c0c8424175f0619026615b11fef50ca269Dake Gu public void testTwoVariable() { 145e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mScreenMax = 1080; 146e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Parallax.FloatProperty var1 = mSource.addProperty("var1"); 147e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Parallax.FloatProperty var2 = mSource.addProperty("var2"); 1483778c4eaa62895085d33965ee391c8b21783cffaDake Gu 149e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.setPropertyRanges(var1.atAbsolute(540), var2.atAbsolute(540)); 150e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.target(mTarget); 151770847c0c8424175f0619026615b11fef50ca269Dake Gu 152770847c0c8424175f0619026615b11fef50ca269Dake Gu // start 153bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, 540); 154bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var2.setValue(mSource, 840); 155e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.performMapping(mSource); 156e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu verify(mTarget, times(1)).update(0f); 157e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Mockito.reset(mTarget); 158770847c0c8424175f0619026615b11fef50ca269Dake Gu 159770847c0c8424175f0619026615b11fef50ca269Dake Gu // middle 160bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, 390); 161bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var2.setValue(mSource, 690); 162e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.performMapping(mSource); 163e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu verify(mTarget, times(1)).update(.5f); 164e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Mockito.reset(mTarget); 165770847c0c8424175f0619026615b11fef50ca269Dake Gu 166770847c0c8424175f0619026615b11fef50ca269Dake Gu // end 167bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, 240); 168bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var2.setValue(mSource, 540); 169e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.performMapping(mSource); 170e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu verify(mTarget, times(1)).update(1f); 171e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Mockito.reset(mTarget); 172770847c0c8424175f0619026615b11fef50ca269Dake Gu 173770847c0c8424175f0619026615b11fef50ca269Dake Gu // after end 174bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, 200); 175bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var2.setValue(mSource, 500); 176e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.performMapping(mSource); 177e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu verify(mTarget, times(1)).update(1f); 178e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Mockito.reset(mTarget); 179770847c0c8424175f0619026615b11fef50ca269Dake Gu 180770847c0c8424175f0619026615b11fef50ca269Dake Gu // before start 181bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, 1000); 182bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var2.setValue(mSource, 1300); 183e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.performMapping(mSource); 184e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu verify(mTarget, times(1)).update(0f); 185e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Mockito.reset(mTarget); 186770847c0c8424175f0619026615b11fef50ca269Dake Gu 187770847c0c8424175f0619026615b11fef50ca269Dake Gu // unknown_before 188bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, Parallax.FloatProperty.UNKNOWN_BEFORE); 189bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var2.setValue(mSource, Parallax.FloatProperty.UNKNOWN_BEFORE); 190e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.performMapping(mSource); 191e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu verify(mTarget, times(1)).update(1f); 192e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Mockito.reset(mTarget); 193770847c0c8424175f0619026615b11fef50ca269Dake Gu 194770847c0c8424175f0619026615b11fef50ca269Dake Gu // unknown_before 195bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, Parallax.FloatProperty.UNKNOWN_BEFORE); 196bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var2.setValue(mSource, -1000); 197e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.performMapping(mSource); 198e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu verify(mTarget, times(1)).update(1f); 199e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Mockito.reset(mTarget); 200770847c0c8424175f0619026615b11fef50ca269Dake Gu 201770847c0c8424175f0619026615b11fef50ca269Dake Gu // unknown_after 202bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, Parallax.FloatProperty.UNKNOWN_AFTER); 203bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var2.setValue(mSource, Parallax.FloatProperty.UNKNOWN_AFTER); 204e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.performMapping(mSource); 205e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu verify(mTarget, times(1)).update(0f); 206e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Mockito.reset(mTarget); 207770847c0c8424175f0619026615b11fef50ca269Dake Gu 208770847c0c8424175f0619026615b11fef50ca269Dake Gu // unknown_after 209bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, 1000); 210bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var2.setValue(mSource, Parallax.FloatProperty.UNKNOWN_AFTER); 211e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.performMapping(mSource); 212e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu verify(mTarget, times(1)).update(0f); 213e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Mockito.reset(mTarget); 214770847c0c8424175f0619026615b11fef50ca269Dake Gu 215770847c0c8424175f0619026615b11fef50ca269Dake Gu // unknown_before and less 216bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, Parallax.FloatProperty.UNKNOWN_BEFORE); 217bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var2.setValue(mSource, 500); 218e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.performMapping(mSource); 219e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu verify(mTarget, times(1)).update(1f); 220e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Mockito.reset(mTarget); 221770847c0c8424175f0619026615b11fef50ca269Dake Gu 222770847c0c8424175f0619026615b11fef50ca269Dake Gu // unknown_before and hit second 223bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, Parallax.FloatProperty.UNKNOWN_BEFORE); 224bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var2.setValue(mSource, 540); 225e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.performMapping(mSource); 226e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu verify(mTarget, times(1)).update(1f); 227e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Mockito.reset(mTarget); 228770847c0c8424175f0619026615b11fef50ca269Dake Gu 229770847c0c8424175f0619026615b11fef50ca269Dake Gu // unknown_before with estimation 230bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, Parallax.FloatProperty.UNKNOWN_BEFORE); 231bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var2.setValue(mSource, 1080); 232e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.performMapping(mSource); 233e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu verify(mTarget, times(1)).update(0.5f); 234e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Mockito.reset(mTarget); 235770847c0c8424175f0619026615b11fef50ca269Dake Gu 236770847c0c8424175f0619026615b11fef50ca269Dake Gu // unknown_after with estimation 237bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, 0); 238bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var2.setValue(mSource, Parallax.FloatProperty.UNKNOWN_AFTER); 239e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu mEffect.performMapping(mSource); 240e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu verify(mTarget, times(1)).update(0.5f); 241e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu Mockito.reset(mTarget); 242770847c0c8424175f0619026615b11fef50ca269Dake Gu } 243770847c0c8424175f0619026615b11fef50ca269Dake Gu 244bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu @Test 245bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu public void testDirectMapping() { 246bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu mScreenMax = 1080; 247bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu Parallax.FloatProperty var1 = mSource.addProperty("var1"); 248bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu 249bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu mEffect.setPropertyRanges(var1.atAbsolute((float) 540.45), var1.atAbsolute((float) 0.22)); 250bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu Object object = new Object(); 251bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu final float[] properValue = new float[1]; 252bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu Property<Object, Float> property = new Property<Object, Float>(Float.class, "attr") { 253bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu @Override 254bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu public void set(Object object, Float value) { 255bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu properValue[0] = value; 256bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu } 257bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu 258bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu @Override 259bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu public Float get(Object o) { 260bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu return properValue[0]; 261bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu } 262bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu }; 263bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu mTarget = new ParallaxTarget.DirectPropertyTarget<>(object, property); 264bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu mEffect.target(mTarget); 265bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu 266bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, (float) 540.45); 267bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu mEffect.performMapping(mSource); 268bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu assertFloatEquals((float) 540.45, properValue[0]); 269bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu 270bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, (float) 405.85); 271bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu mEffect.performMapping(mSource); 272bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu assertFloatEquals((float) 405.85, properValue[0]); 273bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu 274bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, 2000); 275bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu mEffect.performMapping(mSource); 276bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu assertFloatEquals((float) 540.45, properValue[0]); 277bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu 278bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, (float) 0.22); 279bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu mEffect.performMapping(mSource); 280bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu assertFloatEquals((float) 0.22, properValue[0]); 281bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu 282bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu var1.setValue(mSource, (float) 0.12); 283bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu mEffect.performMapping(mSource); 284bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu assertFloatEquals((float) 0.22, properValue[0]); 285bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu } 286770847c0c8424175f0619026615b11fef50ca269Dake Gu} 287