|
From: xanaot <xa...@us...> - 2007-10-08 19:15:28
|
Update of /cvsroot/tail/Tail/src/java/net/sf/tail/series In directory sc8-pr-cvs10.sourceforge.net:/tmp/cvs-serv3108/src/java/net/sf/tail/series Modified Files: PartialMemorizedSlicer.java RegularSlicer.java Log Message: Arrumando testes do Serializer. Refatoração da classe PartialMemorizedSlicer quando periodsPerSlice menor que 1 e testes da classe Index: RegularSlicer.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/series/RegularSlicer.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** RegularSlicer.java 3 Oct 2007 23:56:58 -0000 1.3 --- RegularSlicer.java 8 Oct 2007 19:15:28 -0000 1.4 *************** *** 16,18 **** --- 16,19 ---- this(series, period, series.getTick(0).getDate()); } + } Index: PartialMemorizedSlicer.java =================================================================== RCS file: /cvsroot/tail/Tail/src/java/net/sf/tail/series/PartialMemorizedSlicer.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** PartialMemorizedSlicer.java 5 Oct 2007 20:55:00 -0000 1.4 --- PartialMemorizedSlicer.java 8 Oct 2007 19:15:28 -0000 1.5 *************** *** 13,17 **** import org.joda.time.Period; ! public class PartialMemorizedSlicer implements TimeSeriesSlicer{ protected transient TimeSeries series; --- 13,17 ---- import org.joda.time.Period; ! public class PartialMemorizedSlicer implements TimeSeriesSlicer { protected transient TimeSeries series; *************** *** 21,41 **** protected DateTime periodBegin; ! protected int periodsPerSlice; private transient static Logger LOG = Logger.getLogger(PartialMemorizedSlicer.class); ! ! public PartialMemorizedSlicer(TimeSeries series, Period period,DateTime periodBegin, int periodsPerSlice) { ! int index = series.getBegin(); ! ! if(periodBegin.isBefore(series.getTick(index).getDate())) periodBegin = series.getTick(series.getBegin()).getDate(); Interval interval = new Interval(periodBegin, periodBegin.plus(period)); ! ! while (series.getTick(index).getDate().isBefore(interval.getStart())) index++; ! ! this.series = new ConstrainedTimeSeries(series, index, series.getEnd()); this.period = period; this.splittedSeries = new ArrayList<TimeSeries>(); --- 21,45 ---- protected DateTime periodBegin; ! protected int periodsPerSlice; private transient static Logger LOG = Logger.getLogger(PartialMemorizedSlicer.class); ! ! public PartialMemorizedSlicer(TimeSeries series, Period period, DateTime periodBegin, int periodsPerSlice) { ! if(periodsPerSlice < 1) ! throw new IllegalArgumentException("Periods per slice must be greater than 1"); + int index = series.getBegin(); + + DateTime inicialSeriesDate = series.getTick(index).getDate(); + if (periodBegin.isBefore(inicialSeriesDate) && !periodBegin.equals(inicialSeriesDate)) + periodBegin = series.getTick(series.getBegin()).getDate(); + Interval interval = new Interval(periodBegin, periodBegin.plus(period)); ! while (series.getTick(index).getDate().isBefore(interval.getStart())) index++; ! ! this.series = new ConstrainedTimeSeries(series, index, series.getEnd()); this.period = period; this.splittedSeries = new ArrayList<TimeSeries>(); *************** *** 44,48 **** split(); } ! public PartialMemorizedSlicer(TimeSeries series, Period period, int periodsPerSlice) { this(series, period, series.getTick(series.getBegin()).getDate(), periodsPerSlice); --- 48,52 ---- split(); } ! public PartialMemorizedSlicer(TimeSeries series, Period period, int periodsPerSlice) { this(series, period, series.getTick(series.getBegin()).getDate(), periodsPerSlice); *************** *** 60,64 **** int sliceBeginIndex = index; ! List<Integer> begins = new ArrayList<Integer>(); begins.add(index); while (index <= series.getEnd()) { --- 64,68 ---- int sliceBeginIndex = index; ! List<Integer> begins = new ArrayList<Integer>(); begins.add(index); while (index <= series.getEnd()) { *************** *** 70,74 **** LOG.debug(String.format("Interval %s before %s ", interval, series.getTick(index).getDate())); ! sliceBeginIndex = index; begins.add(sliceBeginIndex); --- 74,78 ---- LOG.debug(String.format("Interval %s before %s ", interval, series.getTick(index).getDate())); ! sliceBeginIndex = index; begins.add(sliceBeginIndex); *************** *** 92,97 **** } public TimeSeriesSlicer applyForSeries(TimeSeries series) { ! return new PartialMemorizedSlicer(series, this.period, this.periodBegin, this.periodsPerSlice); } --- 96,105 ---- } + public TimeSeriesSlicer applyForSeries(TimeSeries series, DateTime periodBegin) { + return new PartialMemorizedSlicer(series, this.period, periodBegin, this.periodsPerSlice); + } + public TimeSeriesSlicer applyForSeries(TimeSeries series) { ! return applyForSeries(series, this.periodBegin); } *************** *** 136,140 **** return sPeriod.substring(0, sPeriod.length() - 2); } ! @Override public int hashCode() { --- 144,148 ---- return sPeriod.substring(0, sPeriod.length() - 2); } ! @Override public int hashCode() { *************** *** 163,175 **** if (other.periodBegin != null) return false; ! } else if (!periodBegin.equals(other.periodBegin)) return false; return true; } ! ! ! ! ! } --- 171,185 ---- if (other.periodBegin != null) return false; ! } else if (!periodBegin.equals(other.periodBegin)) { ! System.out.println(periodBegin.toString()); ! System.out.println(other.periodBegin.toString()); return false; + } return true; } ! public DateTime getPeriodBegin() { ! return periodBegin; ! } ! } |