Skip to content

Commit 321fb54

Browse files
Lamine Idjeraouiandrross
authored andcommitted
some small changes based on the PR review
Signed-off-by: Lamine Idjeraoui <lidjeraoui@apple.com>
1 parent 45101dc commit 321fb54

6 files changed

Lines changed: 18 additions & 29 deletions

File tree

test/framework/src/main/java/org/opensearch/test/rest/yaml/section/Assertion.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,9 @@ static Object convertActualValue(Object actualValue, Object expectedValue) {
9292
return Double.parseDouble(actualValue.toString());
9393
} else if (expectedValue instanceof Integer) {
9494
try {
95-
return Integer.parseInt(actualValue.toString());
96-
} catch (NumberFormatException e) {
9795
return Long.parseLong(actualValue.toString());
96+
} catch (NumberFormatException e) {
97+
return Integer.parseInt(actualValue.toString());
9898
}
9999
} else if (expectedValue instanceof Long) {
100100
return Long.parseLong(actualValue.toString());

test/framework/src/main/java/org/opensearch/test/rest/yaml/section/GreaterThanAssertion.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
*/
4444
public class GreaterThanAssertion extends OrderingAssertion {
4545
public static GreaterThanAssertion parse(XContentParser parser) throws IOException {
46-
return parseCommon(parser, "gt", GreaterThanAssertion::new);
46+
return parseOrderingAssertion(parser, Relation.GT, GreaterThanAssertion::new);
4747
}
4848

4949
public GreaterThanAssertion(XContentLocation loc, String field, Object expected) {

test/framework/src/main/java/org/opensearch/test/rest/yaml/section/GreaterThanEqualToAssertion.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
*/
4545
public class GreaterThanEqualToAssertion extends OrderingAssertion {
4646
public static GreaterThanEqualToAssertion parse(XContentParser parser) throws IOException {
47-
return parseCommon(parser, "gte", GreaterThanEqualToAssertion::new);
47+
return parseOrderingAssertion(parser, Relation.GTE, GreaterThanEqualToAssertion::new);
4848
}
4949

5050
public GreaterThanEqualToAssertion(XContentLocation loc, String field, Object expected) {

test/framework/src/main/java/org/opensearch/test/rest/yaml/section/LessThanAssertion.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
*/
4545
public class LessThanAssertion extends OrderingAssertion {
4646
public static LessThanAssertion parse(XContentParser parser) throws IOException {
47-
return parseCommon(parser, "lt", LessThanAssertion::new);
47+
return parseOrderingAssertion(parser, Relation.LT, LessThanAssertion::new);
4848
}
4949

5050
public LessThanAssertion(XContentLocation loc, String field, Object expected) {

test/framework/src/main/java/org/opensearch/test/rest/yaml/section/LessThanOrEqualToAssertion.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
*/
4545
public class LessThanOrEqualToAssertion extends OrderingAssertion {
4646
public static LessThanOrEqualToAssertion parse(XContentParser parser) throws IOException {
47-
return parseCommon(parser, "lte", LessThanOrEqualToAssertion::new);
47+
return parseOrderingAssertion(parser, Relation.LTE, LessThanOrEqualToAssertion::new);
4848
}
4949

5050
public LessThanOrEqualToAssertion(XContentLocation loc, String field, Object expected) {

test/framework/src/main/java/org/opensearch/test/rest/yaml/section/OrderingAssertion.java

Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
/**
2424
* Base class for all ordering assertions (gt/gte/lt/lte).
2525
* It provides:
26-
* - shared YAML parse boilerplate (via {@link #parseCommon})
26+
* - shared YAML parse boilerplate (via {@link #parseOrderingAssertion})
2727
* - numeric normalization so both sides are Comparable of the same class
2828
* - common comparison logic based on a {@link Relation}
2929
*/
@@ -53,14 +53,17 @@ protected interface OrderingAssertionFactory<T extends OrderingAssertion> {
5353
/**
5454
* Common parser for {gt|gte|lt|lte}: { field: expectedValue }
5555
*/
56-
protected static <T extends OrderingAssertion> T parseCommon(XContentParser parser, String sectionName, OrderingAssertionFactory<T> factory)
57-
throws IOException {
56+
protected static <T extends OrderingAssertion> T parseOrderingAssertion(
57+
XContentParser parser,
58+
Relation relation,
59+
OrderingAssertionFactory<T> factory
60+
) throws IOException {
5861
XContentLocation location = parser.getTokenLocation();
5962
Tuple<String, Object> t = ParserUtils.parseTuple(parser);
6063
Object expected = t.v2();
6164
if (!(expected instanceof Comparable)) {
6265
throw new IllegalArgumentException(
63-
sectionName
66+
relation
6467
+ " section can only be used with objects that support natural ordering, found "
6568
+ expected.getClass().getSimpleName()
6669
);
@@ -122,28 +125,14 @@ private static String relationToString(Relation r) {
122125
* - Else return as-is (let Comparable semantics handle it).
123126
*/
124127
private static Tuple<Object, Object> normalizePair(Object a, Object b) {
125-
if (a instanceof Number && b instanceof Number) {
126-
boolean floaty = (a instanceof Float) || (a instanceof Double) || (b instanceof Float) || (b instanceof Double);
127-
if (floaty) {
128-
return Tuple.tuple(asDouble(a), asDouble(b));
128+
if (a instanceof Number aNum && b instanceof Number bNum) {
129+
boolean isFloating = aNum instanceof Float || aNum instanceof Double || bNum instanceof Float || bNum instanceof Double;
130+
if (isFloating) {
131+
return Tuple.tuple(aNum.doubleValue(), bNum.doubleValue());
129132
} else {
130-
return Tuple.tuple(asLong(a), asLong(b));
133+
return Tuple.tuple(aNum.longValue(), bNum.longValue());
131134
}
132135
}
133136
return Tuple.tuple(a, b);
134137
}
135-
136-
private static Double asDouble(Object n) {
137-
if (n instanceof Number) {
138-
return ((Number) n).doubleValue();
139-
}
140-
return Double.parseDouble(n.toString());
141-
}
142-
143-
private static Long asLong(Object n) {
144-
if (n instanceof Number) {
145-
return ((Number) n).longValue();
146-
}
147-
return Long.parseLong(n.toString());
148-
}
149138
}

0 commit comments

Comments
 (0)