1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "cc/base/util.h" 6 7 #include "testing/gtest/include/gtest/gtest.h" 8 9 namespace cc { 10 namespace { 11 12 TEST(UtilTest, RoundUp) { 13 for (int multiplier = 1; multiplier <= 10; ++multiplier) { 14 // Try attempts in descending order, so that we can 15 // determine the correct value before it's needed. 16 int correct; 17 for (int attempt = 5 * multiplier; attempt >= -5 * multiplier; --attempt) { 18 if ((attempt % multiplier) == 0) 19 correct = attempt; 20 EXPECT_EQ(correct, RoundUp(attempt, multiplier)) 21 << "attempt=" << attempt << " multiplier=" << multiplier; 22 } 23 } 24 25 for (unsigned multiplier = 1; multiplier <= 10; ++multiplier) { 26 // Try attempts in descending order, so that we can 27 // determine the correct value before it's needed. 28 unsigned correct; 29 for (unsigned attempt = 5 * multiplier; attempt > 0; --attempt) { 30 if ((attempt % multiplier) == 0) 31 correct = attempt; 32 EXPECT_EQ(correct, RoundUp(attempt, multiplier)) 33 << "attempt=" << attempt << " multiplier=" << multiplier; 34 } 35 EXPECT_EQ(0u, RoundUp(0u, multiplier)) 36 << "attempt=0 multiplier=" << multiplier; 37 } 38 } 39 40 TEST(UtilTest, RoundDown) { 41 for (int multiplier = 1; multiplier <= 10; ++multiplier) { 42 // Try attempts in ascending order, so that we can 43 // determine the correct value before it's needed. 44 int correct; 45 for (int attempt = -5 * multiplier; attempt <= 5 * multiplier; ++attempt) { 46 if ((attempt % multiplier) == 0) 47 correct = attempt; 48 EXPECT_EQ(correct, RoundDown(attempt, multiplier)) 49 << "attempt=" << attempt << " multiplier=" << multiplier; 50 } 51 } 52 53 for (unsigned multiplier = 1; multiplier <= 10; ++multiplier) { 54 // Try attempts in ascending order, so that we can 55 // determine the correct value before it's needed. 56 unsigned correct; 57 for (unsigned attempt = 0; attempt <= 5 * multiplier; ++attempt) { 58 if ((attempt % multiplier) == 0) 59 correct = attempt; 60 EXPECT_EQ(correct, RoundDown(attempt, multiplier)) 61 << "attempt=" << attempt << " multiplier=" << multiplier; 62 } 63 } 64 } 65 66 } // namespace 67 } // namespace cc 68