Utils_test.cpp revision f296e2b262d2a8f7c570eaed454a28cca99eb976
1c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar/* 2c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar * Copyright 2014 The Android Open Source Project 3c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar * 4c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar * Licensed under the Apache License, Version 2.0 (the "License"); 5c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar * you may not use this file except in compliance with the License. 6c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar * You may obtain a copy of the License at 7c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar * 8c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar * http://www.apache.org/licenses/LICENSE-2.0 9c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar * 10c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar * Unless required by applicable law or agreed to in writing, software 11c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar * distributed under the License is distributed on an "AS IS" BASIS, 12c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar * See the License for the specific language governing permissions and 14c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar * limitations under the License. 15c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar */ 16c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar 17c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar//#define LOG_NDEBUG 0 18c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar#define LOG_TAG "Utils_test" 19c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar 20c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar#include <gtest/gtest.h> 21c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar#include <utils/String8.h> 22c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar#include <utils/Errors.h> 23c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar#include <fcntl.h> 24c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar#include <unistd.h> 25c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar 26c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar#include <media/stagefright/foundation/ADebug.h> 27f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar#include <media/stagefright/foundation/AStringUtils.h> 28c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar#include <media/stagefright/foundation/AUtils.h> 29c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar#include <media/stagefright/Utils.h> 30c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar 31c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnarnamespace android { 32c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar 33c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnarclass UtilsTest : public ::testing::Test { 34c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar}; 35c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar 36f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos MolnarTEST_F(UtilsTest, TestStringUtils) { 37f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_EQ(AStringUtils::Compare("Audio", "AudioExt", 5, false), 0); 38f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_EQ(AStringUtils::Compare("Audio", "audiOExt", 5, true), 0); 39f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_NE(AStringUtils::Compare("Audio", "audioExt", 5, false), 0); 40f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_NE(AStringUtils::Compare("Audio", "AudiOExt", 5, false), 0); 41f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar 42f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_LT(AStringUtils::Compare("Audio", "AudioExt", 7, false), 0); 43f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_LT(AStringUtils::Compare("Audio", "audiOExt", 7, true), 0); 44f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar 45f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_GT(AStringUtils::Compare("AudioExt", "Audio", 7, false), 0); 46f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_GT(AStringUtils::Compare("audiOext", "Audio", 7, true), 0); 47f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar 48f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_LT(AStringUtils::Compare("Audio", "Video", 5, false), 0); 49f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_LT(AStringUtils::Compare("Audio1", "Audio2", 6, false), 0); 50f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_LT(AStringUtils::Compare("audio", "VIDEO", 5, true), 0); 51f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_LT(AStringUtils::Compare("audio1", "AUDIO2", 6, true), 0); 52f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar 53f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_GT(AStringUtils::Compare("Video", "Audio", 5, false), 0); 54f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_GT(AStringUtils::Compare("Audio2", "Audio1", 6, false), 0); 55f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_GT(AStringUtils::Compare("VIDEO", "audio", 5, true), 0); 56f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_GT(AStringUtils::Compare("AUDIO2", "audio1", 6, true), 0); 57f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar 58f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_TRUE(AStringUtils::MatchesGlob("AudioA", 5, "AudioB", 5, false)); 59f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_FALSE(AStringUtils::MatchesGlob("AudioA", 6, "AudioA", 5, false)); 60f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_FALSE(AStringUtils::MatchesGlob("AudioA", 5, "AudioA", 6, false)); 61f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_FALSE(AStringUtils::MatchesGlob("AudioA", 5, "audiOB", 5, false)); 62f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_TRUE(AStringUtils::MatchesGlob("AudioA", 5, "audiOB", 5, true)); 63f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_FALSE(AStringUtils::MatchesGlob("AudioA", 6, "AudioA", 5, true)); 64f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_FALSE(AStringUtils::MatchesGlob("AudioA", 5, "AudioA", 6, true)); 65f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar 66f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_TRUE(AStringUtils::MatchesGlob("*1", 1, "String8", 6, true)); 67f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_TRUE(AStringUtils::MatchesGlob("*1", 1, "String8", 6, false)); 68f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_TRUE(AStringUtils::MatchesGlob("*1", 1, "String8", 0, true)); 69f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_TRUE(AStringUtils::MatchesGlob("*1", 1, "String8", 0, false)); 70f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar 71f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_TRUE(AStringUtils::MatchesGlob("*ring1", 5, "String8", 6, false)); 72f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_TRUE(AStringUtils::MatchesGlob("*ring2", 5, "STRING8", 6, true)); 73f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_FALSE(AStringUtils::MatchesGlob("*ring4", 5, "StRing8", 6, false)); 74f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_FALSE(AStringUtils::MatchesGlob("*ring5", 5, "StrinG8", 6, false)); 75f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_FALSE(AStringUtils::MatchesGlob("*ring8", 5, "String8", 7, false)); 76f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_FALSE(AStringUtils::MatchesGlob("*ring8", 5, "String8", 7, true)); 77f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar 78f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_TRUE(AStringUtils::MatchesGlob("Str*1", 4, "String8", 6, false)); 79f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_TRUE(AStringUtils::MatchesGlob("Str*2", 4, "STRING8", 6, true)); 80f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_FALSE(AStringUtils::MatchesGlob("Str*3", 4, "string8", 6, false)); 81f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_FALSE(AStringUtils::MatchesGlob("Str*4", 4, "StRing8", 6, false)); 82f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_FALSE(AStringUtils::MatchesGlob("Str*5", 4, "AString8", 7, false)); 83f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_FALSE(AStringUtils::MatchesGlob("Str*6", 4, "AString8", 7, true)); 84f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar 85f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_TRUE(AStringUtils::MatchesGlob("Str*ng1", 6, "String8", 6, false)); 86f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_FALSE(AStringUtils::MatchesGlob("Str*ng2", 6, "string8", 6, false)); 87f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_FALSE(AStringUtils::MatchesGlob("Str*ng3", 6, "StRing8", 6, false)); 88f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_FALSE(AStringUtils::MatchesGlob("Str*ng4", 6, "StriNg8", 6, false)); 89f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_FALSE(AStringUtils::MatchesGlob("Str*ng5", 6, "StrinG8", 6, false)); 90f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_TRUE(AStringUtils::MatchesGlob("Str*ng6", 6, "STRING8", 6, true)); 91f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_FALSE(AStringUtils::MatchesGlob("Str*ng8", 6, "AString8", 7, false)); 92f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_FALSE(AStringUtils::MatchesGlob("Str*ng1", 6, "String16", 7, false)); 93f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_TRUE(AStringUtils::MatchesGlob("Str*ing9", 7, "String8", 6, false)); 94f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_FALSE(AStringUtils::MatchesGlob("Str*ringA", 8, "String8", 6, false)); 95f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_FALSE(AStringUtils::MatchesGlob("Str*ng8", 6, "AString8", 7, true)); 96f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_FALSE(AStringUtils::MatchesGlob("Str*ng1", 6, "String16", 7, true)); 97f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_TRUE(AStringUtils::MatchesGlob("Str*ing9", 7, "STRING8", 6, true)); 98f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_FALSE(AStringUtils::MatchesGlob("Str*ringA", 8, "String8", 6, true)); 99f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar 100f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_TRUE(AStringUtils::MatchesGlob("*str*str1", 8, "bestrestroom", 9, false)); 101f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_TRUE(AStringUtils::MatchesGlob("*str*str1", 8, "bestrestrestroom", 13, false)); 102f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_FALSE(AStringUtils::MatchesGlob("*str*stro", 8, "bestrestrestroom", 14, false)); 103f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_TRUE(AStringUtils::MatchesGlob("*str*str*1", 9, "bestrestrestroom", 14, false)); 104f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_TRUE(AStringUtils::MatchesGlob("*str*str1", 8, "beSTReSTRoom", 9, true)); 105f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_TRUE(AStringUtils::MatchesGlob("*str*str1", 8, "beSTRestreSTRoom", 13, true)); 106f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_FALSE(AStringUtils::MatchesGlob("*str*stro", 8, "bestreSTReSTRoom", 14, true)); 107f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_TRUE(AStringUtils::MatchesGlob("*str*str*1", 9, "bestreSTReSTRoom", 14, true)); 108f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar} 109f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar 110f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos MolnarTEST_F(UtilsTest, TestDebug) { 111f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar#define LVL(x) (ADebug::Level)(x) 112f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_EQ(ADebug::GetDebugLevelFromString("video", "", LVL(5)), LVL(5)); 113f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_EQ(ADebug::GetDebugLevelFromString("video", " \t \n ", LVL(2)), LVL(2)); 114f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_EQ(ADebug::GetDebugLevelFromString("video", "3", LVL(5)), LVL(3)); 115f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_EQ(ADebug::GetDebugLevelFromString("video", "3:*deo", LVL(5)), LVL(3)); 116f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_EQ(ADebug::GetDebugLevelFromString( 117f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar "video", "\t\n 3 \t\n:\t\n video \t\n", LVL(5)), LVL(3)); 118f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_EQ(ADebug::GetDebugLevelFromString("video", "3:*deo,2:vid*", LVL(5)), LVL(2)); 119f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_EQ(ADebug::GetDebugLevelFromString( 120f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar "avideo", "\t\n 3 \t\n:\t\n avideo \t\n,\t\n 2 \t\n:\t\n video \t\n", LVL(5)), LVL(3)); 121f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_EQ(ADebug::GetDebugLevelFromString( 122f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar "audio.omx", "4:*omx,3:*d*o*,2:audio*", LVL(5)), LVL(2)); 123f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_EQ(ADebug::GetDebugLevelFromString( 124f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar "video.omx", "4:*omx,3:*d*o*,2:audio*", LVL(5)), LVL(3)); 125f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_EQ(ADebug::GetDebugLevelFromString("video", "4:*omx,3:*d*o*,2:audio*", LVL(5)), LVL(3)); 126f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar ASSERT_EQ(ADebug::GetDebugLevelFromString("omx", "4:*omx,3:*d*o*,2:audio*", LVL(5)), LVL(4)); 127f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar#undef LVL 128f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar} 129f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar 130c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos MolnarTEST_F(UtilsTest, TestFourCC) { 131c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(FOURCC('s', 't', 'm' , 'u'), 'stmu'); 132c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar} 133c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar 134c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos MolnarTEST_F(UtilsTest, TestMathTemplates) { 135c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divRound(-10, -4), 3); 136c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divRound(-11, -4), 3); 137c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divRound(-12, -4), 3); 138c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divRound(-13, -4), 3); 139c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divRound(-14, -4), 4); 140c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar 141c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divRound(10, -4), -3); 142c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divRound(11, -4), -3); 143c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divRound(12, -4), -3); 144c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divRound(13, -4), -3); 145c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divRound(14, -4), -4); 146c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar 147c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divRound(-10, 4), -3); 148c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divRound(-11, 4), -3); 149c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divRound(-12, 4), -3); 150c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divRound(-13, 4), -3); 151c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divRound(-14, 4), -4); 152c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar 153c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divRound(10, 4), 3); 154c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divRound(11, 4), 3); 155c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divRound(12, 4), 3); 156c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divRound(13, 4), 3); 157c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divRound(14, 4), 4); 158c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar 159c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divUp(-11, -4), 3); 160c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divUp(-12, -4), 3); 161c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divUp(-13, -4), 4); 162c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar 163c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divUp(11, -4), -2); 164c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divUp(12, -4), -3); 165c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divUp(13, -4), -3); 166c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar 167c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divUp(-11, 4), -2); 168c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divUp(-12, 4), -3); 169c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divUp(-13, 4), -3); 170c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar 171c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divUp(11, 4), 3); 172c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divUp(12, 4), 3); 173c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(divUp(13, 4), 4); 174c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar 175c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(abs(5L), 5L); 176c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(abs(-25), 25); 177c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar 178c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(min(5.6f, 6.0f), 5.6f); 179c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(min(6.0f, 5.6f), 5.6f); 180c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(min(-4.3, 8.6), -4.3); 181c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(min(8.6, -4.3), -4.3); 182c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar 183c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(max(5.6f, 6.0f), 6.0f); 184c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(max(6.0f, 5.6f), 6.0f); 185c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(max(-4.3, 8.6), 8.6); 186c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(max(8.6, -4.3), 8.6); 187c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar 188c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(periodicError(124, 100), 24); 189c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(periodicError(288, 100), 12); 190c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(periodicError(-345, 100), 45); 191c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(periodicError(-493, 100), 7); 192c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(periodicError(-550, 100), 50); 193c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(periodicError(-600, 100), 0); 194c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar} 195c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar 196c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar} // namespace android 197