Update of /cvsroot/tail/Tail/src/test/net/sf/tail/indicator
In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv25633/src/test/net/sf/tail/indicator
Added Files:
WilliamsRIndicatorTest.java
Log Message:
Classe de teste do Williams % R
--- NEW FILE: WilliamsRIndicatorTest.java ---
package net.sf.tail.indicator;
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import junit.framework.JUnit4TestAdapter;
import net.sf.tail.DefaultTimeSeries;
import net.sf.tail.SampleTimeSeries;
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.SMAIndicator;
import net.sf.tail.indicator.tracker.WilliamsRIndicator;
import org.junit.Before;
import org.junit.Test;
public class WilliamsRIndicatorTest {
private TimeSeries data;
@Before
public void prepare() 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 testWR5() 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 testWR10() {
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 testWrongIndex() {
WilliamsRIndicator wr = new WilliamsRIndicator(new ClosePriceIndicator(data), 100, new MaxPriceIndicator(data), new MinPriceIndicator(data));
wr.getValue(13);
}
//Método adicionado por causa da compatibilidade do Eclipse 3.1.2(Rede Linux)
//e o JUnit4
public static junit.framework.Test suite() {
return new JUnit4TestAdapter(WilliamsRIndicatorTest.class);
}
}
|