From 95ebd17cf4f66952862289882ee5ac00da31cb8a Mon Sep 17 00:00:00 2001 From: "bungeman@google.com" Date: Fri, 21 Mar 2014 19:39:02 +0000 Subject: Add removeShuffle to SkTArray and add SkTArray tests. R=reed@google.com Review URL: https://codereview.chromium.org/208153008 git-svn-id: http://skia.googlecode.com/svn/trunk@13895 2bbb7eff-a529-9590-31e7-b0007b416f81 --- tests/TArrayTest.cpp | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 tests/TArrayTest.cpp (limited to 'tests/TArrayTest.cpp') diff --git a/tests/TArrayTest.cpp b/tests/TArrayTest.cpp new file mode 100644 index 0000000000..f86cfe40f7 --- /dev/null +++ b/tests/TArrayTest.cpp @@ -0,0 +1,64 @@ +/* + * Copyright 2014 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "SkTArray.h" +#include "Test.h" + +// Tests the SkTArray class template. + +template +static void TestTSet_basic(skiatest::Reporter* reporter) { + SkTArray a; + + // Starts empty. + REPORTER_ASSERT(reporter, a.empty()); + REPORTER_ASSERT(reporter, a.count() == 0); + + // { }, add a default constructed element + REPORTER_ASSERT(reporter, a.push_back()); + REPORTER_ASSERT(reporter, !a.empty()); + REPORTER_ASSERT(reporter, a.count() == 1); + + // { 0 }, removeShuffle the only element. + a.removeShuffle(0); + REPORTER_ASSERT(reporter, a.empty()); + REPORTER_ASSERT(reporter, a.count() == 0); + + // { }, add a default, add a 1, remove first + REPORTER_ASSERT(reporter, a.push_back()); + REPORTER_ASSERT(reporter, a.push_back() = 1); + a.removeShuffle(0); + REPORTER_ASSERT(reporter, !a.empty()); + REPORTER_ASSERT(reporter, a.count() == 1); + REPORTER_ASSERT(reporter, a[0] == 1); + + // { 1 }, replace with new array + int b[5] = { 0, 1, 2, 3, 4 }; + a.reset(b, SK_ARRAY_COUNT(b)); + REPORTER_ASSERT(reporter, a.count() == SK_ARRAY_COUNT(b)); + REPORTER_ASSERT(reporter, a[2] == 2); + REPORTER_ASSERT(reporter, a[4] == 4); + + // { 0, 1, 2, 3, 4 }, removeShuffle the last + a.removeShuffle(4); + REPORTER_ASSERT(reporter, a.count() == SK_ARRAY_COUNT(b) - 1); + REPORTER_ASSERT(reporter, a[3] == 3); + + // { 0, 1, 2, 3 }, remove a middle, note shuffle + a.removeShuffle(1); + REPORTER_ASSERT(reporter, a.count() == SK_ARRAY_COUNT(b) - 2); + REPORTER_ASSERT(reporter, a[0] == 0); + REPORTER_ASSERT(reporter, a[1] == 3); + REPORTER_ASSERT(reporter, a[2] == 2); + + // {0, 3, 2 } +} + +DEF_TEST(TArray, reporter) { + TestTSet_basic(reporter); + TestTSet_basic(reporter); +} -- cgit v1.2.3