package com.thinkbiganalytics.spark.dataprofiler.testcases; /*- * #%L * thinkbig-spark-job-profiler-app * %% * Copyright (C) 2017 ThinkBig Analytics * %% * 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. * #L% */ import com.thinkbiganalytics.spark.dataprofiler.core.ProfilerTest; import com.thinkbiganalytics.spark.dataprofiler.topn.TopNDataItem; import com.thinkbiganalytics.spark.dataprofiler.topn.TopNDataList; import org.junit.AfterClass; import org.junit.Assert; import org.junit.BeforeClass; import org.junit.Test; import java.util.Iterator; import java.util.TreeSet; /** * TopN Test Case 1 */ public class TopNCase1Test extends ProfilerTest { private static TreeSet<TopNDataItem> items; private static Iterator<TopNDataItem> iterator; private static String topNDataItemsString; @BeforeClass public static void setUpClass() { System.out.println("\t*** Starting run for TopNCase1Test ***"); TopNDataList topNList = new TopNDataList(5); topNList.add("A", 18L); topNList.add("B", 20L); topNList.add("C", 15L); topNList.add("D", 25L); topNList.add("E", 19L); items = topNList.getTopNDataItemsForColumn(); iterator = items.descendingIterator(); topNDataItemsString = topNList.printTopNItems(); } @AfterClass public static void tearDownClass() { System.out.println("\t*** Completed run for TopNCase1Test ***"); } @Test public void testTopNSummaryCount() { Assert.assertEquals(5, items.size()); } @Test public void testTopNValues() { int index = 1; while (iterator.hasNext()) { TopNDataItem item = iterator.next(); if (index == 1) { Assert.assertEquals("D", item.getValue()); Assert.assertEquals(Long.valueOf(25), item.getCount()); } else if (index == 2) { Assert.assertEquals("B", item.getValue()); Assert.assertEquals(Long.valueOf(20), item.getCount()); } else if (index == 3) { Assert.assertEquals("E", item.getValue()); Assert.assertEquals(Long.valueOf(19), item.getCount()); } else if (index == 4) { Assert.assertEquals("A", item.getValue()); Assert.assertEquals(Long.valueOf(18), item.getCount()); } else if (index == 5) { Assert.assertEquals("C", item.getValue()); Assert.assertEquals(Long.valueOf(15), item.getCount()); } index++; } } @Test public void testTopNValuesToWriteString() { String expectedRetVal = "1^AD^A25^B" + "2^AB^A20^B" + "3^AE^A19^B" + "4^AA^A18^B" + "5^AC^A15^B"; Assert.assertEquals(expectedRetVal, topNDataItemsString); } }