Index: packages/matcher/lib/src/numeric_matchers.dart |
diff --git a/packages/matcher/lib/src/numeric_matchers.dart b/packages/matcher/lib/src/numeric_matchers.dart |
index e8651de0e7b44bcad0fc5aaeac92d4c3211865d1..c40539183887f1363617d3e2d4efe3ddda30d346 100644 |
--- a/packages/matcher/lib/src/numeric_matchers.dart |
+++ b/packages/matcher/lib/src/numeric_matchers.dart |
@@ -17,11 +17,13 @@ class _IsCloseTo extends Matcher { |
const _IsCloseTo(this._value, this._delta); |
bool matches(item, Map matchState) { |
- if (item is! num) return false; |
- |
- var diff = item - _value; |
- if (diff < 0) diff = -diff; |
- return (diff <= _delta); |
+ if (item is num) { |
+ var diff = item - _value; |
+ if (diff < 0) diff = -diff; |
+ return (diff <= _delta); |
+ } else { |
+ return false; |
+ } |
} |
Description describe(Description description) => description |
@@ -32,12 +34,12 @@ class _IsCloseTo extends Matcher { |
Description describeMismatch( |
item, Description mismatchDescription, Map matchState, bool verbose) { |
- if (item is! num) { |
- return mismatchDescription.add(' not numeric'); |
- } else { |
+ if (item is num) { |
var diff = item - _value; |
if (diff < 0) diff = -diff; |
return mismatchDescription.add(' differs by ').addDescriptionOf(diff); |
+ } else { |
+ return mismatchDescription.add(' not numeric'); |
} |
} |
} |
@@ -70,19 +72,20 @@ class _InRange extends Matcher { |
this._low, this._high, this._lowMatchValue, this._highMatchValue); |
bool matches(value, Map matchState) { |
- if (value is! num) { |
- return false; |
- } |
- if (value < _low || value > _high) { |
+ if (value is num) { |
+ if (value < _low || value > _high) { |
+ return false; |
+ } |
+ if (value == _low) { |
+ return _lowMatchValue; |
+ } |
+ if (value == _high) { |
+ return _highMatchValue; |
+ } |
+ return true; |
+ } else { |
return false; |
} |
- if (value == _low) { |
- return _lowMatchValue; |
- } |
- if (value == _high) { |
- return _highMatchValue; |
- } |
- return true; |
} |
Description describe(Description description) => |