Skip to content

Commit 50d0ebb

Browse files
authored
Fix close_to assertion (elastic#72187)
Fixes the assertion to actually assert and adds a test to check that it actually does that.
1 parent 4169587 commit 50d0ebb

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

test/framework/src/main/java/org/elasticsearch/test/rest/yaml/section/CloseToAssertion.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public final double getError() {
6868
protected void doAssert(Object actualValue, Object expectedValue) {
6969
logger.trace("assert that [{}] is close to [{}] with error [{}] (field [{}])", actualValue, expectedValue, error, getField());
7070
if (actualValue instanceof Number) {
71-
assertThat(((Number) expectedValue).doubleValue(), closeTo((Double) expectedValue, error));
71+
assertThat(((Number) actualValue).doubleValue(), closeTo((Double) expectedValue, error));
7272
} else {
7373
throw new AssertionError("excpected a value close to " + expectedValue + " but got " + actualValue + ", which is not a number");
7474
}

test/framework/src/test/java/org/elasticsearch/test/rest/yaml/section/AssertionTests.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.util.List;
1919
import java.util.Map;
2020

21+
import static org.hamcrest.Matchers.containsString;
2122
import static org.hamcrest.Matchers.equalTo;
2223
import static org.hamcrest.Matchers.instanceOf;
2324
import static org.hamcrest.Matchers.notNullValue;
@@ -172,6 +173,15 @@ public void testCloseTo() throws Exception {
172173
assertThat(closeToAssertion.getExpectedValue(), instanceOf(Double.class));
173174
assertThat((Double) closeToAssertion.getExpectedValue(), equalTo(42.2));
174175
assertThat(closeToAssertion.getError(), equalTo(0.001));
176+
closeToAssertion.doAssert(42.2 + randomDoubleBetween(-0.001, 0.001, false), closeToAssertion.getExpectedValue());
177+
AssertionError e = expectThrows(
178+
AssertionError.class,
179+
() -> closeToAssertion.doAssert(
180+
42.2 + (randomBoolean() ? 1 : -1) * randomDoubleBetween(0.001001, 10, false),
181+
closeToAssertion.getExpectedValue()
182+
)
183+
);
184+
assertThat(e.getMessage(), containsString("Expected: a numeric value within <0.001> of <42.2>"));
175185
}
176186

177187
public void testInvalidCloseTo() throws Exception {

0 commit comments

Comments
 (0)