1572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams/* 2572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * Copyright (C) 2011 The Android Open Source Project 3572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * 4572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * Licensed under the Apache License, Version 2.0 (the "License"); 5572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * you may not use this file except in compliance with the License. 6572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * You may obtain a copy of the License at 7572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * 8572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * http://www.apache.org/licenses/LICENSE-2.0 9572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * 10572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * Unless required by applicable law or agreed to in writing, software 11572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * distributed under the License is distributed on an "AS IS" BASIS, 12572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * See the License for the specific language governing permissions and 14572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * limitations under the License. 15572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams */ 16572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 17572a5031a5d8602db0bec0b253428a034bd4dd59Jason Samspackage com.android.rs.image; 18572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 19572a5031a5d8602db0bec0b253428a034bd4dd59Jason Samsimport com.android.rs.image.ImageProcessingTestRunner; 20572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 21572a5031a5d8602db0bec0b253428a034bd4dd59Jason Samsimport android.os.Bundle; 22572a5031a5d8602db0bec0b253428a034bd4dd59Jason Samsimport com.android.rs.image.ImageProcessingActivity.TestName; 23572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 24572a5031a5d8602db0bec0b253428a034bd4dd59Jason Samsimport android.test.ActivityInstrumentationTestCase2; 25572a5031a5d8602db0bec0b253428a034bd4dd59Jason Samsimport android.test.suitebuilder.annotation.LargeTest; 26572a5031a5d8602db0bec0b253428a034bd4dd59Jason Samsimport android.util.Log; 27572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 28572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams/** 29572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * ImageProcessing benchmark test. 30572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * To run the test, please use command 31572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * 32572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * adb shell am instrument -e iteration <n> -w com.android.rs.image/.ImageProcessingTestRunner 33572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams * 34572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams */ 35572a5031a5d8602db0bec0b253428a034bd4dd59Jason Samspublic class ImageProcessingTest extends ActivityInstrumentationTestCase2<ImageProcessingActivity> { 36572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams private final String TAG = "ImageProcessingTest"; 37572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams private final String TEST_NAME = "Testname"; 38572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams private final String ITERATIONS = "Iterations"; 39572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams private final String BENCHMARK = "Benchmark"; 40572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams private static int INSTRUMENTATION_IN_PROGRESS = 2; 41572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams private int mIteration; 42572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams private ImageProcessingActivity mActivity; 43572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 44572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public ImageProcessingTest() { 45572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams super(ImageProcessingActivity.class); 46572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 47572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 48572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @Override 49572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void setUp() throws Exception { 50572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams super.setUp(); 51572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams setActivityInitialTouchMode(false); 52572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams mActivity = getActivity(); 53572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams ImageProcessingTestRunner mRunner = (ImageProcessingTestRunner) getInstrumentation(); 54572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams mIteration = mRunner.mIteration; 55572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams assertTrue("please enter a valid iteration value", mIteration > 0); 56572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 57572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 58572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @Override 59572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void tearDown() throws Exception { 60572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams super.tearDown(); 61572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 62572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 63572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams class TestAction implements Runnable { 64572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestName mTestName; 65572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams float mResult; 66572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public TestAction(TestName testName) { 67572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams mTestName = testName; 68572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 69572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void run() { 70572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams mActivity.changeTest(mTestName); 71572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams mResult = mActivity.getBenchmark(); 72572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams Log.v(TAG, "Benchmark for test \"" + mTestName.toString() + "\" is: " + mResult); 73572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams synchronized(this) { 74572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams this.notify(); 75572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 76572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 77572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public float getBenchmark() { 78572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams return mResult; 79572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 80572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 81572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 82572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Set the benchmark thread to run on ui thread 83572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Synchronized the thread such that the test will wait for the benchmark thread to finish 84572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void runOnUiThread(Runnable action) { 85572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams synchronized(action) { 86572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams mActivity.runOnUiThread(action); 87572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams try { 88572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams action.wait(); 89572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } catch (InterruptedException e) { 90572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams Log.v(TAG, "waiting for action running on UI thread is interrupted: " + 91572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams e.toString()); 92572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 93572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 94572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 95572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 96572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void runTest(TestAction ta, String testName) { 97572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams float sum = 0; 98572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams for (int i = 0; i < mIteration; i++) { 99572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runOnUiThread(ta); 100572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams float bmValue = ta.getBenchmark(); 101572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams Log.v(TAG, "results for iteration " + i + " is " + bmValue); 102572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams sum += bmValue; 103572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 104572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams float avgResult = sum/mIteration; 105572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 106572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // post result to INSTRUMENTATION_STATUS 107572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams Bundle results = new Bundle(); 108572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams results.putString(TEST_NAME, testName); 109572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams results.putInt(ITERATIONS, mIteration); 110572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams results.putFloat(BENCHMARK, avgResult); 111572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams getInstrumentation().sendStatus(INSTRUMENTATION_IN_PROGRESS, results); 112572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 113572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 114572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 0: Levels Vec3 Relaxed 115572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 116572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testLevelsVec3Relaxed() { 117572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.LEVELS_VEC3_RELAXED); 118572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.LEVELS_VEC3_RELAXED.name()); 119572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 120572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 121572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 1: Levels Vec4 Relaxed 122572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 123572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testLevelsVec4Relaxed() { 124572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.LEVELS_VEC4_RELAXED); 125572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.LEVELS_VEC4_RELAXED.name()); 126572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 127572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 128572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 2: Levels Vec3 Full 129572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 130572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testLevelsVec3Full() { 131572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.LEVELS_VEC3_FULL); 132572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.LEVELS_VEC3_FULL.name()); 133572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 134572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 135572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 3: Levels Vec4 Full 136572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 137572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testLevelsVec4Full() { 138572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.LEVELS_VEC4_FULL); 139572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.LEVELS_VEC4_FULL.name()); 140572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 141572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 142572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 4: Blur Radius 25 143572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 144572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testBlurRadius25() { 145572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.BLUR_RADIUS_25); 146572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.BLUR_RADIUS_25.name()); 147572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 148572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 149572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 5: Intrinsic Blur Radius 25 150572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 151572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testIntrinsicBlurRadius25() { 152572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.INTRINSIC_BLUE_RADIUS_25); 153572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.INTRINSIC_BLUE_RADIUS_25.name()); 154572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 155572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 156572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 6: Greyscale 157572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 158572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testGreyscale() { 159572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.GREYSCALE); 160572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.GREYSCALE.name()); 161572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 162572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 163572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 7: Grain 164572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 165572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testGrain() { 166572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.GRAIN); 167572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.GRAIN.name()); 168572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 169572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 170572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 8: Fisheye Full 171572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 172572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testFisheyeFull() { 173572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.FISHEYE_FULL); 174572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.FISHEYE_FULL.name()); 175572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 176572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 177572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 9: Fisheye Relaxed 178572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 179572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testFishEyeRelaxed() { 180572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.FISHEYE_RELAXED); 181572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.FISHEYE_RELAXED.name()); 182572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 183572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 184572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 10: Fisheye Approximate Full 185572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 186572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testFisheyeApproximateFull() { 187572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.FISHEYE_APPROXIMATE_FULL); 188572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.FISHEYE_APPROXIMATE_FULL.name()); 189572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 190572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 191572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 11: Fisheye Approximate Relaxed 192572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 193572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testFisheyeApproximateRelaxed() { 194572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.FISHEYE_APPROXIMATE_RELAXED); 195572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.FISHEYE_APPROXIMATE_RELAXED.name()); 196572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 197572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 198572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 12: Vignette Full 199572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 200572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testVignetteFull() { 201572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.VIGNETTE_FULL); 202572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.VIGNETTE_FULL.name()); 203572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 204572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 205572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 13: Vignette Relaxed 206572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 207572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testVignetteRelaxed() { 208572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.VIGNETTE_RELAXED); 209572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.VIGNETTE_RELAXED.name()); 210572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 211572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 212572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 14: Vignette Approximate Full 213572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 214572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testVignetteApproximateFull() { 215572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.VIGNETTE_APPROXIMATE_FULL); 216572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.VIGNETTE_APPROXIMATE_FULL.name()); 217572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 218572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 219572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 15: Vignette Approximate Relaxed 220572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 221572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testVignetteApproximateRelaxed() { 222572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.VIGNETTE_APPROXIMATE_RELAXED); 223572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.VIGNETTE_APPROXIMATE_RELAXED.name()); 224572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 225572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 226572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 16: Group Test (emulated) 227572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 228572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testGroupTestEmulated() { 229572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.GROUP_TEST_EMULATED); 230572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.GROUP_TEST_EMULATED.name()); 231572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 232572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 233572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 17: Group Test (native) 234572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 235572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testGroupTestNative() { 236572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.GROUP_TEST_NATIVE); 237572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.GROUP_TEST_NATIVE.name()); 238572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 239572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 240572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 18: Convolve 3x3 241572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 242572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testConvolve3x3() { 243572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.CONVOLVE_3X3); 244572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.CONVOLVE_3X3.name()); 245572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 246572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 247572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 19: Intrinsics Convolve 3x3 248572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 249572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testIntrinsicsConvolve3x3() { 250572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.INTRINSICS_CONVOLVE_3X3); 251572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.INTRINSICS_CONVOLVE_3X3.name()); 252572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 253572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 254572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 20: ColorMatrix 255572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 256572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testColorMatrix() { 257572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.COLOR_MATRIX); 258572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.COLOR_MATRIX.name()); 259572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 260572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 261572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 21: Intrinsics ColorMatrix 262572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 263572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testIntrinsicsColorMatrix() { 264572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.INTRINSICS_COLOR_MATRIX); 265572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.INTRINSICS_COLOR_MATRIX.name()); 266572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 267572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 268572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 22: Intrinsics ColorMatrix Grey 269572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 270572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testIntrinsicsColorMatrixGrey() { 271572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.INTRINSICS_COLOR_MATRIX_GREY); 272572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.INTRINSICS_COLOR_MATRIX_GREY.name()); 273572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 274572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 275572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 23: Copy 276572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 277572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testCopy() { 278572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.COPY); 279572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.COPY.name()); 280572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 281572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 282572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 24: CrossProcess (using LUT) 283572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 284572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testCrossProcessUsingLUT() { 285572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.CROSS_PROCESS_USING_LUT); 286572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.CROSS_PROCESS_USING_LUT.name()); 287572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 288572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 289572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 25: Convolve 5x5 290572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 291572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testConvolve5x5() { 292572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.CONVOLVE_5X5); 293572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.CONVOLVE_5X5.name()); 294572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 295572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 296572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 26: Intrinsics Convolve 5x5 297572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 298572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testIntrinsicsConvolve5x5() { 299572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.INTRINSICS_CONVOLVE_5X5); 300572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.INTRINSICS_CONVOLVE_5X5.name()); 301572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 302572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 303572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 27: Mandelbrot 304572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 305572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testMandelbrot() { 30623e1074f29f431f68c6b3230c1315ea0f7c7bc86Jason Sams TestAction ta = new TestAction(TestName.MANDELBROT_FLOAT); 30723e1074f29f431f68c6b3230c1315ea0f7c7bc86Jason Sams runTest(ta, TestName.MANDELBROT_FLOAT.name()); 308572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 309572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 310572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 28: Intrinsics Blend 311572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 312572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testIntrinsicsBlend() { 313572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.INTRINSICS_BLEND); 314572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.INTRINSICS_BLEND.name()); 315572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 316572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 317572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 29: Intrinsics Blur 25 uchar 318572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 319572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testIntrinsicsBlur25G() { 320572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.INTRINSICS_BLUR_25G); 321572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.INTRINSICS_BLUR_25G.name()); 322572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 323572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 324572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 30: Vibrance 325572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 326572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testVibrance() { 327572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.VIBRANCE); 328572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.VIBRANCE.name()); 329572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 330572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 331572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 31: BWFilter 332572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 333572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testBWFilter() { 334572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.BW_FILTER); 335572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.BW_FILTER.name()); 336572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 337572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 338572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 32: Shadows 339572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 340572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testShadows() { 341572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.SHADOWS); 342572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.SHADOWS.name()); 343572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 344572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 345572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 33: Contrast 346572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 347572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testContrast() { 348572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.CONTRAST); 349572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.CONTRAST.name()); 350572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 351572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 352572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 34: Exposure 353572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 354572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testExposure(){ 355572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.EXPOSURE); 356572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.EXPOSURE.name()); 357572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 358572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 359572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 35: White Balance 360572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 361572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testWhiteBalance() { 362572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.WHITE_BALANCE); 363572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.WHITE_BALANCE.name()); 364572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 365572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 366572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 36: Color Cube 367572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 368572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testColorCube() { 369572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.COLOR_CUBE); 370572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.COLOR_CUBE.name()); 371572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 372572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams 373572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams // Test case 37: Color Cube (3D Intrinsic) 374572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams @LargeTest 375572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams public void testColorCube3DIntrinsic() { 376572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams TestAction ta = new TestAction(TestName.COLOR_CUBE_3D_INTRINSIC); 377572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams runTest(ta, TestName.COLOR_CUBE_3D_INTRINSIC.name()); 378572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams } 37905b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams 38005b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams // Test case 38: Usage io 38105b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams @LargeTest 38205b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams public void testUsageIO() { 38305b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams TestAction ta = new TestAction(TestName.USAGE_IO); 38405b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams runTest(ta, TestName.USAGE_IO.name()); 38505b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams } 38605b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams 38705b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams // Test case 39: Artistic 1 38805b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams @LargeTest 38905b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams public void testArtistic1() { 39005b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams TestAction ta = new TestAction(TestName.ARTISTIC_1); 39105b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams runTest(ta, TestName.ARTISTIC_1.name()); 39205b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams } 39305b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams 39405b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams // Test case 40 Histogram 39505b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams @LargeTest 39605b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams public void testHistogram() { 39705b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams TestAction ta = new TestAction(TestName.HISTOGRAM); 39805b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams runTest(ta, TestName.HISTOGRAM.name()); 39905b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams } 40005b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams 40105b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams // Test case 41: Mandelbrot fp64 40205b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams @LargeTest 40305b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams public void testMandelbrotfp64() { 40405b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams TestAction ta = new TestAction(TestName.MANDELBROT_DOUBLE); 40505b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams runTest(ta, TestName.MANDELBROT_DOUBLE.name()); 40605b269323e6f28f244d74b00cd63d81d9f8a1db4Jason Sams } 407da68eff288c8b403bc41c1fa856ca09d73f35e2fMiao Wang // Test case 42: Mirror 408da68eff288c8b403bc41c1fa856ca09d73f35e2fMiao Wang @LargeTest 409da68eff288c8b403bc41c1fa856ca09d73f35e2fMiao Wang public void testMirror() { 410da68eff288c8b403bc41c1fa856ca09d73f35e2fMiao Wang TestAction ta = new TestAction(TestName.MIRROR); 411da68eff288c8b403bc41c1fa856ca09d73f35e2fMiao Wang runTest(ta, TestName.MIRROR.name()); 412da68eff288c8b403bc41c1fa856ca09d73f35e2fMiao Wang } 413572a5031a5d8602db0bec0b253428a034bd4dd59Jason Sams} 414