Merge "Make precentage calculation round up by 0.5%"
This commit is contained in:
@@ -112,6 +112,12 @@ public class Utils {
|
||||
UserIcons.getDefaultUserIcon(user.id, /* light= */ false)).bake();
|
||||
}
|
||||
|
||||
/** Formats a double from 0.0..100.0 with an option to round **/
|
||||
public static String formatPercentage(double percentage, boolean round) {
|
||||
final int localPercentage = round ? Math.round((float) percentage) : (int) percentage;
|
||||
return formatPercentage(localPercentage);
|
||||
}
|
||||
|
||||
/** Formats the ratio of amount/total as a percentage. */
|
||||
public static String formatPercentage(long amount, long total) {
|
||||
return formatPercentage(((double) amount) / total);
|
||||
@@ -124,7 +130,7 @@ public class Utils {
|
||||
|
||||
/** Formats a double from 0.0..1.0 as a percentage. */
|
||||
private static String formatPercentage(double percentage) {
|
||||
return NumberFormat.getPercentInstance().format(percentage);
|
||||
return NumberFormat.getPercentInstance().format(percentage);
|
||||
}
|
||||
|
||||
public static int getBatteryLevel(Intent batteryChangedIntent) {
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
/*
|
||||
* Copyright (C) 2017 The Android Open Source Project
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.android.settingslib;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.robolectric.annotation.Config;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
@RunWith(SettingLibRobolectricTestRunner.class)
|
||||
@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION)
|
||||
public class UtilsTest {
|
||||
private static final double[] TEST_PERCENTAGES = {0, 0.4, 0.5, 0.6, 49, 49.3, 49.8, 50, 100};
|
||||
private static final String PERCENTAGE_0 = "0%";
|
||||
private static final String PERCENTAGE_1 = "1%";
|
||||
private static final String PERCENTAGE_49 = "49%";
|
||||
private static final String PERCENTAGE_50 = "50%";
|
||||
private static final String PERCENTAGE_100 = "100%";
|
||||
|
||||
@Test
|
||||
public void testFormatPercentage_RoundTrue_RoundUpIfPossible() {
|
||||
final String[] expectedPercentages = {PERCENTAGE_0, PERCENTAGE_0, PERCENTAGE_1,
|
||||
PERCENTAGE_1, PERCENTAGE_49, PERCENTAGE_49, PERCENTAGE_50, PERCENTAGE_50,
|
||||
PERCENTAGE_100};
|
||||
|
||||
for (int i = 0, size = TEST_PERCENTAGES.length; i < size; i++) {
|
||||
final String percentage = Utils.formatPercentage(TEST_PERCENTAGES[i], true);
|
||||
assertThat(percentage).isEqualTo(expectedPercentages[i]);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testFormatPercentage_RoundFalse_NoRound() {
|
||||
final String[] expectedPercentages = {PERCENTAGE_0, PERCENTAGE_0, PERCENTAGE_0,
|
||||
PERCENTAGE_0, PERCENTAGE_49, PERCENTAGE_49, PERCENTAGE_49, PERCENTAGE_50,
|
||||
PERCENTAGE_100};
|
||||
|
||||
for (int i = 0, size = TEST_PERCENTAGES.length; i < size; i++) {
|
||||
final String percentage = Utils.formatPercentage(TEST_PERCENTAGES[i], false);
|
||||
assertThat(percentage).isEqualTo(expectedPercentages[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user