Skip to content

Commit 44411c0

Browse files
committed
tolerance for relational conditions (descriptions)
1 parent 384784d commit 44411c0

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

src/main/java/net/itarray/automotion/internal/properties/Between.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
import net.itarray.automotion.validation.properties.Condition;
88
import net.itarray.automotion.validation.properties.Expression;
99

10+
import static java.lang.String.format;
11+
import static net.itarray.automotion.internal.geometry.Scalar.scalar;
12+
1013
public class Between implements Condition<Scalar> {
1114

1215
private final Condition<Scalar> lowerLimit;
@@ -28,12 +31,16 @@ public <V extends MetricSpace<V>> boolean isSatisfiedOn(Scalar value, Context co
2831

2932
@Override
3033
public <V extends MetricSpace<V>> String getDescription(Context context, ExtendGiving<V> direction) {
31-
return String.format("between %s and %s", lowerLimitExpression.getDescription(context, direction), upperLimitExpression.getDescription(context, direction));
34+
return format(
35+
"between %s and %s%s",
36+
lowerLimitExpression.getDescription(context, direction),
37+
upperLimitExpression.getDescription(context, direction),
38+
context.getTolerance().equals(scalar(0)) ? "" : format("(~%s)", context.getTolerance()));
3239
}
3340

3441
@Override
3542
public String toString() {
36-
return String.format("between[%s, %s]", lowerLimit, upperLimit);
43+
return format("between[%s, %s]", lowerLimit, upperLimit);
3744
}
3845

3946

src/main/java/net/itarray/automotion/internal/properties/BinaryScalarConditionWithFixedOperand.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88

99
import java.util.function.BiPredicate;
1010

11+
import static java.lang.String.format;
12+
import static net.itarray.automotion.internal.geometry.Scalar.scalar;
1113
import static org.apache.commons.lang3.text.WordUtils.uncapitalize;
1214

1315

@@ -34,12 +36,13 @@ public <V extends MetricSpace<V>> boolean isSatisfiedOn(Scalar value, Context co
3436

3537
@Override
3638
public <V extends MetricSpace<V>> String getDescription(Context context, ExtendGiving<V> direction) {
37-
return String.format(toStringFormat, fixedOperand.getDescription(context, direction));
39+
String tolerance = context.getTolerance().equals(scalar(0)) ? "" : format("(~%s)", context.getTolerance());
40+
return format(toStringFormat, fixedOperand.getDescription(context, direction)) + tolerance;
3841
}
3942

4043
@Override
4144
public String toString() {
42-
return String.format("%s(%s)", uncapitalize(getClass().getSimpleName()), fixedOperand); // todo: tolerance
45+
return format("%s(%s)", uncapitalize(getClass().getSimpleName()), fixedOperand);
4346
}
4447

4548

0 commit comments

Comments
 (0)