10a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe/* 20a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe * Copyright (C) 2016 The Android Open Source Project 30a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe * 40a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe * Licensed under the Apache License, Version 2.0 (the "License"); 50a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe * you may not use this file except in compliance with the License. 60a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe * You may obtain a copy of the License at 70a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe * 80a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe * http://www.apache.org/licenses/LICENSE-2.0 90a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe * 100a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe * Unless required by applicable law or agreed to in writing, software 110a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe * distributed under the License is distributed on an "AS IS" BASIS, 120a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 130a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe * See the License for the specific language governing permissions and 140a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe * limitations under the License. 150a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe */ 160a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawepackage com.android.internal.telephony; 170a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe 180a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padaweimport android.telephony.TelephonyHistogram; 190a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padaweimport android.test.suitebuilder.annotation.SmallTest; 200a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe 210a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padaweimport org.junit.After; 220a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padaweimport org.junit.Before; 230a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padaweimport org.junit.Test; 240a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padaweimport org.junit.Assert; 250a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe 260a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padaweimport static org.junit.Assert.*; 270a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe 280a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawepublic class TelephonyHistogramTest { 290a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe private TelephonyHistogram mHistogram = null; 300a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe 310a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe @After 320a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe public void tearDown() throws Exception { 330a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe mHistogram = null; 340a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe } 350a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe 360a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe @Before 370a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe public void setUp() throws Exception { 380a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe mHistogram = new TelephonyHistogram(TelephonyHistogram.TELEPHONY_CATEGORY_RIL, 1, 3); 390a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe } 400a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe 410a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe @Test 420a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe @SmallTest 430a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe public void testTelephonyHistogramConstructor() { 440a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe assertEquals(TelephonyHistogram.TELEPHONY_CATEGORY_RIL, mHistogram.getCategory()); 450a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe assertEquals(1, mHistogram.getId()); 460a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe assertEquals(Integer.MAX_VALUE, mHistogram.getMinTime()); 470a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe assertEquals(0, mHistogram.getMaxTime()); 480a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe assertEquals(0, mHistogram.getAverageTime()); 490a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe assertEquals(0, mHistogram.getSampleCount()); 500a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe assertEquals(3, mHistogram.getBucketCount()); 510a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe 520a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe // Test to verify that an exception is thrown when bucketCount <= 1 530a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe mHistogram = null; 540a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe try { 550a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe mHistogram = new TelephonyHistogram(TelephonyHistogram.TELEPHONY_CATEGORY_RIL, 1, 1); 560a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe Assert.fail("TelephonyHistogram should throw exception for bucketCount <= 1"); 570a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe } catch (IllegalArgumentException ex) { 580a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe mHistogram = new TelephonyHistogram(TelephonyHistogram.TELEPHONY_CATEGORY_RIL, 1, 3); 590a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe } 600a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe } 610a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe 620a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe @Test 630a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe @SmallTest 640a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe public void testAddTimeTaken() { 650a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe // Test when addTimeTaken is called less than 10 times 660a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe mHistogram.addTimeTaken(10); 670a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe mHistogram.addTimeTaken(20); 680a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe mHistogram.addTimeTaken(30); 690a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe mHistogram.addTimeTaken(40); 700a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe mHistogram.addTimeTaken(50); 710a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe assertEquals(10,mHistogram.getMinTime()); 720a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe assertEquals(50, mHistogram.getMaxTime()); 730a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe assertEquals(5, mHistogram.getSampleCount()); 740a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe assertEquals(30, mHistogram.getAverageTime()); 750a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe assertArrayEquals(new int[]{23, 36}, mHistogram.getBucketEndPoints()); 760a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe assertArrayEquals(new int[]{2, 1, 2}, mHistogram.getBucketCounters()); 770a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe 780a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe // Test when addTimeTaken is called more than 10 times 790a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe mHistogram.addTimeTaken(60); 800a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe mHistogram.addTimeTaken(70); 810a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe mHistogram.addTimeTaken(80); 820a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe mHistogram.addTimeTaken(90); 830a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe mHistogram.addTimeTaken(100); 840a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe mHistogram.addTimeTaken(10); 850a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe mHistogram.addTimeTaken(100); 860a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe assertEquals(10,mHistogram.getMinTime()); 870a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe assertEquals(100, mHistogram.getMaxTime()); 880a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe assertEquals(12, mHistogram.getSampleCount()); 890a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe assertEquals(54, mHistogram.getAverageTime()); 900a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe assertArrayEquals(new int[]{40, 70}, mHistogram.getBucketEndPoints()); 910a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe assertArrayEquals(new int[]{5, 3, 4}, mHistogram.getBucketCounters()); 920a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe } 930a22399222ad0874fc68adc34d7622b6e3d6da6fSanket Padawe} 94