|
From: xanaot <xa...@us...> - 2007-10-17 17:38:11
|
Update of /cvsroot/tail/Tail/src/test/net/sf/tail/report/xls In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv28044/src/test/net/sf/tail/report/xls Added Files: WorkbookGeneratorTest.java SliceXlsGeneratorTest.java ReportXlsGeneratorTest.java TImeSeriesXlsGeneratorTest.java Log Message: Refatoração dos testes do Report XLS generator --- NEW FILE: WorkbookGeneratorTest.java --- package net.sf.tail.report.xls; import static org.junit.Assert.assertEquals; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import net.sf.tail.Indicator; import net.sf.tail.Operation; import net.sf.tail.OperationType; import net.sf.tail.Strategy; import net.sf.tail.Trade; import net.sf.tail.analysis.criteria.TotalProfitCriterion; import net.sf.tail.analysis.evaluator.Decision; import net.sf.tail.graphics.SeriesChart; import net.sf.tail.graphics.SeriesDataset; import net.sf.tail.indicator.simple.ClosePriceIndicator; import net.sf.tail.indicator.tracker.EMAIndicator; import net.sf.tail.report.Report; import net.sf.tail.runner.HistoryRunner; import net.sf.tail.sample.SampleTimeSeries; import net.sf.tail.series.FullyMemorizedSlicer; import net.sf.tail.strategy.FakeStrategy; import net.sf.tail.strategy.IndicatorCrossedIndicatorStrategy; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.joda.time.Period; import org.junit.After; import org.junit.Before; import org.junit.Test; public class WorkbookGeneratorTest { private WorkbookGenerator Workbook; private final String CHAR_DIST = "./"; private Report report; private Period period; private List<File> charts; private HSSFWorkbook book; @Before public void setUp() throws IOException { Workbook = new WorkbookGenerator(); SampleTimeSeries series = new SampleTimeSeries(); ArrayList<Trade> trades = new ArrayList<Trade>(); trades.add(new Trade(new Operation(0, OperationType.BUY), new Operation(2, OperationType.SELL))); trades.add(new Trade(new Operation(3, OperationType.BUY), new Operation(5, OperationType.SELL))); ArrayList<Decision> decisions = new ArrayList<Decision>(); Decision decision = new Decision(new FakeStrategy(new Operation[0], new Operation[0]), series, new TotalProfitCriterion(), trades, new HistoryRunner(OperationType.BUY)); decisions.add(decision); period = new Period().withYears(1); FullyMemorizedSlicer slicer = new FullyMemorizedSlicer(series, period); Set<Strategy> strategies = new HashSet<Strategy>(); Indicator<Double> close = new ClosePriceIndicator(series); List<Indicator<? extends Number>> indicators = new ArrayList<Indicator<? extends Number>>(); for (int i = 4; i < 5; i++) { Indicator<Double> tracker = new EMAIndicator(close, i); Strategy strategy = new IndicatorCrossedIndicatorStrategy(close, tracker); indicators.add(tracker); strategies.add(strategy); } SeriesDataset seriesDataset = new SeriesDataset(series, indicators, series.getBegin(), series.getEnd()); SeriesChart seriesChart = new SeriesChart(seriesDataset); JFreeChart jfreechart = seriesChart.createChart(""); String imagePath = CHAR_DIST + File.separatorChar + decision.getFileName() + ".png"; File file = new File(imagePath); ChartUtilities.saveChartAsPNG(file, jfreechart, 800, 300); charts = new ArrayList<File>(); for (int i = 0; i < decisions.size(); i++) { charts.add(file); } charts.add(file); report = new Report(strategies, new TotalProfitCriterion(), slicer, decisions); book = Workbook.generate(report, period, charts); } @Test public void testGenerateWorkbook() throws IOException { assertEquals(3, book.getNumberOfSheets()); } @After public void tearDown() { for (File f : charts) { f.delete(); } } } --- NEW FILE: SliceXlsGeneratorTest.java --- package net.sf.tail.report.xls; import static org.junit.Assert.assertEquals; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import net.sf.tail.Indicator; import net.sf.tail.Operation; import net.sf.tail.OperationType; import net.sf.tail.Strategy; import net.sf.tail.Trade; import net.sf.tail.analysis.criteria.TotalProfitCriterion; import net.sf.tail.analysis.evaluator.Decision; import net.sf.tail.graphics.SeriesChart; import net.sf.tail.graphics.SeriesDataset; import net.sf.tail.indicator.simple.ClosePriceIndicator; import net.sf.tail.indicator.tracker.EMAIndicator; import net.sf.tail.report.Report; import net.sf.tail.runner.HistoryRunner; import net.sf.tail.sample.SampleTimeSeries; import net.sf.tail.series.FullyMemorizedSlicer; import net.sf.tail.strategy.FakeStrategy; import net.sf.tail.strategy.IndicatorCrossedIndicatorStrategy; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.joda.time.Period; import org.junit.After; import org.junit.Before; import org.junit.Test; public class SliceXlsGeneratorTest { private SliceXlsGenerator XLSSlicerSeries; private Report report; private Period period; private List<File> charts; private List<HSSFSheet> sheet; private final String CHAR_DIST = "./"; @Before public void setUp() throws IOException { XLSSlicerSeries = new SliceXlsGenerator(new HSSFWorkbook()); SampleTimeSeries series = new SampleTimeSeries(); ArrayList<Trade> trades = new ArrayList<Trade>(); trades.add(new Trade(new Operation(0, OperationType.BUY), new Operation(2, OperationType.SELL))); trades.add(new Trade(new Operation(3, OperationType.BUY), new Operation(5, OperationType.SELL))); ArrayList<Decision> decisions = new ArrayList<Decision>(); Decision decision = new Decision(new FakeStrategy(new Operation[0], new Operation[0]), series, new TotalProfitCriterion(), trades, new HistoryRunner(OperationType.BUY)); decisions.add(decision); period = new Period().withYears(1); FullyMemorizedSlicer slicer = new FullyMemorizedSlicer(series, period); Set<Strategy> strategies = new HashSet<Strategy>(); List<Indicator<? extends Number>> indicators = new ArrayList<Indicator<? extends Number>>(); Indicator<Double> close = new ClosePriceIndicator(series); for (int i = 4; i < 5; i++) { Indicator<Double> tracker = new EMAIndicator(close, i); Strategy strategy = new IndicatorCrossedIndicatorStrategy(close, tracker); indicators.add(tracker); strategies.add(strategy); } SeriesDataset seriesDataset = new SeriesDataset(series, indicators, series.getBegin(), series.getEnd()); SeriesChart seriesChart = new SeriesChart(seriesDataset); JFreeChart jfreechart = seriesChart.createChart(""); String imagePath = CHAR_DIST + File.separatorChar + decision.getFileName() + ".png"; File file = new File(imagePath); ChartUtilities.saveChartAsPNG(file, jfreechart, 800, 300); charts = new ArrayList<File>(); for (int i = 0; i < decisions.size(); i++) { charts.add(file); } report = new Report(strategies, new TotalProfitCriterion(), slicer, decisions); sheet = XLSSlicerSeries.generate(report, period, charts); } @Test public void testGenerateSlicer() throws IOException { assertEquals(21, sheet.get(0).getLastRowNum()); } @After public void tearDown() { for (File f : charts) { f.delete(); } } } --- NEW FILE: ReportXlsGeneratorTest.java --- package net.sf.tail.report.xls; import static org.junit.Assert.assertEquals; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; import net.sf.tail.Indicator; import net.sf.tail.Operation; import net.sf.tail.OperationType; import net.sf.tail.Strategy; import net.sf.tail.Trade; import net.sf.tail.analysis.criteria.TotalProfitCriterion; import net.sf.tail.analysis.evaluator.Decision; import net.sf.tail.graphics.SeriesChart; import net.sf.tail.graphics.SeriesDataset; import net.sf.tail.indicator.simple.ClosePriceIndicator; import net.sf.tail.indicator.tracker.EMAIndicator; import net.sf.tail.report.Report; import net.sf.tail.runner.HistoryRunner; import net.sf.tail.sample.SampleTimeSeries; import net.sf.tail.series.FullyMemorizedSlicer; import net.sf.tail.strategy.FakeStrategy; import net.sf.tail.strategy.IndicatorCrossedIndicatorStrategy; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.jfree.chart.ChartUtilities; import org.jfree.chart.JFreeChart; import org.joda.time.Period; import org.junit.After; import org.junit.Before; import org.junit.Test; public class ReportXlsGeneratorTest { private final String CHAR_DIST = "./"; private ReportXlsGenerator XLSReportSeries; private Report report; private Period period; private List<File> charts; private List<HSSFSheet> sheet; @Before public void setUp() throws IOException { XLSReportSeries = new ReportXlsGenerator(new HSSFWorkbook()); SampleTimeSeries series = new SampleTimeSeries(); ArrayList<Trade> trades = new ArrayList<Trade>(); trades.add(new Trade(new Operation(0, OperationType.BUY), new Operation(2, OperationType.SELL))); trades.add(new Trade(new Operation(3, OperationType.BUY), new Operation(5, OperationType.SELL))); ArrayList<Decision> decisions = new ArrayList<Decision>(); Decision decision = new Decision(new FakeStrategy(new Operation[0], new Operation[0]), series, new TotalProfitCriterion(), trades, new HistoryRunner(OperationType.BUY)); decisions.add(decision); period = new Period().withYears(1); FullyMemorizedSlicer slicer = new FullyMemorizedSlicer(series, period); Set<Strategy> strategies = new HashSet<Strategy>(); List<Indicator<? extends Number>> indicators = new ArrayList<Indicator<? extends Number>>(); Indicator<Double> close = new ClosePriceIndicator(series); for (int i = 4; i < 5; i++) { Indicator<Double> tracker = new EMAIndicator(close, i); Strategy strategy = new IndicatorCrossedIndicatorStrategy(close, tracker); indicators.add(tracker); strategies.add(strategy); } SeriesDataset seriesDataset = new SeriesDataset(series, indicators, series.getBegin(), series.getEnd()); SeriesChart seriesChart = new SeriesChart(seriesDataset); JFreeChart jfreechart = seriesChart.createChart(""); String imagePath = CHAR_DIST + File.separatorChar + decision.getFileName() + ".png"; File file = new File(imagePath); ChartUtilities.saveChartAsPNG(file, jfreechart, 800, 300); charts = new ArrayList<File>(); for (int i = 0; i < decisions.size(); i++) { charts.add(file); } report = new Report(strategies, new TotalProfitCriterion(), slicer, decisions); sheet = XLSReportSeries.generate(report, period, charts); } @Test public void testGenerateReport() throws IOException { assertEquals(21, sheet.get(0).getLastRowNum()); } @After public void tearDown() { for (File f : charts) { f.delete(); } } } --- NEW FILE: TImeSeriesXlsGeneratorTest.java --- package net.sf.tail.report.xls; import java.io.IOException; import java.util.ArrayList; import java.util.HashSet; import java.util.Set; import net.sf.tail.Indicator; import net.sf.tail.Operation; import net.sf.tail.OperationType; import net.sf.tail.Strategy; import net.sf.tail.Trade; import net.sf.tail.analysis.criteria.TotalProfitCriterion; import net.sf.tail.analysis.evaluator.Decision; import net.sf.tail.indicator.simple.ClosePriceIndicator; import net.sf.tail.indicator.tracker.EMAIndicator; import net.sf.tail.report.Report; import net.sf.tail.runner.HistoryRunner; import net.sf.tail.sample.SampleTimeSeries; import net.sf.tail.series.FullyMemorizedSlicer; import net.sf.tail.strategy.FakeStrategy; import net.sf.tail.strategy.IndicatorCrossedIndicatorStrategy; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.joda.time.Period; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.*; public class TImeSeriesXlsGeneratorTest { private TimeSeriesXlsGenerator XLStimeSeries; @Before public void setUp() { XLStimeSeries = new TimeSeriesXlsGenerator(new HSSFWorkbook()); } @Test public void testGenerateTimeSeriesXls() throws IOException { SampleTimeSeries series = new SampleTimeSeries(); ArrayList<Trade> trades = new ArrayList<Trade>(); trades.add(new Trade(new Operation(0, OperationType.BUY), new Operation(2, OperationType.SELL))); trades.add(new Trade(new Operation(3, OperationType.BUY), new Operation(5, OperationType.SELL))); ArrayList<Decision> decisions = new ArrayList<Decision>(); Decision decision = new Decision(new FakeStrategy(new Operation[0], new Operation[0]), series, new TotalProfitCriterion(), trades, new HistoryRunner(OperationType.BUY)); decisions.add(decision); FullyMemorizedSlicer slicer = new FullyMemorizedSlicer(series, new Period().withYears(1)); Set<Strategy> strategies = new HashSet<Strategy>(); Indicator<Double> close = new ClosePriceIndicator(series); for (int i = 4; i < 5; i++) { Indicator<Double> tracker = new EMAIndicator(close, i); Strategy strategy = new IndicatorCrossedIndicatorStrategy(close, tracker); strategies.add(strategy); } Report report = new Report(strategies, new TotalProfitCriterion(), slicer, decisions); HSSFSheet sheet = XLStimeSeries.generate(report); assertEquals(10, sheet.getPhysicalNumberOfRows()); } } |