/* * Copyright (c) 2004-2011 Marco Maccaferri and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Marco Maccaferri - initial API and implementation */ package org.eclipsetrader.core.charts; import java.util.Calendar; import java.util.Date; import junit.framework.TestCase; import org.eclipse.core.runtime.IAdaptable; public class DataSeriesTest extends TestCase { private IAdaptable[] sampleValues = new IAdaptable[] { new NumberValue(getTime(11, Calendar.NOVEMBER, 2007), 10.0), new NumberValue(getTime(12, Calendar.NOVEMBER, 2007), 20.0), new NumberValue(getTime(13, Calendar.NOVEMBER, 2007), 5.0), }; private Date getTime(int day, int month, int year) { Calendar date = Calendar.getInstance(); date.set(year, month, day, 0, 0, 0); date.set(Calendar.MILLISECOND, 0); return date.getTime(); } public void testGetFirst() throws Exception { DataSeries series = new DataSeries("Test", sampleValues); assertSame(sampleValues[0], series.getFirst()); } public void testGetLast() throws Exception { DataSeries series = new DataSeries("Test", sampleValues); assertSame(sampleValues[2], series.getLast()); } public void testGetHighest() throws Exception { DataSeries series = new DataSeries("Test", sampleValues); assertSame(sampleValues[1], series.getHighest()); } public void testGetLowest() throws Exception { DataSeries series = new DataSeries("Test", sampleValues); assertSame(sampleValues[2], series.getLowest()); } public void testGetSeries() throws Exception { IAdaptable[] sampleValues = new IAdaptable[] { new NumberValue(getTime(11, Calendar.NOVEMBER, 2007), 10.0), new NumberValue(getTime(12, Calendar.NOVEMBER, 2007), 20.0), new NumberValue(getTime(13, Calendar.NOVEMBER, 2007), 5.0), new NumberValue(getTime(14, Calendar.NOVEMBER, 2007), 15.0), new NumberValue(getTime(15, Calendar.NOVEMBER, 2007), 10.0), }; DataSeries series = new DataSeries("Test", sampleValues); IDataSeries subSeries = series.getSeries(sampleValues[1], sampleValues[3]); IAdaptable[] values = subSeries.getValues(); assertEquals(3, values.length); assertSame(sampleValues[1], values[0]); assertSame(sampleValues[2], values[1]); assertSame(sampleValues[3], values[2]); } public void testCrossAbove() throws Exception { IAdaptable[] sampleValues1 = new IAdaptable[] { new NumberValue(getTime(11, Calendar.NOVEMBER, 2007), 3.7692), new NumberValue(getTime(12, Calendar.NOVEMBER, 2007), 3.7794), }; DataSeries series1 = new DataSeries("Test1", sampleValues1); IAdaptable[] sampleValues2 = new IAdaptable[] { new NumberValue(getTime(11, Calendar.NOVEMBER, 2007), 3.7762), new NumberValue(getTime(12, Calendar.NOVEMBER, 2007), 3.7793), }; DataSeries series2 = new DataSeries("Test2", sampleValues2); int result = series1.cross(series2, new NumberValue(getTime(12, Calendar.NOVEMBER, 2007), 3.7794)); assertEquals(result, IDataSeries.ABOVE); } }