|
From: Márcio V. d. S. <mv...@us...> - 2007-06-08 19:21:18
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator/tracker In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv12077/src/test/net/sf/tail/indicator/tracker Added Files: SMAIndicatorTest.java RSIIndicatorTest.java WilliamsRIndicatorTest.java EMAIndicatorTest.java Log Message: Refatoração de pacotes e MaximumDrawnDown --- NEW FILE: RSIIndicatorTest.java --- package net.sf.tail.indicator.tracker; import static org.junit.Assert.assertEquals; import junit.framework.JUnit4TestAdapter; import net.sf.tail.TimeSeries; import net.sf.tail.indicator.simple.ClosePriceIndicator; import net.sf.tail.indicator.tracker.RSIIndicator; import net.sf.tail.sample.SampleTimeSeries; import org.junit.Before; import org.junit.Test; public class RSIIndicatorTest { private TimeSeries data; @Before public void setUp() { data = new SampleTimeSeries(new double[] { 50.45, 50.30, 50.20, 50.15, 50.05, 50.06, 50.10, 50.08, 50.03, 50.07, 50.01, 50.14, 50.22, 50.43, 50.50, 50.56, 50.52, 50.70, 50.55, 50.62, 50.90, 50.82, 50.86, 51.20, 51.30, 51.10 }); } @Test public void testRSIUsingTimeFrame14UsingClosePrice() { RSIIndicator rsi = new RSIIndicator(new ClosePriceIndicator(data), 14); assertEquals(62.75, rsi.getValue(15), 0.01); assertEquals(66.67, rsi.getValue(16), 0.01); assertEquals(75.23, rsi.getValue(17), 0.01); assertEquals(71.93, rsi.getValue(18), 0.01); assertEquals(73.33, rsi.getValue(19), 0.01); assertEquals(77.78, rsi.getValue(20), 0.01); assertEquals(74.67, rsi.getValue(21), 0.01); assertEquals(77.85, rsi.getValue(22), 0.01); assertEquals(81.56, rsi.getValue(23), 0.01); assertEquals(85.25, rsi.getValue(24), 0.01); } @Test public void testRSIFirstValueShouldBeZero() { RSIIndicator rsi = new RSIIndicator(new ClosePriceIndicator(data), 14); assertEquals(0d, rsi.getValue(0), 0.01); } @Test public void testRSIShouldWorkJumpingIndexes() { RSIIndicator rsi = new RSIIndicator(new ClosePriceIndicator(data), 14); assertEquals(73.33, rsi.getValue(19), 0.01); assertEquals(62.75, rsi.getValue(15), 0.01); } @Test(expected = IndexOutOfBoundsException.class) public void testIndexGreatterThanTheIndicatorLenghtShouldThrowException() { RSIIndicator rsi = new RSIIndicator(new ClosePriceIndicator(data), 14); assertEquals(3d, rsi.getValue(300)); } public static junit.framework.Test suite() { return new JUnit4TestAdapter(RSIIndicatorTest.class); } } --- NEW FILE: SMAIndicatorTest.java --- package net.sf.tail.indicator.tracker; import static org.junit.Assert.assertEquals; import junit.framework.JUnit4TestAdapter; import net.sf.tail.TimeSeries; import net.sf.tail.indicator.simple.ClosePriceIndicator; import net.sf.tail.indicator.tracker.SMAIndicator; import net.sf.tail.sample.SampleTimeSeries; import org.junit.Before; import org.junit.Test; public class SMAIndicatorTest { private TimeSeries data; @Before public void setUp() throws Exception { data = new SampleTimeSeries(new double[] { 1, 2, 3, 4, 3, 4, 5, 4, 3, 3, 4, 3, 2 }); } @Test public void testSMAUsingTimeFrame3UsingClosePrice() throws Exception { SMAIndicator sma = new SMAIndicator(new ClosePriceIndicator(data), 3); assertEquals(1.0, sma.getValue(0)); assertEquals(1.5, sma.getValue(1)); assertEquals(2.0, sma.getValue(2)); assertEquals(3.0, sma.getValue(3)); assertEquals(10.0 / 3, sma.getValue(4)); assertEquals(11.0 / 3, sma.getValue(5)); assertEquals(4.0, sma.getValue(6)); assertEquals(13.0 / 3, sma.getValue(7)); assertEquals(4.0, sma.getValue(8)); assertEquals(10.0 / 3, sma.getValue(9)); assertEquals(10.0 / 3, sma.getValue(10)); assertEquals(10.0 / 3, sma.getValue(11)); assertEquals(3.0, sma.getValue(12)); } @Test public void testSMAWhenTimeFrameIs1ResultShouldBeIndicatorValue() { SMAIndicator quoteSMA = new SMAIndicator(new ClosePriceIndicator(data), 1); for (int i = 0; i < data.getSize(); i++) { assertEquals(data.getTick(i).getClosePrice(), quoteSMA.getValue(i)); } } @Test public void testSMAShouldWorkJumpingIndexes() { SMAIndicator quoteSMA = new SMAIndicator(new ClosePriceIndicator(data), 3); assertEquals(3d, quoteSMA.getValue(12)); } @Test(expected = IndexOutOfBoundsException.class) public void testIndexGreatterThanTheIndicatorLenghtShouldThrowException() { SMAIndicator quoteSMA = new SMAIndicator(new ClosePriceIndicator(data), 3); assertEquals(3d, quoteSMA.getValue(13)); } public static junit.framework.Test suite() { return new JUnit4TestAdapter(SMAIndicatorTest.class); } } --- NEW FILE: WilliamsRIndicatorTest.java --- package net.sf.tail.indicator.tracker; import static org.junit.Assert.assertEquals; import java.util.ArrayList; import java.util.List; import junit.framework.JUnit4TestAdapter; import net.sf.tail.DefaultTimeSeries; import net.sf.tail.Tick; import net.sf.tail.TimeSeries; import net.sf.tail.indicator.simple.ClosePriceIndicator; import net.sf.tail.indicator.simple.MaxPriceIndicator; import net.sf.tail.indicator.simple.MinPriceIndicator; import net.sf.tail.indicator.tracker.WilliamsRIndicator; import org.junit.Before; import org.junit.Test; public class WilliamsRIndicatorTest { private TimeSeries data; @Before public void setUp() throws Exception { List<Tick> ticks = new ArrayList<Tick>(); ticks.add(new Tick(44.98, 45.05, 45.17, 44.96)); ticks.add(new Tick(45.05, 45.10, 45.15, 44.99)); ticks.add(new Tick(45.11, 45.19, 45.32, 45.11)); ticks.add(new Tick(45.19, 45.14, 45.25, 45.04)); ticks.add(new Tick(45.12, 45.15, 45.20, 45.10)); ticks.add(new Tick(45.15, 45.14, 45.20, 45.10)); ticks.add(new Tick(45.13, 45.10, 45.16, 45.07)); ticks.add(new Tick(45.12, 45.15, 45.22, 45.10)); ticks.add(new Tick(45.15, 45.22, 45.27, 45.14)); ticks.add(new Tick(45.24, 45.43, 45.45, 45.20)); ticks.add(new Tick(45.43, 45.44, 45.50, 45.39)); ticks.add(new Tick(45.43, 45.55, 45.60, 45.35)); ticks.add(new Tick(45.58, 45.55, 45.61, 45.39)); data = new DefaultTimeSeries(ticks); } @Test public void testWilliamsRUsingTimeFrame5UsingClosePrice() throws Exception { WilliamsRIndicator wr = new WilliamsRIndicator(new ClosePriceIndicator(data), 5, new MaxPriceIndicator(data), new MinPriceIndicator(data)); assertEquals(-47.22, wr.getValue(4), 0.01); assertEquals(-54.55, wr.getValue(5), 0.01); assertEquals(-78.57, wr.getValue(6), 0.01); assertEquals(-47.62, wr.getValue(7), 0.01); assertEquals(-25.00, wr.getValue(8), 0.01); assertEquals(-5.26, wr.getValue(9), 0.01); assertEquals(-13.95, wr.getValue(10), 0.01); } @Test public void testWilliamsRShouldWorkJumpingIndexes() { WilliamsRIndicator wr = new WilliamsRIndicator(new ClosePriceIndicator(data), 5, new MaxPriceIndicator(data), new MinPriceIndicator(data)); assertEquals(-13.95, wr.getValue(10), 0.01); assertEquals(-47.22, wr.getValue(4), 0.01); } @Test public void testWilliamsRUsingTimeFrame10UsingClosePrice() { WilliamsRIndicator wr = new WilliamsRIndicator(new ClosePriceIndicator(data), 10, new MaxPriceIndicator(data), new MinPriceIndicator(data)); assertEquals(-4.08, wr.getValue(9), 0.01); assertEquals(-11.77, wr.getValue(10), 0.01); assertEquals(-8.93, wr.getValue(11), 0.01); assertEquals(-10.53, wr.getValue(12), 0.01); } @Test public void testValueLessThenTimeFrame() { WilliamsRIndicator wr = new WilliamsRIndicator(new ClosePriceIndicator(data), 100, new MaxPriceIndicator(data), new MinPriceIndicator(data)); assertEquals(-100d * (0.12 / 0.21), wr.getValue(0), 0.01); assertEquals(-100d * (0.07 / 0.21), wr.getValue(1), 0.01); assertEquals(-100d * (0.13 / 0.36), wr.getValue(2), 0.01); assertEquals(-100d * (0.18 / 0.36), wr.getValue(3), 0.01); } @Test(expected = IndexOutOfBoundsException.class) public void testIndexGreatterThanTheIndicatorLenghtShouldThrowException() { WilliamsRIndicator wr = new WilliamsRIndicator(new ClosePriceIndicator(data), 100, new MaxPriceIndicator(data), new MinPriceIndicator(data)); wr.getValue(13); } public static junit.framework.Test suite() { return new JUnit4TestAdapter(WilliamsRIndicatorTest.class); } } --- NEW FILE: EMAIndicatorTest.java --- package net.sf.tail.indicator.tracker; import net.sf.tail.TimeSeries; import net.sf.tail.indicator.simple.ClosePriceIndicator; import net.sf.tail.indicator.tracker.EMAIndicator; import net.sf.tail.indicator.tracker.SMAIndicator; import net.sf.tail.sample.SampleTimeSeries; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.assertEquals; import junit.framework.JUnit4TestAdapter; public class EMAIndicatorTest { private TimeSeries data; @Before public void setUp() { data = new SampleTimeSeries(new double[] { 64.75, 63.79, 63.73, 63.73, 63.55, 63.19, 63.91, 63.85, 62.95, 63.37, 61.33, 61.51 }); } @Test public void testEMAUsingTimeFrame10UsingClosePrice() { EMAIndicator ema = new EMAIndicator(new ClosePriceIndicator(data), 10); assertEquals(63.65, ema.getValue(9), 0.01); assertEquals(63.23, ema.getValue(10), 0.01); assertEquals(62.91, ema.getValue(11), 0.01); } @Test public void testEMAFirstValueShouldBeEqualsToFirstDataValue() { EMAIndicator ema = new EMAIndicator(new ClosePriceIndicator(data), 10); assertEquals(64.75, ema.getValue(0), 0.01); } @Test public void testValuesLessThanTimeFrameMustBeEqualsToSMAValues() { EMAIndicator ema = new EMAIndicator(new ClosePriceIndicator(data), 10); SMAIndicator sma = new SMAIndicator(new ClosePriceIndicator(data), 10); for (int i = 0; i < 9; i++) { sma.getValue(i); ema.getValue(i); assertEquals(sma.getValue(i), ema.getValue(i)); } } @Test public void testEMAShouldWorkJumpingIndexes() { EMAIndicator ema = new EMAIndicator(new ClosePriceIndicator(data), 10); assertEquals(63.23, ema.getValue(10), 0.01); } @Test(expected = IndexOutOfBoundsException.class) public void testIndexGreatterThanTheIndicatorLenghtShouldThrowException() { EMAIndicator ema = new EMAIndicator(new ClosePriceIndicator(data), 10); assertEquals(3d, ema.getValue(14)); } public static junit.framework.Test suite() { return new JUnit4TestAdapter(EMAIndicatorTest.class); } } |