13d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma/* 23d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma * Copyright (C) 2017 The Android Open Source Project 33d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma * Licensed under the Apache License, Version 2.0 (the "License"); 43d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma * you may not use this file except in compliance with the License. 53d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma * You may obtain a copy of the License at 63d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma * 73d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma * http://www.apache.org/licenses/LICENSE-2.0 83d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma * 93d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma * Unless required by applicable law or agreed to in writing, software 103d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma * distributed under the License is distributed on an "AS IS" BASIS, 113d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 123d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma * See the License for the specific language governing permissions and 133d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma * limitations under the License. 143d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma * 153d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma * 163d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma */ 173d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma 183d422c37b7f2caf364febc556e17b43c40c56be6Mike Mapackage com.android.internal.os; 193d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma 203d422c37b7f2caf364febc556e17b43c40c56be6Mike Maimport android.support.test.InstrumentationRegistry; 213d422c37b7f2caf364febc556e17b43c40c56be6Mike Maimport android.support.test.filters.SmallTest; 223d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma 233d422c37b7f2caf364febc556e17b43c40c56be6Mike Maimport junit.framework.TestCase; 243d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma 253d422c37b7f2caf364febc556e17b43c40c56be6Mike Maimport org.junit.Before; 263d422c37b7f2caf364febc556e17b43c40c56be6Mike Maimport org.junit.Test; 273d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma 283d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma/* 293d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma * Keep this file in sync with frameworks/base/core/res/res/xml/power_profile_test.xml 303d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma */ 313d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma@SmallTest 323d422c37b7f2caf364febc556e17b43c40c56be6Mike Mapublic class PowerProfileTest extends TestCase { 333d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma 343d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma private PowerProfile mProfile; 353d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma 363d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma @Before 373d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma public void setUp() { 383d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma mProfile = new PowerProfile(InstrumentationRegistry.getContext(), true); 393d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma } 403d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma 413d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma @Test 423d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma public void testPowerProfile() { 433d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma assertEquals(2, mProfile.getNumCpuClusters()); 443d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma assertEquals(4, mProfile.getNumCoresInCpuCluster(0)); 453d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma assertEquals(4, mProfile.getNumCoresInCpuCluster(1)); 463d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma assertEquals(5.0, mProfile.getAveragePower(PowerProfile.POWER_CPU_SUSPEND)); 473d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma assertEquals(1.11, mProfile.getAveragePower(PowerProfile.POWER_CPU_IDLE)); 483d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma assertEquals(2.55, mProfile.getAveragePower(PowerProfile.POWER_CPU_ACTIVE)); 493d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma assertEquals(2.11, mProfile.getAveragePowerForCpuCluster(0)); 503d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma assertEquals(2.22, mProfile.getAveragePowerForCpuCluster(1)); 513d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma assertEquals(3, mProfile.getNumSpeedStepsInCpuCluster(0)); 523d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma assertEquals(30.0, mProfile.getAveragePowerForCpuCore(0, 2)); 533d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma assertEquals(4, mProfile.getNumSpeedStepsInCpuCluster(1)); 543d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma assertEquals(60.0, mProfile.getAveragePowerForCpuCore(1, 3)); 553d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma assertEquals(3000.0, mProfile.getBatteryCapacity()); 56eb0d8a7b91f616ccc6f927e6b29dffdf995263beMike Ma assertEquals(0.5, mProfile.getAveragePower(PowerProfile.POWER_AMBIENT_DISPLAY)); 5707305c0b461544ea7efba6128891f846ee6b595bMike Ma assertEquals(100.0, mProfile.getAveragePower(PowerProfile.POWER_AUDIO)); 5807305c0b461544ea7efba6128891f846ee6b595bMike Ma assertEquals(150.0, mProfile.getAveragePower(PowerProfile.POWER_VIDEO)); 593d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma } 603d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma 613d422c37b7f2caf364febc556e17b43c40c56be6Mike Ma} 62