/***************************************************************************** * Limpet - the Lightweight InforMation ProcEssing Toolkit * http://limpet.info * * (C) 2015-2016, Deep Blue C Technologies Ltd * * This library is free software; you can redistribute it and/or * modify it under the terms of the Eclipse Public License v1.0 * (http://www.eclipse.org/legal/epl-v10.html) * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. *****************************************************************************/ package info.limpet.data; import info.limpet.IStoreItem; import info.limpet.analysis.AnalysisLibrary; import info.limpet.analysis.IAnalysis; import info.limpet.analysis.TimeFrequencyBins; import info.limpet.data.impl.ObjectCollection; import info.limpet.data.impl.TemporalObjectCollection; import info.limpet.data.impl.samples.StockTypes; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.List; import junit.framework.TestCase; public class TestAnalysis extends TestCase { public void testSingleQuantityStats() { final List<String> tList = new ArrayList<String>(); final List<String> vList = new ArrayList<String>(); IAnalysis ia = new AnalysisLibrary() { @Override protected void presentResults(List<String> titles, List<String> values) { tList.addAll(titles); vList.addAll(values); } }; // collate the data List<IStoreItem> selection = new ArrayList<IStoreItem>(); StockTypes.NonTemporal.LengthM len1 = new StockTypes.NonTemporal.LengthM("lengths 1", null); selection.add(len1); len1.add(12d); len1.add(13d); len1.add(15d); len1.add(21d); // run the analysis ia.analyse(selection); // check the results // assertEquals("enough titles", 0, tList.size()); // assertEquals("enough values", 0, tList.size()); outList(tList, vList); len1 = new StockTypes.NonTemporal.LengthM("lengths 1", null); selection.clear(); selection.add(len1); len1.add(12d); ia.analyse(selection); } public void testSingleObjectStats() { final List<String> tList = new ArrayList<String>(); final List<String> vList = new ArrayList<String>(); IAnalysis ia = new AnalysisLibrary() { @Override protected void presentResults(List<String> titles, List<String> values) { tList.addAll(titles); vList.addAll(values); } }; // collate the data List<IStoreItem> selection = new ArrayList<IStoreItem>(); ObjectCollection<String> len1 = new ObjectCollection<String>("some strings"); selection.add(len1); len1.add("a"); len1.add("b"); len1.add("c"); len1.add("a"); len1.add("b"); len1.add("a"); // run the analysis ia.analyse(selection); // check the results // assertEquals("enough titles", 1, tList.size()); // assertEquals("enough values", 1, vList.size()); outList(tList, vList); } public void testTimeFrequencyStats() { final List<String> tList = new ArrayList<String>(); final List<String> vList = new ArrayList<String>(); TimeFrequencyBins tBins = new TimeFrequencyBins() { @Override protected void presentResults(List<String> titles, List<String> values) { tList.addAll(titles); vList.addAll(values); } }; // collate the data List<IStoreItem> selection = new ArrayList<IStoreItem>(); TemporalObjectCollection<String> len1 = new TemporalObjectCollection<String>("some strings"); selection.add(len1); long t = new Date().getTime(); len1.add(t + 10000, "a"); len1.add(t + 20000, "b"); len1.add(t + 60000, "c"); len1.add(t + 120000, "a"); len1.add(t + 130000, "b"); len1.add(t + 180000, "a"); // run the analysis tBins.analyse(selection); // check the results // assertEquals("enough titles", 1, tList.size()); // assertEquals("enough values", 1, vList.size()); outList(tList, vList); } private void outList(List<String> list, List<String> values) { System.out.println("================"); Iterator<String> tIter = list.iterator(); Iterator<String> vIter = values.iterator(); while (tIter.hasNext()) { StringBuffer output = new StringBuffer(); String nextT = tIter.next(); if (nextT.length() > 0) { output.append(nextT); output.append(":"); } output.append(vIter.next()); System.out.println(output.toString()); } } }