1e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu// CHECKSTYLE:OFF Generated code
2e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu/* This file is auto-generated from ParallaxIntTest.java.  DO NOT MODIFY. */
3e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
4e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu/*
5e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu * Copyright (C) 2016 The Android Open Source Project
6e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu *
7e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu * Licensed under the Apache License, Version 2.0 (the "License");
8e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu * you may not use this file except in compliance with the License.
9e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu * You may obtain a copy of the License at
10e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu *
11e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu *      http://www.apache.org/licenses/LICENSE-2.0
12e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu *
13e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu * Unless required by applicable law or agreed to in writing, software
14e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu * distributed under the License is distributed on an "AS IS" BASIS,
15e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu * See the License for the specific language governing permissions and
17e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu * limitations under the License.
18e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu */
19e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gupackage android.support.v17.leanback.widget;
20e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
21e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Guimport static org.junit.Assert.assertEquals;
22e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Guimport static org.junit.Assert.assertSame;
23e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
24e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Guimport android.support.test.filters.SmallTest;
25e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Guimport android.support.test.runner.AndroidJUnit4;
26e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
27e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Guimport org.junit.Before;
28e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Guimport org.junit.Test;
29e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Guimport org.junit.runner.RunWith;
30e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
31e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu@RunWith(AndroidJUnit4.class)
32e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu@SmallTest
33e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gupublic class ParallaxFloatTest {
34e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
35bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu    Parallax<Parallax.FloatProperty> mSource;
36e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    int mScreenMax;
37e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
38e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    static void assertFloatEquals(float expected, float actual) {
39e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        org.junit.Assert.assertEquals((double) expected, (double) actual, 0.0001d);
40e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    }
41e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
42e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    @Before
43e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    public void setUp() throws Exception {
44bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu        mSource = new Parallax<Parallax.FloatProperty>() {
45e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
46e2104f4b5c8e3ad63570306a25e61502dfe4c418Aurimas Liutikas            @Override
47e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu            public float getMaxValue() {
48e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu                return mScreenMax;
49e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu            }
50e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
51e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu            @Override
52e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu            public FloatProperty createProperty(String name, int index) {
53e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu                return new FloatProperty(name, index);
54e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu            }
55e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        };
56e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    }
57e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
58e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    @Test
59e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    public void testVariable() {
60e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        mScreenMax = 1080;
61e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        Parallax.FloatProperty var1 = mSource.addProperty("var1");
62bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu        var1.setValue(mSource, 54);
63bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu        assertFloatEquals((float) 54, var1.getValue(mSource));
64e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        assertEquals(var1.getName(), "var1");
65e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        var1.set(mSource, (float) 2000);
66e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        assertFloatEquals((float) 2000, var1.get(mSource).floatValue());
67e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    }
68e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
69e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    @Test
70e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    public void testFixedKeyValue() {
71e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        mScreenMax = 1080;
72e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        Parallax.FloatProperty var1 = mSource.addProperty("var1");
73e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
74bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu        Parallax.FloatPropertyMarkerValue keyValue = (Parallax.FloatPropertyMarkerValue)
75bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu                var1.atAbsolute(1000);
76e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        assertSame(keyValue.getProperty(), var1);
77e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        assertFloatEquals((float) 1000, keyValue.getMarkerValue(mSource));
78e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    }
79e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
80e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    @Test
81e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    public void testFractionOfKeyValue() {
82e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        mScreenMax = 1080;
83e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        Parallax.FloatProperty var1 = mSource.addProperty("var1");
84e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
85bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu        Parallax.FloatPropertyMarkerValue keyValue = (Parallax.FloatPropertyMarkerValue)
86bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu                var1.at(0, 0.5f);
87e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        assertSame(keyValue.getProperty(), var1);
88e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        assertFloatEquals((float) 540, keyValue.getMarkerValue(mSource));
89e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    }
90e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
91e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    @Test
92e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    public void testFixedKeyValueWithFraction() {
93e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        mScreenMax = 1080;
94e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        Parallax.FloatProperty var1 = mSource.addProperty("var1");
95e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
96bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu        Parallax.FloatPropertyMarkerValue keyValue = (Parallax.FloatPropertyMarkerValue)
97bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu                var1.at(-100, 0.5f);
98e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        assertSame(keyValue.getProperty(), var1);
99e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        assertFloatEquals((float) 440, keyValue.getMarkerValue(mSource));
100e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
101bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu        Parallax.FloatPropertyMarkerValue keyValue2 = (Parallax.FloatPropertyMarkerValue)
102bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu                var1.at(100, 0.5f);
103e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        assertSame(keyValue2.getProperty(), var1);
104e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        assertFloatEquals((float) 640, keyValue2.getMarkerValue(mSource));
105e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    }
106e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
107e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    @Test(expected = IllegalStateException.class)
108e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    public void testVerifyFloatPropertys_wrongOrder() {
109e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        Parallax.FloatProperty var1 = mSource.addProperty("var1");
110e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        Parallax.FloatProperty var2 = mSource.addProperty("var2");
111e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
112bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu        var1.setValue(mSource, (float) 500);
113bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu        var2.setValue(mSource, (float) 499);
114e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
115bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu        mSource.verifyFloatProperties();
116e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    }
117e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
118e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    @Test(expected = IllegalStateException.class)
119e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    public void testVerifyFloatPropertysWrong_combination() {
120e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        Parallax.FloatProperty var1 = mSource.addProperty("var1");
121e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        Parallax.FloatProperty var2 = mSource.addProperty("var2");
122e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
123bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu        var1.setValue(mSource, Parallax.FloatProperty.UNKNOWN_BEFORE);
124bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu        var2.setValue(mSource, Parallax.FloatProperty.UNKNOWN_AFTER);
125e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
126bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu        mSource.verifyFloatProperties();
127e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    }
128e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
129e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    @Test
130e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    public void testVerifyFloatPropertys_success() {
131e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        Parallax.FloatProperty var1 = mSource.addProperty("var1");
132e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu        Parallax.FloatProperty var2 = mSource.addProperty("var2");
133e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
134bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu        var1.setValue(mSource, (float) 499);
135bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu        var2.setValue(mSource, (float) 500);
136e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
137bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu        mSource.verifyFloatProperties();
138e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
139bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu        var1.setValue(mSource, Parallax.FloatProperty.UNKNOWN_BEFORE);
140bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu        var2.setValue(mSource, (float) 500);
141e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
142bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu        mSource.verifyFloatProperties();
143e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
144bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu        var1.setValue(mSource, (float) 499);
145bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu        var2.setValue(mSource, Parallax.FloatProperty.UNKNOWN_AFTER);
146e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu
147bf4318c67254bc11307796601b9fb4a8bbfe67b2Dake Gu        mSource.verifyFloatProperties();
148e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu    }
149e1cde4d4ac42a6e9e16aad2b4df970c7c7d0771cDake Gu}
150