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) 1129903589eacc655481acebc5b85632b3b84418bc9Lajos Molnar ASSERT_EQ(ADebug::GetLevelFromSettingsString("video", "", LVL(5)), LVL(5)); 1139903589eacc655481acebc5b85632b3b84418bc9Lajos Molnar ASSERT_EQ(ADebug::GetLevelFromSettingsString("video", " \t \n ", LVL(2)), LVL(2)); 1149903589eacc655481acebc5b85632b3b84418bc9Lajos Molnar ASSERT_EQ(ADebug::GetLevelFromSettingsString("video", "3", LVL(5)), LVL(3)); 1159903589eacc655481acebc5b85632b3b84418bc9Lajos Molnar ASSERT_EQ(ADebug::GetLevelFromSettingsString("video", "3:*deo", LVL(5)), LVL(3)); 1169903589eacc655481acebc5b85632b3b84418bc9Lajos Molnar ASSERT_EQ(ADebug::GetLevelFromSettingsString( 117f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar "video", "\t\n 3 \t\n:\t\n video \t\n", LVL(5)), LVL(3)); 1189903589eacc655481acebc5b85632b3b84418bc9Lajos Molnar ASSERT_EQ(ADebug::GetLevelFromSettingsString("video", "3:*deo,2:vid*", LVL(5)), LVL(2)); 1199903589eacc655481acebc5b85632b3b84418bc9Lajos Molnar ASSERT_EQ(ADebug::GetLevelFromSettingsString( 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)); 1219903589eacc655481acebc5b85632b3b84418bc9Lajos Molnar ASSERT_EQ(ADebug::GetLevelFromSettingsString( 122f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar "audio.omx", "4:*omx,3:*d*o*,2:audio*", LVL(5)), LVL(2)); 1239903589eacc655481acebc5b85632b3b84418bc9Lajos Molnar ASSERT_EQ(ADebug::GetLevelFromSettingsString( 124f296e2b262d2a8f7c570eaed454a28cca99eb976Lajos Molnar "video.omx", "4:*omx,3:*d*o*,2:audio*", LVL(5)), LVL(3)); 1259903589eacc655481acebc5b85632b3b84418bc9Lajos Molnar ASSERT_EQ(ADebug::GetLevelFromSettingsString("video", "4:*omx,3:*d*o*,2:audio*", LVL(5)), LVL(3)); 1269903589eacc655481acebc5b85632b3b84418bc9Lajos Molnar ASSERT_EQ(ADebug::GetLevelFromSettingsString("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 175a0940a569f2bc24b00dc10ce0fa7658b1dc3a3a5Lajos Molnar ASSERT_EQ(align(11, 4), 12); 176a0940a569f2bc24b00dc10ce0fa7658b1dc3a3a5Lajos Molnar ASSERT_EQ(align(12, 4), 12); 177a0940a569f2bc24b00dc10ce0fa7658b1dc3a3a5Lajos Molnar ASSERT_EQ(align(13, 4), 16); 178a0940a569f2bc24b00dc10ce0fa7658b1dc3a3a5Lajos Molnar ASSERT_EQ(align(11, 8), 16); 179a0940a569f2bc24b00dc10ce0fa7658b1dc3a3a5Lajos Molnar ASSERT_EQ(align(11, 2), 12); 180a0940a569f2bc24b00dc10ce0fa7658b1dc3a3a5Lajos Molnar ASSERT_EQ(align(11, 1), 11); 181a0940a569f2bc24b00dc10ce0fa7658b1dc3a3a5Lajos Molnar 182c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(abs(5L), 5L); 183c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(abs(-25), 25); 184c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar 185c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(min(5.6f, 6.0f), 5.6f); 186c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(min(6.0f, 5.6f), 5.6f); 187c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(min(-4.3, 8.6), -4.3); 188c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(min(8.6, -4.3), -4.3); 189c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar 190c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(max(5.6f, 6.0f), 6.0f); 191c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(max(6.0f, 5.6f), 6.0f); 192c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(max(-4.3, 8.6), 8.6); 193c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(max(8.6, -4.3), 8.6); 194c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar 195bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(-43, 86u, -44)); 196bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(-43, 87u, -43)); 197bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(-43, 88u, -1)); 198bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(-43, 89u, 0)); 199bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(-43, 90u, 46)); 200bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(-43, 91u, 48)); 201bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(-43, 92u, 50)); 202bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar 203bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(43, 86u, 42)); 204bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(43, 87u, 43)); 205bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(43, 88u, 44)); 206bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(43, 89u, 131)); 207bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(43, 90u, 133)); 208bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(43, 91u, 135)); 209bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar 210bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(43u, 86u, 42u)); 211bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(43u, 85u, 43u)); 212bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(43u, 84u, 44u)); 213bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(43u, 83u, 125u)); 214bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(43u, 82u, 125u)); 215bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(43u, 81u, 125u)); 216bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar 217bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(-43, ~0u, 43)); 218bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(-43, ~0u, 44)); 219bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(-43, ~0u, ~0)); 220bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(-43, ~0u, 41)); 221bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(-43, ~0u, 40)); 222bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar 223bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(43u, ~0u, 43u)); 224bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(43u, ~0u, 41u)); 225bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(43u, ~0u, 40u)); 226bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(43u, ~0u, ~0u)); 227bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar 228bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(-43, 86u, -44, 0u)); 229bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(-43, 86u, -44, 1u)); 230bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(-43, 86u, -44, 2u)); 231bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(-43, 86u, -44, ~0u)); 232bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(-43, 87u, -43, 0u)); 233bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(-43, 87u, -43, 1u)); 234bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(-43, 87u, -43, 86u)); 235bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(-43, 87u, -43, 87u)); 236bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(-43, 87u, -43, 88u)); 237bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(-43, 87u, -43, ~0u)); 238bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(-43, 88u, -1, 0u)); 239bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(-43, 88u, -1, 45u)); 240bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(-43, 88u, -1, 46u)); 241bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(-43, 88u, -1, 47u)); 242bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(-43, 88u, -1, ~3u)); 243bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(-43, 90u, 46, 0u)); 244bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(-43, 90u, 46, 1u)); 245bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(-43, 90u, 46, 2u)); 246bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(-43, 91u, 48, 0u)); 247bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(-43, 91u, 48, 2u)); 248bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(-43, 91u, 48, ~6u)); 249bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(-43, 92u, 50, 0u)); 250bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(-43, 92u, 50, 1u)); 251bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar 252bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(43u, 86u, 42u, 0u)); 253bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(43u, 86u, 42u, 1u)); 254bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(43u, 86u, 42u, 2u)); 255bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(43u, 86u, 42u, ~0u)); 256bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(43u, 87u, 43u, 0u)); 257bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(43u, 87u, 43u, 1u)); 258bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(43u, 87u, 43u, 86u)); 259bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(43u, 87u, 43u, 87u)); 260bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(43u, 87u, 43u, 88u)); 261bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(43u, 87u, 43u, ~0u)); 262bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(43u, 88u, 60u, 0u)); 263bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(43u, 88u, 60u, 70u)); 264bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(43u, 88u, 60u, 71u)); 265bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(43u, 88u, 60u, 72u)); 266bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(43u, 88u, 60u, ~3u)); 267bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(43u, 90u, 132u, 0u)); 268bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_TRUE(isInRange(43u, 90u, 132u, 1u)); 269bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(43u, 90u, 132u, 2u)); 270bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(43u, 91u, 134u, 0u)); 271bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(43u, 91u, 134u, 2u)); 272bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(43u, 91u, 134u, ~6u)); 273bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(43u, 92u, 136u, 0u)); 274bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar ASSERT_FALSE(isInRange(43u, 92u, 136u, 1u)); 275bfed843041b6aaec13ee19996748a7a1476db9c8Lajos Molnar 276c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(periodicError(124, 100), 24); 277c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(periodicError(288, 100), 12); 278c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(periodicError(-345, 100), 45); 279c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(periodicError(-493, 100), 7); 280c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(periodicError(-550, 100), 50); 281c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar ASSERT_EQ(periodicError(-600, 100), 0); 282c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar} 283c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar 284c416becd966945fca5fa7fb45ac51f84d1d8cd20Lajos Molnar} // namespace android 285