package edu.sc.seis.sod.process.waveform; import edu.iris.Fissures.Time; import edu.iris.Fissures.IfSeismogramDC.RequestFilter; import edu.iris.Fissures.model.MicroSecondDate; import edu.iris.Fissures.model.TimeInterval; import edu.iris.Fissures.model.UnitImpl; import edu.iris.Fissures.seismogramDC.LocalSeismogramImpl; import edu.sc.seis.fissuresUtil.mockFissures.IfSeismogramDC.MockSeismogram; /** * @author groves Created on Sep 8, 2004 */ public class CoverageTestData { private CoverageTestData(LocalSeismogramImpl[] seis, Time begin, Time end) { this.seis = seis; request = new RequestFilter[] {new RequestFilter(null, begin, end)}; } public static CoverageTestData makeTooLateBeginAndTooEarlyEnd() { Time rfBegin = spikeBegin.add(ONE_SECOND).getFissuresTime(); Time rfEnd = spikeEnd.add(ONE_SECOND).getFissuresTime(); return new CoverageTestData(spikeArray, rfBegin, rfEnd); } public static CoverageTestData makeTooEarlyEndTime() { Time rfEnd = spikeEnd.add(ONE_SECOND).getFissuresTime(); return new CoverageTestData(spikeArray, timeSpikeBegin, rfEnd); } public static CoverageTestData makeEqualTimes() { return new CoverageTestData(spikeArray, timeSpikeBegin, timeSpikeEnd); } public static CoverageTestData makeOverage() { Time rfBegin = spikeBegin.add(ONE_SECOND).getFissuresTime(); Time rfEnd = spikeEnd.subtract(ONE_SECOND).getFissuresTime(); return new CoverageTestData(spikeArray, rfBegin, rfEnd); } public static CoverageTestData makeNoData() { return new CoverageTestData(new LocalSeismogramImpl[0], timeSpikeBegin, timeSpikeEnd); } public static CoverageTestData makeCompleteMiss() { Time rfBegin = spikeBegin.add(THREE_HOURS).getFissuresTime(); Time rfEnd = spikeEnd.add(THREE_HOURS).getFissuresTime(); return new CoverageTestData(new LocalSeismogramImpl[0], rfBegin, rfEnd); } public static CoverageTestData makeContigousData() { LocalSeismogramImpl firstBit = spikeSeis; TimeInterval period = spikeSeis.getSampling().getPeriod(); MicroSecondDate spikeSeisEnd = spikeSeis.getEndTime(); MicroSecondDate contigousDataStart = new MicroSecondDate(spikeSeisEnd.add(period)); LocalSeismogramImpl contigousBit = MockSeismogram.createSpike(contigousDataStart); LocalSeismogramImpl[] data = new LocalSeismogramImpl[] {firstBit, contigousBit}; return new CoverageTestData(data, timeSpikeBegin, timeSpikeEnd); } public static CoverageTestData makeSlightlySeperatedData(){ LocalSeismogramImpl firstBit = spikeSeis; TimeInterval twoPeriod = (TimeInterval)spikeSeis.getSampling().getPeriod().multiplyBy(2); MicroSecondDate spikeSeisEnd = spikeSeis.getEndTime(); MicroSecondDate uncontigousDataStart = new MicroSecondDate(spikeSeisEnd.add(twoPeriod)); LocalSeismogramImpl uncontigousBit = MockSeismogram.createSpike(uncontigousDataStart); LocalSeismogramImpl[] data = new LocalSeismogramImpl[] {firstBit, uncontigousBit}; return new CoverageTestData(data, timeSpikeBegin, timeSpikeEnd); } public static CoverageTestData makeOverlappingData(){ LocalSeismogramImpl firstBit = spikeSeis; MicroSecondDate spikeSeisEnd = spikeSeis.getEndTime(); MicroSecondDate otherDataStart = new MicroSecondDate(spikeSeisEnd.subtract(ONE_SECOND)); LocalSeismogramImpl otherBit = MockSeismogram.createSpike(otherDataStart); LocalSeismogramImpl[] data = new LocalSeismogramImpl[] {firstBit, otherBit}; return new CoverageTestData(data, timeSpikeBegin, timeSpikeEnd); } private static LocalSeismogramImpl spikeSeis = MockSeismogram.createSpike(new MicroSecondDate(20)); private static LocalSeismogramImpl[] spikeArray = {spikeSeis}; private static MicroSecondDate spikeBegin = spikeSeis.getBeginTime(); private static MicroSecondDate spikeEnd = spikeSeis.getEndTime(); private static Time timeSpikeBegin = spikeBegin.getFissuresTime(); private static Time timeSpikeEnd = spikeEnd.getFissuresTime(); public LocalSeismogramImpl[] seis; public RequestFilter[] request; private static final TimeInterval ONE_SECOND = new TimeInterval(1, UnitImpl.SECOND); private static final TimeInterval THREE_HOURS = new TimeInterval(3, UnitImpl.HOUR); }