1bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org/* 2bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org * Copyright 2014 Google Inc. 3bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org * 4bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org * Use of this source code is governed by a BSD-style license that can be 5bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org * found in the LICENSE file. 6bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org */ 7bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org 8bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org// This is a GPU-backend specific test 9bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org#if SK_SUPPORT_GPU 10bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org 11bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org#include "Test.h" 12bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org 13bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org// If we aren't inheriting these as #defines from elsewhere, 14bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org// clang demands they be declared before we #include the template 15bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org// that relies on them. 16bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.orgstatic bool LT(const int& elem, int value) { 17bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org return elem < value; 18bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org} 19bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.orgstatic bool EQ(const int& elem, int value) { 20bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org return elem == value; 21bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org} 22bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org 23bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org#include "GrTBSearch.h" 24bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org 25bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.orgDEF_TEST(GrTBSearchTest, reporter) { 26bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org const int array[] = { 27bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 22, 33, 44, 55, 66, 77, 88, 99 28bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org }; 29bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org 30bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org for (int n = 0; n < static_cast<int>(SK_ARRAY_COUNT(array)); ++n) { 31bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org for (int i = 0; i < n; i++) { 32bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org int index = GrTBSearch<int, int>(array, n, array[i]); 33bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org REPORTER_ASSERT(reporter, index == (int) i); 34bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org index = GrTBSearch<int, int>(array, n, -array[i]); 35bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org REPORTER_ASSERT(reporter, index < 0); 36bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org } 37bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org } 38bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org} 39bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org 40bbff20855ff28d377e9ca2e76bd35810ea46994dtfarina@chromium.org#endif 41