1 /* 2 * Copyright 2014 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 //#define LOG_NDEBUG 0 18 #define LOG_TAG "Utils_test" 19 20 #include <gtest/gtest.h> 21 #include <utils/String8.h> 22 #include <utils/Errors.h> 23 #include <fcntl.h> 24 #include <unistd.h> 25 26 #include <media/stagefright/foundation/ADebug.h> 27 #include <media/stagefright/foundation/AUtils.h> 28 #include <media/stagefright/Utils.h> 29 30 namespace android { 31 32 class UtilsTest : public ::testing::Test { 33 }; 34 35 TEST_F(UtilsTest, TestFourCC) { 36 ASSERT_EQ(FOURCC('s', 't', 'm' , 'u'), 'stmu'); 37 } 38 39 TEST_F(UtilsTest, TestMathTemplates) { 40 ASSERT_EQ(divRound(-10, -4), 3); 41 ASSERT_EQ(divRound(-11, -4), 3); 42 ASSERT_EQ(divRound(-12, -4), 3); 43 ASSERT_EQ(divRound(-13, -4), 3); 44 ASSERT_EQ(divRound(-14, -4), 4); 45 46 ASSERT_EQ(divRound(10, -4), -3); 47 ASSERT_EQ(divRound(11, -4), -3); 48 ASSERT_EQ(divRound(12, -4), -3); 49 ASSERT_EQ(divRound(13, -4), -3); 50 ASSERT_EQ(divRound(14, -4), -4); 51 52 ASSERT_EQ(divRound(-10, 4), -3); 53 ASSERT_EQ(divRound(-11, 4), -3); 54 ASSERT_EQ(divRound(-12, 4), -3); 55 ASSERT_EQ(divRound(-13, 4), -3); 56 ASSERT_EQ(divRound(-14, 4), -4); 57 58 ASSERT_EQ(divRound(10, 4), 3); 59 ASSERT_EQ(divRound(11, 4), 3); 60 ASSERT_EQ(divRound(12, 4), 3); 61 ASSERT_EQ(divRound(13, 4), 3); 62 ASSERT_EQ(divRound(14, 4), 4); 63 64 ASSERT_EQ(divUp(-11, -4), 3); 65 ASSERT_EQ(divUp(-12, -4), 3); 66 ASSERT_EQ(divUp(-13, -4), 4); 67 68 ASSERT_EQ(divUp(11, -4), -2); 69 ASSERT_EQ(divUp(12, -4), -3); 70 ASSERT_EQ(divUp(13, -4), -3); 71 72 ASSERT_EQ(divUp(-11, 4), -2); 73 ASSERT_EQ(divUp(-12, 4), -3); 74 ASSERT_EQ(divUp(-13, 4), -3); 75 76 ASSERT_EQ(divUp(11, 4), 3); 77 ASSERT_EQ(divUp(12, 4), 3); 78 ASSERT_EQ(divUp(13, 4), 4); 79 80 ASSERT_EQ(abs(5L), 5L); 81 ASSERT_EQ(abs(-25), 25); 82 83 ASSERT_EQ(min(5.6f, 6.0f), 5.6f); 84 ASSERT_EQ(min(6.0f, 5.6f), 5.6f); 85 ASSERT_EQ(min(-4.3, 8.6), -4.3); 86 ASSERT_EQ(min(8.6, -4.3), -4.3); 87 88 ASSERT_EQ(max(5.6f, 6.0f), 6.0f); 89 ASSERT_EQ(max(6.0f, 5.6f), 6.0f); 90 ASSERT_EQ(max(-4.3, 8.6), 8.6); 91 ASSERT_EQ(max(8.6, -4.3), 8.6); 92 93 ASSERT_EQ(periodicError(124, 100), 24); 94 ASSERT_EQ(periodicError(288, 100), 12); 95 ASSERT_EQ(periodicError(-345, 100), 45); 96 ASSERT_EQ(periodicError(-493, 100), 7); 97 ASSERT_EQ(periodicError(-550, 100), 50); 98 ASSERT_EQ(periodicError(-600, 100), 0); 99 } 100 101 } // namespace android 102