Skip to content

Commit 50dcce5

Browse files
author
timronan
committed
Fix bugs to address #110 and 109.
1 parent c17910c commit 50dcce5

5 files changed

Lines changed: 27 additions & 13 deletions

File tree

src/main/java/edu/iris/dmc/CommandLine.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -171,10 +171,10 @@ public static CommandLine parse(String[] args) throws CommandLineParseException
171171
.map(Integer::parseInt).mapToInt(item -> item).toArray();
172172
i = i + 1;
173173
}
174-
} else if ("--show-rules".equalsIgnoreCase(arg)) {
175-
commandLine.showRules = true;
176-
} else if ("--show-units".equalsIgnoreCase(arg)) {
177-
commandLine.showUnits = true;
174+
} else if ("--rules".equalsIgnoreCase(arg)) {
175+
throw new CommandLineParseException(String.format("--rules must be the only input argument. "));
176+
} else if ("--units".equalsIgnoreCase(arg)) {
177+
throw new CommandLineParseException(String.format("--units must be the only input argument. "));
178178
} else if ("--continue-on-error".equalsIgnoreCase(arg)) {
179179
commandLine.setContinueError(true);
180180
//commandLine.continueError = true;

src/main/java/edu/iris/dmc/station/conditions/InstrumentCodeUnitsCondition.java

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import edu.iris.dmc.fdsn.station.model.Station;
77
import edu.iris.dmc.station.exceptions.StationxmlException;
88
import edu.iris.dmc.station.rules.Message;
9+
import edu.iris.dmc.station.rules.NestedMessage;
910
import edu.iris.dmc.station.rules.Result;
1011

1112
public class InstrumentCodeUnitsCondition extends AbstractCondition {
@@ -27,6 +28,8 @@ public Message evaluate(Station station) {
2728

2829
@Override
2930
public Message evaluate(Channel channel) {
31+
NestedMessage nestedMessage = new NestedMessage();
32+
boolean returnmessage = false;
3033
String inputUnit ="";
3134
String code = channel.getCode();
3235
try {
@@ -69,17 +72,23 @@ public Message evaluate(Channel channel) {
6972

7073
if("HLMN".indexOf(code.charAt(1)) >=0 | "hlmn".indexOf(code.charAt(1)) >=0) {
7174
if(!inputUnit.toLowerCase().contains("m/s")) {
72-
return Result.warning("Instument code " +code.charAt(1)+" should have stage 1 input units similar to *m/s*");
73-
}
75+
nestedMessage.add(Result.warning("Instrument code " +code.charAt(1)+" should have stage 1 input units similar to *m/s* but input units are "+inputUnit));
76+
returnmessage=true;
77+
}
7478
if(!outputUnit.toLowerCase().contains("count")) {
75-
return Result.warning("Instument code " +code.charAt(1)+ " should have stage last output units similar to count*");
76-
}
79+
nestedMessage.add(Result.warning("Instrument code " +code.charAt(1)+ " should have stage last output units similar to count* but output units are "+outputUnit));
80+
returnmessage=true;
81+
}
7782

7883
}
7984
}catch(Exception e) {
8085

8186
}
82-
return Result.success();
87+
if(returnmessage==true) {
88+
return nestedMessage;
89+
}else {
90+
return Result.success();
91+
}
8392
}
8493

8594
}

src/test/java/edu/iris/dmc/station/RuleEngineServiceTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@ public void rule321() throws Exception {
210210

211211
Set<Message> s = m.get(321);
212212
assertNotNull(s);
213-
assertEquals(1, s.size());
213+
assertEquals(2, s.size());
214214
Message message = s.iterator().next();
215215
assertEquals(321, message.getRule().getId());
216216
}

src/test/java/edu/iris/dmc/station/conditions/Condition321Test.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import edu.iris.dmc.fdsn.station.model.Station;
1515
import edu.iris.dmc.station.RuleEngineServiceTest;
1616
import edu.iris.dmc.station.rules.Message;
17+
import edu.iris.dmc.station.rules.NestedMessage;
1718

1819
public class Condition321Test {
1920

@@ -35,8 +36,13 @@ public void azimuthfail() throws Exception {
3536

3637
InstrumentCodeUnitsCondition condition = new InstrumentCodeUnitsCondition(true, "");
3738
Message result = condition.evaluate(c);
38-
System.out.println(result);
39-
assertTrue(result instanceof edu.iris.dmc.station.rules.Warning);
39+
NestedMessage nestedMessage=(NestedMessage)result;
40+
System.out.println(nestedMessage.getNestedMessages().get(0).getDescription());
41+
System.out.println(nestedMessage.getNestedMessages().get(1).getDescription());
42+
43+
assertTrue(nestedMessage.getNestedMessages().get(0).getDescription().contains("Instrument code H should have stage 1 input units similar to *m/s* but input units are PA"));
44+
assertTrue(nestedMessage.getNestedMessages().get(1).getDescription().contains("Instrument code H should have stage last output units similar to count* but output units are m/s"));
45+
4046
}
4147

4248
}

src/test/resources/F1_321.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
<Longitude>-122.31332</Longitude>
2626
<Elevation>225.879999</Elevation>
2727
<Depth>0</Depth>
28-
<Azimuth>325</Azimuth>
2928
<Dip>0</Dip>
3029
<Type>CONTINUOUS</Type>
3130
<Type>GEOPHYSICAL</Type>

0 commit comments

Comments
 (0)