within< T> function
Asserts that two values are within a certain distance from each other.
The distance is computed by a DistanceFunction.
If distanceFunction
is null, a standard distance function is used for the
runtimeType
of the from
argument. Standard functions are defined for
the following types:
- Color, whose distance is the maximum component-wise delta.
- Offset, whose distance is the Euclidean distance computed using the method Offset.distance.
- Rect, whose distance is the maximum component-wise delta.
- Size, whose distance is the Offset.distance of the offset computed as the difference between two sizes.
- int, whose distance is the absolute difference between two integers.
- double, whose distance is the absolute difference between two doubles.
See also:
- moreOrLessEquals, which is similar to this function, but specializes in
doubles and has an optional
epsilon
parameter. - closeTo, which specializes in numbers only.
Implementation
Matcher within<T>({
@required num distance,
@required T from,
DistanceFunction<T> distanceFunction,
}) {
distanceFunction ??= _kStandardDistanceFunctions[from.runtimeType];
if (distanceFunction == null) {
throw ArgumentError(
'The specified distanceFunction was null, and a standard distance '
'function was not found for type ${from.runtimeType} of the provided '
'`from` argument.'
);
}
return _IsWithinDistance<T>(distanceFunction, from, distance);
}