1 /* 2 * Copyright (C) 2016 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package com.android.internal.telephony; 17 18 import android.telephony.TelephonyHistogram; 19 import android.test.suitebuilder.annotation.SmallTest; 20 21 import org.junit.After; 22 import org.junit.Before; 23 import org.junit.Test; 24 import org.junit.Assert; 25 26 import static org.junit.Assert.*; 27 28 public class TelephonyHistogramTest { 29 private TelephonyHistogram mHistogram = null; 30 31 @After 32 public void tearDown() throws Exception { 33 mHistogram = null; 34 } 35 36 @Before 37 public void setUp() throws Exception { 38 mHistogram = new TelephonyHistogram(TelephonyHistogram.TELEPHONY_CATEGORY_RIL, 1, 3); 39 } 40 41 @Test 42 @SmallTest 43 public void testTelephonyHistogramConstructor() { 44 assertEquals(TelephonyHistogram.TELEPHONY_CATEGORY_RIL, mHistogram.getCategory()); 45 assertEquals(1, mHistogram.getId()); 46 assertEquals(Integer.MAX_VALUE, mHistogram.getMinTime()); 47 assertEquals(0, mHistogram.getMaxTime()); 48 assertEquals(0, mHistogram.getAverageTime()); 49 assertEquals(0, mHistogram.getSampleCount()); 50 assertEquals(3, mHistogram.getBucketCount()); 51 52 // Test to verify that an exception is thrown when bucketCount <= 1 53 mHistogram = null; 54 try { 55 mHistogram = new TelephonyHistogram(TelephonyHistogram.TELEPHONY_CATEGORY_RIL, 1, 1); 56 Assert.fail("TelephonyHistogram should throw exception for bucketCount <= 1"); 57 } catch (IllegalArgumentException ex) { 58 mHistogram = new TelephonyHistogram(TelephonyHistogram.TELEPHONY_CATEGORY_RIL, 1, 3); 59 } 60 } 61 62 @Test 63 @SmallTest 64 public void testAddTimeTaken() { 65 // Test when addTimeTaken is called less than 10 times 66 mHistogram.addTimeTaken(10); 67 mHistogram.addTimeTaken(20); 68 mHistogram.addTimeTaken(30); 69 mHistogram.addTimeTaken(40); 70 mHistogram.addTimeTaken(50); 71 assertEquals(10,mHistogram.getMinTime()); 72 assertEquals(50, mHistogram.getMaxTime()); 73 assertEquals(5, mHistogram.getSampleCount()); 74 assertEquals(30, mHistogram.getAverageTime()); 75 assertArrayEquals(new int[]{23, 36}, mHistogram.getBucketEndPoints()); 76 assertArrayEquals(new int[]{2, 1, 2}, mHistogram.getBucketCounters()); 77 78 // Test when addTimeTaken is called more than 10 times 79 mHistogram.addTimeTaken(60); 80 mHistogram.addTimeTaken(70); 81 mHistogram.addTimeTaken(80); 82 mHistogram.addTimeTaken(90); 83 mHistogram.addTimeTaken(100); 84 mHistogram.addTimeTaken(10); 85 mHistogram.addTimeTaken(100); 86 assertEquals(10,mHistogram.getMinTime()); 87 assertEquals(100, mHistogram.getMaxTime()); 88 assertEquals(12, mHistogram.getSampleCount()); 89 assertEquals(54, mHistogram.getAverageTime()); 90 assertArrayEquals(new int[]{40, 70}, mHistogram.getBucketEndPoints()); 91 assertArrayEquals(new int[]{5, 3, 4}, mHistogram.getBucketCounters()); 92 } 93 } 94