/** * MagnitudeRangeTest.java * * @author Philip Crotwell */ package edu.sc.seis.sod.subsetter.origin; import junit.framework.TestCase; import org.w3c.dom.Element; import edu.iris.Fissures.IfEvent.Magnitude; import edu.iris.Fissures.event.EventAttrImpl; import edu.iris.Fissures.event.OriginImpl; import edu.sc.seis.fissuresUtil.display.ParseRegions; import edu.sc.seis.fissuresUtil.mockFissures.IfEvent.MockOrigin; import edu.sc.seis.sod.XMLConfigUtil; public class MagnitudeRangeTest extends TestCase { public void testLessThan() throws Exception { Magnitude mag = new Magnitude(); mag.type = "mb"; mag.value = 6.0f; OriginImpl origin = MockOrigin.create(); origin.setMagnitudes(new Magnitude[] {mag}); EventAttrImpl eventAttr = new EventAttrImpl("test", ParseRegions.getInstance() .getGeographicRegion(7)); Element element = XMLConfigUtil.parse("<magnitudeRange>" + "<magType>mb</magType>" + "<min>5.7</min>" + "<lessThan>6.0</lessThan>" + "</magnitudeRange>"); MagnitudeRange range = new MagnitudeRange(element); mag.value=6.0f; assertFalse(mag.value + " " + mag.type + " (" + range.getMinValue()+ " - " + range.getMaxValue() + ") lessThan ", range.accept(null, eventAttr, origin).isSuccess()); mag.value = 5.9f; assertTrue(mag.value + " " + mag.type + " (" + range.getMinValue()+ " - " + range.getMaxValue() + ") lessThan ", range.accept(null, eventAttr, origin).isSuccess()); mag.value = 5.7f; assertTrue(mag.value + " " + mag.type + " (" + range.getMinValue()+ " - " + range.getMaxValue() + ") min ", range.accept(null, eventAttr, origin).isSuccess()); mag.value = 5.6f; assertFalse(mag.value + " " + mag.type + " (" + range.getMinValue()+ " - " + range.getMaxValue() + ") min ", range.accept(null, eventAttr, origin).isSuccess()); } public void testMag() throws Exception { Magnitude mag = new Magnitude(); mag.type = "mb"; mag.value = 5.0f; OriginImpl origin = MockOrigin.create(); origin.setMagnitudes(new Magnitude[] {mag}); EventAttrImpl eventAttr = new EventAttrImpl("test", ParseRegions.getInstance() .getGeographicRegion(7)); Element element = XMLConfigUtil.parse("<magnitudeRange>" + "<magType>mb</magType>" + "<min>5.0</min>" + "<max>6.0</max>" + "</magnitudeRange>"); MagnitudeRange range = new MagnitudeRange(element); String searchTypes = " types="; for(int i = 0; i < range.getSearchTypes().length; i++) { searchTypes += ", " + range.getSearchTypes()[i]; } assertTrue(mag.value + " " + mag.type + " " + range.getMinValue() + "<" + range.getMaxValue() + " " + searchTypes, range.accept(null, eventAttr, origin).isSuccess()); mag.type = "Ms"; assertFalse(mag.value + " " + mag.type + " " + range.getMinValue() + "<" + range.getMaxValue() + " " + searchTypes, range.accept(null, eventAttr, origin).isSuccess()); mag.value = 4.9f; assertFalse(mag.value + " " + mag.type + " " + range.getMinValue() + "<" + range.getMaxValue() + " " + searchTypes, range.accept(null, eventAttr, origin).isSuccess()); mag.value = 6.1f; assertFalse(mag.value + " " + mag.type + " " + range.getMinValue() + "<" + range.getMaxValue() + " " + searchTypes, range.accept(null, eventAttr, origin).isSuccess()); element = XMLConfigUtil.parse("<magnitudeRange>" + "<contributor>FAKE</contributor>" + "<min>5.0</min>" + "<max>6.0</max>" + "</magnitudeRange>"); range = new MagnitudeRange(element); String contributors = " contributors="; for(int i = 0; i < range.getContributors().length; i++) { contributors += ", " + range.getContributors()[i]; } mag.value = 5.0f; assertFalse(mag.value + " " + mag.type + " " + range.getMinValue() + "<" + range.getMaxValue() + " " + contributors, range.accept(null, eventAttr, origin).isSuccess()); mag.contributor = "FAKE"; assertTrue(mag.value + " " + mag.type + " " + range.getMinValue() + "<" + range.getMaxValue() + " " + contributors, range.accept(null, eventAttr, origin).isSuccess()); element = XMLConfigUtil.parse("<magnitudeRange>" + "<largest/>" + "<min>5.0</min>" + "<max>6.0</max>" + "</magnitudeRange>"); range = new MagnitudeRange(element); Magnitude mag2 = new Magnitude("Ms", 6.1f, "FAKE"); origin.setMagnitudes(new Magnitude[] {mag, mag2}); assertFalse(mag.value + " " + mag.type + " " + range.getMinValue() + "<" + range.getMaxValue() + " " + contributors, range.accept(null, eventAttr, origin).isSuccess()); mag2.value = 6.0f; assertTrue(mag.value + " " + mag.type + " " + range.getMinValue() + "<" + range.getMaxValue() + " " + contributors, range.accept(null, eventAttr, origin).isSuccess()); element = XMLConfigUtil.parse("<magnitudeRange>" + "<smallest/>" + "<min>5.0</min>" + "<max>6.0</max>" + "</magnitudeRange>"); range = new MagnitudeRange(element); mag.value = 4.9f; assertFalse(mag.value + " " + mag.type + " " + range.getMinValue() + "<" + range.getMaxValue() + " " + contributors, range.accept(null, eventAttr, origin).isSuccess()); mag.value = 5.0f; assertTrue(mag.value + " " + mag.type + " " + range.getMinValue() + "<" + range.getMaxValue() + " " + contributors, range.accept(null, eventAttr, origin).isSuccess()); } }