Skip to content

Commit 833f5e4

Browse files
thomhurstagray
authored andcommitted
fix: prevent integer overflow in LongIsCloseToAssertion by widening to double
Cast `value` to `double` before subtraction and compare against `(double)_tolerance` so that extreme long values (e.g., MaxValue vs MinValue) no longer silently wrap around.
1 parent e2c26de commit 833f5e4

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

TUnit.Assertions/Conditions/NumericIsCloseToAssertion.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,9 +209,9 @@ protected override Task<AssertionResult> CheckAsync(EvaluationMetadata<long> met
209209
return Task.FromResult(AssertionResult.Failed($"threw {exception.GetType().Name}"));
210210
}
211211

212-
var diff = Math.Abs(value - _expected);
212+
var diff = Math.Abs((double)value - _expected);
213213

214-
if (diff <= _tolerance)
214+
if (diff <= (double)_tolerance)
215215
{
216216
return AssertionResult._passedTask;
217217
}

0 commit comments

Comments
 (0)