Home | History | Annotate | Download | only in telephony
      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