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