1721a5a24e2278f4012109865d62b98190b3185afJason Sams/*
2721a5a24e2278f4012109865d62b98190b3185afJason Sams * Copyright (C) 2011 The Android Open Source Project
3721a5a24e2278f4012109865d62b98190b3185afJason Sams *
4721a5a24e2278f4012109865d62b98190b3185afJason Sams * Licensed under the Apache License, Version 2.0 (the "License");
5721a5a24e2278f4012109865d62b98190b3185afJason Sams * you may not use this file except in compliance with the License.
6721a5a24e2278f4012109865d62b98190b3185afJason Sams * You may obtain a copy of the License at
7721a5a24e2278f4012109865d62b98190b3185afJason Sams *
8721a5a24e2278f4012109865d62b98190b3185afJason Sams *      http://www.apache.org/licenses/LICENSE-2.0
9721a5a24e2278f4012109865d62b98190b3185afJason Sams *
10721a5a24e2278f4012109865d62b98190b3185afJason Sams * Unless required by applicable law or agreed to in writing, software
11721a5a24e2278f4012109865d62b98190b3185afJason Sams * distributed under the License is distributed on an "AS IS" BASIS,
12721a5a24e2278f4012109865d62b98190b3185afJason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13721a5a24e2278f4012109865d62b98190b3185afJason Sams * See the License for the specific language governing permissions and
14721a5a24e2278f4012109865d62b98190b3185afJason Sams * limitations under the License.
15721a5a24e2278f4012109865d62b98190b3185afJason Sams */
16721a5a24e2278f4012109865d62b98190b3185afJason Sams
17721a5a24e2278f4012109865d62b98190b3185afJason Samspackage com.android.rs.imagejb;
18721a5a24e2278f4012109865d62b98190b3185afJason Sams
19721a5a24e2278f4012109865d62b98190b3185afJason Sams
20721a5a24e2278f4012109865d62b98190b3185afJason Samsimport android.os.Bundle;
21721a5a24e2278f4012109865d62b98190b3185afJason Samsimport android.util.Log;
22721a5a24e2278f4012109865d62b98190b3185afJason Sams
23721a5a24e2278f4012109865d62b98190b3185afJason Samsimport com.android.rs.imagejb.IPTestListJB.TestName;
24721a5a24e2278f4012109865d62b98190b3185afJason Samsimport com.android.rs.imagejb.ImageProcessingTestRunner;
25721a5a24e2278f4012109865d62b98190b3185afJason Sams
26721a5a24e2278f4012109865d62b98190b3185afJason Samsimport android.test.ActivityInstrumentationTestCase2;
27721a5a24e2278f4012109865d62b98190b3185afJason Samsimport android.test.suitebuilder.annotation.LargeTest;
28721a5a24e2278f4012109865d62b98190b3185afJason Sams
29721a5a24e2278f4012109865d62b98190b3185afJason Sams/**
30721a5a24e2278f4012109865d62b98190b3185afJason Sams * ImageProcessing benchmark test.
31721a5a24e2278f4012109865d62b98190b3185afJason Sams * To run the test, please use command
32721a5a24e2278f4012109865d62b98190b3185afJason Sams *
33721a5a24e2278f4012109865d62b98190b3185afJason Sams * adb shell am instrument -e iteration <n> -w com.android.rs.image/.ImageProcessingTestRunner
34721a5a24e2278f4012109865d62b98190b3185afJason Sams *
35721a5a24e2278f4012109865d62b98190b3185afJason Sams */
36721a5a24e2278f4012109865d62b98190b3185afJason Samspublic class ImageProcessingTest extends ActivityInstrumentationTestCase2<ImageProcessingActivityJB> {
37721a5a24e2278f4012109865d62b98190b3185afJason Sams    private final String TAG = "ImageProcessingTest";
38721a5a24e2278f4012109865d62b98190b3185afJason Sams    private final String TEST_NAME = "Testname";
39721a5a24e2278f4012109865d62b98190b3185afJason Sams    private final String ITERATIONS = "Iterations";
40721a5a24e2278f4012109865d62b98190b3185afJason Sams    private final String BENCHMARK = "Benchmark";
41721a5a24e2278f4012109865d62b98190b3185afJason Sams    private static int INSTRUMENTATION_IN_PROGRESS = 2;
42721a5a24e2278f4012109865d62b98190b3185afJason Sams    private int mIteration;
43721a5a24e2278f4012109865d62b98190b3185afJason Sams    private ImageProcessingActivityJB mActivity;
44721a5a24e2278f4012109865d62b98190b3185afJason Sams
45721a5a24e2278f4012109865d62b98190b3185afJason Sams    public ImageProcessingTest() {
46721a5a24e2278f4012109865d62b98190b3185afJason Sams        super(ImageProcessingActivityJB.class);
47721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
48721a5a24e2278f4012109865d62b98190b3185afJason Sams
49721a5a24e2278f4012109865d62b98190b3185afJason Sams
50721a5a24e2278f4012109865d62b98190b3185afJason Sams    protected void prepareTest(int test) {
51721a5a24e2278f4012109865d62b98190b3185afJason Sams        /*
52721a5a24e2278f4012109865d62b98190b3185afJason Sams        mActivity.mTestList = new int[1];
53721a5a24e2278f4012109865d62b98190b3185afJason Sams        mActivity.mTestList[0] = test;
54721a5a24e2278f4012109865d62b98190b3185afJason Sams
55721a5a24e2278f4012109865d62b98190b3185afJason Sams        mActivity.mBitmapWidth = 1920;
56721a5a24e2278f4012109865d62b98190b3185afJason Sams        mActivity.mBitmapHeight = 1080;
57721a5a24e2278f4012109865d62b98190b3185afJason Sams
58721a5a24e2278f4012109865d62b98190b3185afJason Sams        mActivity.mTestResults = new float[1];
59721a5a24e2278f4012109865d62b98190b3185afJason Sams
60721a5a24e2278f4012109865d62b98190b3185afJason Sams        mActivity.startProcessor();*/
61721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
62721a5a24e2278f4012109865d62b98190b3185afJason Sams
63721a5a24e2278f4012109865d62b98190b3185afJason Sams    @Override
64721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void setUp() throws Exception {
65721a5a24e2278f4012109865d62b98190b3185afJason Sams        super.setUp();
66721a5a24e2278f4012109865d62b98190b3185afJason Sams        setActivityInitialTouchMode(false);
67721a5a24e2278f4012109865d62b98190b3185afJason Sams        mActivity = getActivity();
68721a5a24e2278f4012109865d62b98190b3185afJason Sams        ImageProcessingTestRunner mRunner = (ImageProcessingTestRunner) getInstrumentation();
69721a5a24e2278f4012109865d62b98190b3185afJason Sams        mIteration = mRunner.mIteration;
70721a5a24e2278f4012109865d62b98190b3185afJason Sams        assertTrue("please enter a valid iteration value", mIteration > 0);
71721a5a24e2278f4012109865d62b98190b3185afJason Sams   }
72721a5a24e2278f4012109865d62b98190b3185afJason Sams
73721a5a24e2278f4012109865d62b98190b3185afJason Sams    @Override
74721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void tearDown() throws Exception {
75721a5a24e2278f4012109865d62b98190b3185afJason Sams        super.tearDown();
76721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
77721a5a24e2278f4012109865d62b98190b3185afJason Sams
78721a5a24e2278f4012109865d62b98190b3185afJason Sams    class TestAction implements Runnable {
79721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestName mTestName;
80721a5a24e2278f4012109865d62b98190b3185afJason Sams        float mResult;
81721a5a24e2278f4012109865d62b98190b3185afJason Sams        public TestAction(TestName testName) {
82721a5a24e2278f4012109865d62b98190b3185afJason Sams            mTestName = testName;
83721a5a24e2278f4012109865d62b98190b3185afJason Sams        }
84721a5a24e2278f4012109865d62b98190b3185afJason Sams        public void run() {
85721a5a24e2278f4012109865d62b98190b3185afJason Sams            mActivity.changeTest(mTestName, false);
86721a5a24e2278f4012109865d62b98190b3185afJason Sams            //mResult = mActivity.getBenchmark();
87721a5a24e2278f4012109865d62b98190b3185afJason Sams            Log.v(TAG, "Benchmark for test \"" + mTestName.toString() + "\" is: " + mResult);
88721a5a24e2278f4012109865d62b98190b3185afJason Sams            synchronized(this) {
89721a5a24e2278f4012109865d62b98190b3185afJason Sams                this.notify();
90721a5a24e2278f4012109865d62b98190b3185afJason Sams            }
91721a5a24e2278f4012109865d62b98190b3185afJason Sams        }
92721a5a24e2278f4012109865d62b98190b3185afJason Sams        public float getBenchmark() {
93721a5a24e2278f4012109865d62b98190b3185afJason Sams            return mResult;
94721a5a24e2278f4012109865d62b98190b3185afJason Sams        }
95721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
96721a5a24e2278f4012109865d62b98190b3185afJason Sams
97721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Set the benchmark thread to run on ui thread
98721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Synchronized the thread such that the test will wait for the benchmark thread to finish
99721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void runOnUiThread(Runnable action) {
100721a5a24e2278f4012109865d62b98190b3185afJason Sams        synchronized(action) {
101721a5a24e2278f4012109865d62b98190b3185afJason Sams            mActivity.runOnUiThread(action);
102721a5a24e2278f4012109865d62b98190b3185afJason Sams            try {
103721a5a24e2278f4012109865d62b98190b3185afJason Sams                action.wait();
104721a5a24e2278f4012109865d62b98190b3185afJason Sams            } catch (InterruptedException e) {
105721a5a24e2278f4012109865d62b98190b3185afJason Sams                Log.v(TAG, "waiting for action running on UI thread is interrupted: " +
106721a5a24e2278f4012109865d62b98190b3185afJason Sams                        e.toString());
107721a5a24e2278f4012109865d62b98190b3185afJason Sams            }
108721a5a24e2278f4012109865d62b98190b3185afJason Sams        }
109721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
110721a5a24e2278f4012109865d62b98190b3185afJason Sams
111721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void runTest(TestAction ta, String testName) {
112721a5a24e2278f4012109865d62b98190b3185afJason Sams        float sum = 0;
113721a5a24e2278f4012109865d62b98190b3185afJason Sams        for (int i = 0; i < mIteration; i++) {
114721a5a24e2278f4012109865d62b98190b3185afJason Sams            runOnUiThread(ta);
115721a5a24e2278f4012109865d62b98190b3185afJason Sams            float bmValue = ta.getBenchmark();
116721a5a24e2278f4012109865d62b98190b3185afJason Sams            Log.v(TAG, "results for iteration " + i + " is " + bmValue);
117721a5a24e2278f4012109865d62b98190b3185afJason Sams            sum += bmValue;
118721a5a24e2278f4012109865d62b98190b3185afJason Sams        }
119721a5a24e2278f4012109865d62b98190b3185afJason Sams        float avgResult = sum/mIteration;
120721a5a24e2278f4012109865d62b98190b3185afJason Sams
121721a5a24e2278f4012109865d62b98190b3185afJason Sams        // post result to INSTRUMENTATION_STATUS
122721a5a24e2278f4012109865d62b98190b3185afJason Sams        Bundle results = new Bundle();
123721a5a24e2278f4012109865d62b98190b3185afJason Sams        results.putString(TEST_NAME, testName);
124721a5a24e2278f4012109865d62b98190b3185afJason Sams        results.putInt(ITERATIONS, mIteration);
125721a5a24e2278f4012109865d62b98190b3185afJason Sams        results.putFloat(BENCHMARK, avgResult);
126721a5a24e2278f4012109865d62b98190b3185afJason Sams        getInstrumentation().sendStatus(INSTRUMENTATION_IN_PROGRESS, results);
127721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
128721a5a24e2278f4012109865d62b98190b3185afJason Sams
129721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 0: Levels Vec3 Relaxed
130721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
131721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testLevelsVec3Relaxed() {
132721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.LEVELS_VEC3_RELAXED);
133721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.LEVELS_VEC3_RELAXED.name());
134721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
135721a5a24e2278f4012109865d62b98190b3185afJason Sams
136721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 1: Levels Vec4 Relaxed
137721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
138721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testLevelsVec4Relaxed() {
139721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.LEVELS_VEC4_RELAXED);
140721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.LEVELS_VEC4_RELAXED.name());
141721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
142721a5a24e2278f4012109865d62b98190b3185afJason Sams
143721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 2: Levels Vec3 Full
144721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
145721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testLevelsVec3Full() {
146721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.LEVELS_VEC3_FULL);
147721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.LEVELS_VEC3_FULL.name());
148721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
149721a5a24e2278f4012109865d62b98190b3185afJason Sams
150721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 3: Levels Vec4 Full
151721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
152721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testLevelsVec4Full() {
153721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.LEVELS_VEC4_FULL);
154721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.LEVELS_VEC4_FULL.name());
155721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
156721a5a24e2278f4012109865d62b98190b3185afJason Sams
157721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 4: Blur Radius 25
158721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
159721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testBlurRadius25() {
160721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.BLUR_RADIUS_25);
161721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.BLUR_RADIUS_25.name());
162721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
163721a5a24e2278f4012109865d62b98190b3185afJason Sams
164721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 5: Intrinsic Blur Radius 25
165721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
166721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testIntrinsicBlurRadius25() {
167721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.INTRINSIC_BLUR_RADIUS_25);
168721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.INTRINSIC_BLUR_RADIUS_25.name());
169721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
170721a5a24e2278f4012109865d62b98190b3185afJason Sams
171721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 6: Greyscale
172721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
173721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testGreyscale() {
174721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.GREYSCALE);
175721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.GREYSCALE.name());
176721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
177721a5a24e2278f4012109865d62b98190b3185afJason Sams
178721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 7: Grain
179721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
180721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testGrain() {
181721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.GRAIN);
182721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.GRAIN.name());
183721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
184721a5a24e2278f4012109865d62b98190b3185afJason Sams
185721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 8: Fisheye Full
186721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
187721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testFisheyeFull() {
188721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.FISHEYE_FULL);
189721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.FISHEYE_FULL.name());
190721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
191721a5a24e2278f4012109865d62b98190b3185afJason Sams
192721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 9: Fisheye Relaxed
193721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
194721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testFishEyeRelaxed() {
195721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.FISHEYE_RELAXED);
196721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.FISHEYE_RELAXED.name());
197721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
198721a5a24e2278f4012109865d62b98190b3185afJason Sams
199721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 10: Fisheye Approximate Full
200721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
201721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testFisheyeApproximateFull() {
202721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.FISHEYE_APPROXIMATE_FULL);
203721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.FISHEYE_APPROXIMATE_FULL.name());
204721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
205721a5a24e2278f4012109865d62b98190b3185afJason Sams
206721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 11: Fisheye Approximate Relaxed
207721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
208721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testFisheyeApproximateRelaxed() {
209721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.FISHEYE_APPROXIMATE_RELAXED);
210721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.FISHEYE_APPROXIMATE_RELAXED.name());
211721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
212721a5a24e2278f4012109865d62b98190b3185afJason Sams
213721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 12: Vignette Full
214721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
215721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testVignetteFull() {
216721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.VIGNETTE_FULL);
217721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.VIGNETTE_FULL.name());
218721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
219721a5a24e2278f4012109865d62b98190b3185afJason Sams
220721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 13: Vignette Relaxed
221721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
222721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testVignetteRelaxed() {
223721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.VIGNETTE_RELAXED);
224721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.VIGNETTE_RELAXED.name());
225721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
226721a5a24e2278f4012109865d62b98190b3185afJason Sams
227721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 14: Vignette Approximate Full
228721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
229721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testVignetteApproximateFull() {
230721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.VIGNETTE_APPROXIMATE_FULL);
231721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.VIGNETTE_APPROXIMATE_FULL.name());
232721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
233721a5a24e2278f4012109865d62b98190b3185afJason Sams
234721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 15: Vignette Approximate Relaxed
235721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
236721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testVignetteApproximateRelaxed() {
237721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.VIGNETTE_APPROXIMATE_RELAXED);
238721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.VIGNETTE_APPROXIMATE_RELAXED.name());
239721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
240721a5a24e2278f4012109865d62b98190b3185afJason Sams
241721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 16: Group Test (emulated)
242721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
243721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testGroupTestEmulated() {
244721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.GROUP_TEST_EMULATED);
245721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.GROUP_TEST_EMULATED.name());
246721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
247721a5a24e2278f4012109865d62b98190b3185afJason Sams
248721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 17: Group Test (native)
249721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
250721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testGroupTestNative() {
251721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.GROUP_TEST_NATIVE);
252721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.GROUP_TEST_NATIVE.name());
253721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
254721a5a24e2278f4012109865d62b98190b3185afJason Sams
255721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 18: Convolve 3x3
256721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
257721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testConvolve3x3() {
258721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.CONVOLVE_3X3);
259721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.CONVOLVE_3X3.name());
260721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
261721a5a24e2278f4012109865d62b98190b3185afJason Sams
262721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 19: Intrinsics Convolve 3x3
263721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
264721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testIntrinsicsConvolve3x3() {
265721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.INTRINSICS_CONVOLVE_3X3);
266721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.INTRINSICS_CONVOLVE_3X3.name());
267721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
268721a5a24e2278f4012109865d62b98190b3185afJason Sams
269721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 20: ColorMatrix
270721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
271721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testColorMatrix() {
272721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.COLOR_MATRIX);
273721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.COLOR_MATRIX.name());
274721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
275721a5a24e2278f4012109865d62b98190b3185afJason Sams
276721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 21: Intrinsics ColorMatrix
277721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
278721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testIntrinsicsColorMatrix() {
279721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.INTRINSICS_COLOR_MATRIX);
280721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.INTRINSICS_COLOR_MATRIX.name());
281721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
282721a5a24e2278f4012109865d62b98190b3185afJason Sams
283721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 22: Intrinsics ColorMatrix Grey
284721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
285721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testIntrinsicsColorMatrixGrey() {
286721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.INTRINSICS_COLOR_MATRIX_GREY);
287721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.INTRINSICS_COLOR_MATRIX_GREY.name());
288721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
289721a5a24e2278f4012109865d62b98190b3185afJason Sams
290721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 23: Copy
291721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
292721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testCopy() {
293721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.COPY);
294721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.COPY.name());
295721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
296721a5a24e2278f4012109865d62b98190b3185afJason Sams
297721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 24: CrossProcess (using LUT)
298721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
299721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testCrossProcessUsingLUT() {
300721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.CROSS_PROCESS_USING_LUT);
301721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.CROSS_PROCESS_USING_LUT.name());
302721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
303721a5a24e2278f4012109865d62b98190b3185afJason Sams
304721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 25: Convolve 5x5
305721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
306721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testConvolve5x5() {
307721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.CONVOLVE_5X5);
308721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.CONVOLVE_5X5.name());
309721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
310721a5a24e2278f4012109865d62b98190b3185afJason Sams
311721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 26: Intrinsics Convolve 5x5
312721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
313721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testIntrinsicsConvolve5x5() {
314721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.INTRINSICS_CONVOLVE_5X5);
315721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.INTRINSICS_CONVOLVE_5X5.name());
316721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
317721a5a24e2278f4012109865d62b98190b3185afJason Sams
318721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 27: Mandelbrot
319721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
320721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testMandelbrot() {
321721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.MANDELBROT_FLOAT);
322721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.MANDELBROT_FLOAT.name());
323721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
324721a5a24e2278f4012109865d62b98190b3185afJason Sams
325721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 28: Intrinsics Blend
326721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
327721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testIntrinsicsBlend() {
328721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.INTRINSICS_BLEND);
329721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.INTRINSICS_BLEND.name());
330721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
331721a5a24e2278f4012109865d62b98190b3185afJason Sams
332721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 29: Intrinsics Blur 25 uchar
333721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
334721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testIntrinsicsBlur25G() {
335721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.INTRINSICS_BLUR_25G);
336721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.INTRINSICS_BLUR_25G.name());
337721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
338721a5a24e2278f4012109865d62b98190b3185afJason Sams
339721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 30: Vibrance
340721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
341721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testVibrance() {
342721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.VIBRANCE);
343721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.VIBRANCE.name());
344721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
345721a5a24e2278f4012109865d62b98190b3185afJason Sams
346721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 31: BWFilter
347721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
348721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testBWFilter() {
349721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.BW_FILTER);
350721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.BW_FILTER.name());
351721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
352721a5a24e2278f4012109865d62b98190b3185afJason Sams
353721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 32: Shadows
354721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
355721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testShadows() {
356721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.SHADOWS);
357721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.SHADOWS.name());
358721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
359721a5a24e2278f4012109865d62b98190b3185afJason Sams
360721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 33: Contrast
361721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
362721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testContrast() {
363721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.CONTRAST);
364721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.CONTRAST.name());
365721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
366721a5a24e2278f4012109865d62b98190b3185afJason Sams
367721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 34: Exposure
368721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
369721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testExposure(){
370721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.EXPOSURE);
371721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.EXPOSURE.name());
372721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
373721a5a24e2278f4012109865d62b98190b3185afJason Sams
374721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 35: White Balance
375721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
376721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testWhiteBalance() {
377721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.WHITE_BALANCE);
378721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.WHITE_BALANCE.name());
379721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
380721a5a24e2278f4012109865d62b98190b3185afJason Sams
381721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 36: Color Cube
382721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
383721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testColorCube() {
384721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.COLOR_CUBE);
385721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.COLOR_CUBE.name());
386721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
387721a5a24e2278f4012109865d62b98190b3185afJason Sams
388721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 37: Color Cube (3D Intrinsic)
389721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
390721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testColorCube3DIntrinsic() {
391721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.COLOR_CUBE_3D_INTRINSIC);
392721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.COLOR_CUBE_3D_INTRINSIC.name());
393721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
394721a5a24e2278f4012109865d62b98190b3185afJason Sams/*
395721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 38: Usage io
396721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
397721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testUsageIO() {
398721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.USAGE_IO);
399721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.USAGE_IO.name());
400721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
401721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 39: Artistic 1
402721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
403721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testArtistic1() {
404721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.ARTISTIC_1);
405721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.ARTISTIC_1.name());
406721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
407721a5a24e2278f4012109865d62b98190b3185afJason Sams
408721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 40 Histogram
409721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
410721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testHistogram() {
411721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.HISTOGRAM);
412721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.HISTOGRAM.name());
413721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
414721a5a24e2278f4012109865d62b98190b3185afJason Sams
415721a5a24e2278f4012109865d62b98190b3185afJason Sams    // Test case 41: Mandelbrot fp64
416721a5a24e2278f4012109865d62b98190b3185afJason Sams    @LargeTest
417721a5a24e2278f4012109865d62b98190b3185afJason Sams    public void testMandelbrotfp64() {
418721a5a24e2278f4012109865d62b98190b3185afJason Sams        TestAction ta = new TestAction(TestName.MANDELBROT_DOUBLE);
419721a5a24e2278f4012109865d62b98190b3185afJason Sams        runTest(ta, TestName.MANDELBROT_DOUBLE.name());
420721a5a24e2278f4012109865d62b98190b3185afJason Sams    }
421721a5a24e2278f4012109865d62b98190b3185afJason Sams*/
422721a5a24e2278f4012109865d62b98190b3185afJason Sams}
423