package edu.sc.seis.sod.subsetter.availableData;
import junit.framework.TestCase;
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.sc.seis.fissuresUtil.mockFissures.IfNetwork.MockChannelId;
public class PercentCoverageTest extends TestCase {
public void testFullCoverage() {
PercentCoverage pc = new PercentCoverage(100);
MicroSecondDate end = new MicroSecondDate();
TimeInterval tenMinutes = new TimeInterval(10, UnitImpl.MINUTE);
MicroSecondDate start = end.subtract(tenMinutes);
RequestFilter fullTime = new RequestFilter(MockChannelId.createVerticalChanId(),
start.getFissuresTime(),
end.getFissuresTime());
RequestFilter[] fullArr = new RequestFilter[] {fullTime};
assertTrue(pc.accept(fullArr, fullArr));
assertFalse(pc.accept(fullArr, new RequestFilter[0]));
RequestFilter biggerThanFull = new RequestFilter(MockChannelId.createVerticalChanId(),
start.subtract(tenMinutes)
.getFissuresTime(),
end.getFissuresTime());
assertTrue(pc.accept(fullArr, new RequestFilter[] {biggerThanFull}));
}
public void testHalfCoverage() {
PercentCoverage pc = new PercentCoverage(50);
MicroSecondDate end = new MicroSecondDate();
TimeInterval tenMinutes = new TimeInterval(10, UnitImpl.MINUTE);
MicroSecondDate start = end.subtract(tenMinutes);
RequestFilter fullTime = new RequestFilter(MockChannelId.createVerticalChanId(),
start.getFissuresTime(),
end.getFissuresTime());
RequestFilter[] fullArr = new RequestFilter[] {fullTime};
assertTrue(pc.accept(fullArr, fullArr));
assertFalse(pc.accept(fullArr, new RequestFilter[0]));
RequestFilter biggerThanFull = new RequestFilter(MockChannelId.createVerticalChanId(),
start.subtract(tenMinutes)
.getFissuresTime(),
end.getFissuresTime());
assertTrue(pc.accept(fullArr, new RequestFilter[] {biggerThanFull}));
RequestFilter halfFull = new RequestFilter(MockChannelId.createVerticalChanId(),
start.add(new TimeInterval(2, UnitImpl.MINUTE))
.getFissuresTime(),
end.subtract(new TimeInterval(3, UnitImpl.MINUTE)).getFissuresTime());
assertTrue(pc.accept(fullArr, new RequestFilter[] {halfFull}));
}
}