12414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik/* 22414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik * Copyright (C) 2016 The Android Open Source Project 32414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik * 42414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik * Licensed under the Apache License, Version 2.0 (the "License"); 52414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik * you may not use this file except in compliance with the License. 62414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik * You may obtain a copy of the License at 72414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik * 82414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik * http://www.apache.org/licenses/LICENSE-2.0 92414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik * 102414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik * Unless required by applicable law or agreed to in writing, software 112414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik * distributed under the License is distributed on an "AS IS" BASIS, 122414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 132414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik * See the License for the specific language governing permissions and 142414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik * limitations under the License. 152414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik */ 162414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik 172414e1b051326745e087a88cdfbf1fff8962edd3Chris Craikpackage android.graphics.perftests; 182414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik 192414e1b051326745e087a88cdfbf1fff8962edd3Chris Craikimport android.graphics.Path; 202414e1b051326745e087a88cdfbf1fff8962edd3Chris Craikimport android.graphics.RectF; 212414e1b051326745e087a88cdfbf1fff8962edd3Chris Craikimport android.perftests.utils.BenchmarkState; 222414e1b051326745e087a88cdfbf1fff8962edd3Chris Craikimport android.perftests.utils.PerfStatusReporter; 232414e1b051326745e087a88cdfbf1fff8962edd3Chris Craikimport android.support.test.filters.LargeTest; 242414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik 252414e1b051326745e087a88cdfbf1fff8962edd3Chris Craikimport org.junit.Rule; 262414e1b051326745e087a88cdfbf1fff8962edd3Chris Craikimport org.junit.Test; 272414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik 282414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik@LargeTest 292414e1b051326745e087a88cdfbf1fff8962edd3Chris Craikpublic class PathPerfTest { 302414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik @Rule 312414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik public PerfStatusReporter mPerfStatusReporter = new PerfStatusReporter(); 322414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik 332414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik @Test 342414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik public void testReset() { 352414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); 362414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik Path path = new Path(); 372414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik while (state.keepRunning()) { 382414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik path.reset(); 392414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik } 402414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik } 412414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik 422414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik @Test 432414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik public void testAddReset() { 442414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); 452414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik Path path = new Path(); 462414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik while (state.keepRunning()) { 472414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik path.addRect(0, 0, 100, 100, Path.Direction.CW); 482414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik path.reset(); 492414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik } 502414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik } 512414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik 522414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik @Test 532414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik public void testRewind() { 542414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); 552414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik Path path = new Path(); 562414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik while (state.keepRunning()) { 572414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik path.rewind(); 582414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik } 592414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik } 602414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik 612414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik @Test 622414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik public void testAddRewind() { 632414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); 642414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik Path path = new Path(); 652414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik while (state.keepRunning()) { 662414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik path.addRect(0, 0, 100, 100, Path.Direction.CW); 672414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik path.rewind(); 682414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik } 692414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik } 702414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik 712414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik @Test 722414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik public void testIsEmpty() { 732414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); 742414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik Path path = new Path(); 752414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik path.addRect(0, 0, 100, 100, Path.Direction.CW); 762414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik while (state.keepRunning()) { 772414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik path.isEmpty(); 782414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik } 792414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik } 802414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik 812414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik @Test 822414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik public void testIsConvex() { 832414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); 842414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik Path path = new Path(); 852414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik path.addRect(0, 0, 100, 100, Path.Direction.CW); 862414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik while (state.keepRunning()) { 872414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik path.isConvex(); 882414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik } 892414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik } 902414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik 912414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik @Test 922414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik public void testGetSetFillType() { 932414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); 942414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik Path path = new Path(); 952414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik path.addRect(0, 0, 100, 100, Path.Direction.CW); 962414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik while (state.keepRunning()) { 972414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik path.setFillType(Path.FillType.EVEN_ODD); 982414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik path.getFillType(); 992414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik } 1002414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik } 1012414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik 1022414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik @Test 1032414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik public void testIsRect() { 1042414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik BenchmarkState state = mPerfStatusReporter.getBenchmarkState(); 1052414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik Path path = new Path(); 1062414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik path.addRect(0, 0, 100, 100, Path.Direction.CW); 1072414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik final RectF outRect = new RectF(); 1082414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik while (state.keepRunning()) { 1092414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik path.isRect(outRect); 1102414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik } 1112414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik } 1122414e1b051326745e087a88cdfbf1fff8962edd3Chris Craik} 113