dartfmt
diff --git a/lib/src/patterns.dart b/lib/src/patterns.dart
index 4e57ec9..c4d75d4 100644
--- a/lib/src/patterns.dart
+++ b/lib/src/patterns.dart
@@ -3,10 +3,9 @@
// BSD-style license that can be found in the LICENSE file.
/// Regex that matches a version number at the beginning of a string.
-final START_VERSION = new RegExp(
- r'^' // Start at beginning.
- r'(\d+).(\d+).(\d+)' // Version number.
- r'(-([0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*))?' // Pre-release.
+final START_VERSION = new RegExp(r'^' // Start at beginning.
+ r'(\d+).(\d+).(\d+)' // Version number.
+ r'(-([0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*))?' // Pre-release.
r'(\+([0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*))?'); // Build.
/// Like [START_VERSION] but matches the entire string.
diff --git a/lib/src/version.dart b/lib/src/version.dart
index 2d43a1a..6665873 100644
--- a/lib/src/version.dart
+++ b/lib/src/version.dart
@@ -89,15 +89,15 @@
bool get includeMax => true;
Version._(this.major, this.minor, this.patch, String preRelease, String build,
- this._text)
+ this._text)
: preRelease = preRelease == null ? [] : _splitParts(preRelease),
build = build == null ? [] : _splitParts(build) {
- if (major < 0) throw new ArgumentError(
- 'Major version must be non-negative.');
- if (minor < 0) throw new ArgumentError(
- 'Minor version must be non-negative.');
- if (patch < 0) throw new ArgumentError(
- 'Patch version must be non-negative.');
+ if (major < 0)
+ throw new ArgumentError('Major version must be non-negative.');
+ if (minor < 0)
+ throw new ArgumentError('Minor version must be non-negative.');
+ if (patch < 0)
+ throw new ArgumentError('Patch version must be non-negative.');
}
/// Creates a new [Version] object.
@@ -137,7 +137,8 @@
static Version primary(List<Version> versions) {
var primary;
for (var version in versions) {
- if (primary == null || (!version.isPreRelease && primary.isPreRelease) ||
+ if (primary == null ||
+ (!version.isPreRelease && primary.isPreRelease) ||
(version.isPreRelease == primary.isPreRelease && version > primary)) {
primary = version;
}
@@ -161,13 +162,18 @@
bool operator ==(other) {
if (other is! Version) return false;
- return major == other.major && minor == other.minor &&
+ return major == other.major &&
+ minor == other.minor &&
patch == other.patch &&
_equality.equals(preRelease, other.preRelease) &&
_equality.equals(build, other.build);
}
- int get hashCode => major ^ minor ^ patch ^ _equality.hash(preRelease) ^
+ int get hashCode =>
+ major ^
+ minor ^
+ patch ^
+ _equality.hash(preRelease) ^
_equality.hash(build);
bool operator <(Version other) => compareTo(other) < 0;
@@ -253,14 +259,18 @@
if (other is VersionRange) {
if (other.min == this) {
return new VersionRange(
- min: other.min, max: other.max,
- includeMin: true, includeMax: other.includeMax);
+ min: other.min,
+ max: other.max,
+ includeMin: true,
+ includeMax: other.includeMax);
}
if (other.max == this) {
return new VersionRange(
- min: other.min, max: other.max,
- includeMin: other.includeMin, includeMax: true);
+ min: other.min,
+ max: other.max,
+ includeMin: other.includeMin,
+ includeMax: true);
}
}
diff --git a/lib/src/version_constraint.dart b/lib/src/version_constraint.dart
index 6fd4384..36bbd9a 100644
--- a/lib/src/version_constraint.dart
+++ b/lib/src/version_constraint.dart
@@ -81,10 +81,14 @@
}
switch (op) {
- case '<=': return new VersionRange(max: version, includeMax: true);
- case '<': return new VersionRange(max: version, includeMax: false);
- case '>=': return new VersionRange(min: version, includeMin: true);
- case '>': return new VersionRange(min: version, includeMin: false);
+ case '<=':
+ return new VersionRange(max: version, includeMax: true);
+ case '<':
+ return new VersionRange(max: version, includeMax: false);
+ case '>=':
+ return new VersionRange(min: version, includeMin: true);
+ case '>':
+ return new VersionRange(min: version, includeMin: false);
}
throw "Unreachable.";
}
@@ -172,8 +176,7 @@
///
/// It allows any versions that any of those constraints allows. If
/// [constraints] is empty, this returns a constraint that allows no versions.
- factory VersionConstraint.unionOf(
- Iterable<VersionConstraint> constraints) {
+ factory VersionConstraint.unionOf(Iterable<VersionConstraint> constraints) {
var flattened = constraints.expand((constraint) {
if (constraint.isEmpty) return [];
if (constraint is VersionUnion) return constraint.ranges;
@@ -257,9 +260,12 @@
}
class _CompatibleWithVersionRange extends VersionRange {
- _CompatibleWithVersionRange(Version version) : super(
- min: version, includeMin: true,
- max: version.nextBreaking, includeMax: false);
+ _CompatibleWithVersionRange(Version version)
+ : super(
+ min: version,
+ includeMin: true,
+ max: version.nextBreaking,
+ includeMax: false);
String toString() => '^$min';
}
diff --git a/lib/src/version_range.dart b/lib/src/version_range.dart
index 580f3fe..99f2924 100644
--- a/lib/src/version_range.dart
+++ b/lib/src/version_range.dart
@@ -53,8 +53,8 @@
///
/// If [includeMin] is `true`, then the minimum end of the range is inclusive.
/// Likewise, passing [includeMax] as `true` makes the upper end inclusive.
- VersionRange({this.min, this.max,
- this.includeMin: false, this.includeMax: false}) {
+ VersionRange(
+ {this.min, this.max, this.includeMin: false, this.includeMax: false}) {
if (min != null && max != null && min > max) {
throw new ArgumentError(
'Minimum version ("$min") must be less than maximum ("$max").');
@@ -65,13 +65,16 @@
if (other is! VersionRange) return false;
return min == other.min &&
- max == other.max &&
- includeMin == other.includeMin &&
- includeMax == other.includeMax;
+ max == other.max &&
+ includeMin == other.includeMin &&
+ includeMax == other.includeMax;
}
- int get hashCode => min.hashCode ^ (max.hashCode * 3) ^
- (includeMin.hashCode * 5) ^ (includeMax.hashCode * 7);
+ int get hashCode =>
+ min.hashCode ^
+ (max.hashCode * 3) ^
+ (includeMin.hashCode * 5) ^
+ (includeMax.hashCode * 7);
bool get isEmpty => false;
@@ -88,7 +91,6 @@
if (other > max) return false;
if (!includeMax && other == max) return false;
-
// Disallow pre-release versions that have the same major, minor, and
// patch version as the max, but only if neither the max nor the min is a
// pre-release of that version. This ensures that "^1.2.3" doesn't include
@@ -109,9 +111,11 @@
// ">1.2.3" can still match prerelease versions if they're the only things
// available.
var maxIsReleaseOfOther = !includeMax &&
- !max.isPreRelease && other.isPreRelease &&
+ !max.isPreRelease &&
+ other.isPreRelease &&
_equalsWithoutPreRelease(other, max);
- var minIsPreReleaseOfOther = min != null && min.isPreRelease &&
+ var minIsPreReleaseOfOther = min != null &&
+ min.isPreRelease &&
_equalsWithoutPreRelease(other, min);
if (maxIsReleaseOfOther && !minIsPreReleaseOfOther) return false;
}
@@ -121,8 +125,8 @@
bool _equalsWithoutPreRelease(Version version1, Version version2) =>
version1.major == version2.major &&
- version1.minor == version2.minor &&
- version1.patch == version2.patch;
+ version1.minor == version2.minor &&
+ version1.patch == version2.patch;
bool allowsAll(VersionConstraint other) {
if (other.isEmpty) return true;
@@ -216,15 +220,19 @@
return VersionConstraint.empty;
}
- if (intersectMin != null && intersectMax != null &&
+ if (intersectMin != null &&
+ intersectMax != null &&
intersectMin > intersectMax) {
// Non-overlapping ranges, so empty.
return VersionConstraint.empty;
}
// If we got here, there is an actual range.
- return new VersionRange(min: intersectMin, max: intersectMax,
- includeMin: intersectIncludeMin, includeMax: intersectIncludeMax);
+ return new VersionRange(
+ min: intersectMin,
+ max: intersectMax,
+ includeMin: intersectIncludeMin,
+ includeMax: intersectIncludeMax);
}
throw new ArgumentError('Unknown VersionConstraint type $other.');
@@ -236,14 +244,18 @@
if (other == min) {
return new VersionRange(
- min: this.min, max: this.max,
- includeMin: true, includeMax: this.includeMax);
+ min: this.min,
+ max: this.max,
+ includeMin: true,
+ includeMax: this.includeMax);
}
if (other == max) {
return new VersionRange(
- min: this.min, max: this.max,
- includeMin: this.includeMin, includeMax: true);
+ min: this.min,
+ max: this.max,
+ includeMin: this.includeMin,
+ includeMax: true);
}
return new VersionConstraint.unionOf([this, other]);
@@ -283,8 +295,11 @@
unionIncludeMax = true;
}
- return new VersionRange(min: unionMin, max: unionMax,
- includeMin: unionIncludeMin, includeMax: unionIncludeMax);
+ return new VersionRange(
+ min: unionMin,
+ max: unionMax,
+ includeMin: unionIncludeMin,
+ includeMax: unionIncludeMax);
}
return new VersionConstraint.unionOf([this, other]);
@@ -299,24 +314,20 @@
if (other == min) {
if (!includeMin) return this;
return new VersionRange(
- min: min, max: max,
- includeMin: false, includeMax: includeMax);
+ min: min, max: max, includeMin: false, includeMax: includeMax);
}
if (other == max) {
if (!includeMax) return this;
return new VersionRange(
- min: min, max: max,
- includeMin: includeMin, includeMax: false);
+ min: min, max: max, includeMin: includeMin, includeMax: false);
}
return new VersionUnion.fromRanges([
new VersionRange(
- min: min, max: other,
- includeMin: includeMin, includeMax: false),
+ min: min, max: other, includeMin: includeMin, includeMax: false),
new VersionRange(
- min: other, max: max,
- includeMin: false, includeMax: includeMax)
+ min: other, max: max, includeMin: false, includeMax: includeMax)
]);
} else if (other is VersionRange) {
if (!allowsAny(other)) return this;
@@ -330,8 +341,10 @@
before = min;
} else {
before = new VersionRange(
- min: min, max: other.min,
- includeMin: includeMin, includeMax: !other.includeMin);
+ min: min,
+ max: other.min,
+ includeMin: includeMin,
+ includeMax: !other.includeMin);
}
VersionRange after;
@@ -343,8 +356,10 @@
after = max;
} else {
after = new VersionRange(
- min: other.max, max: max,
- includeMin: !other.includeMax, includeMax: includeMax);
+ min: other.max,
+ max: max,
+ includeMin: !other.includeMax,
+ includeMax: includeMax);
}
if (before == null && after == null) return VersionConstraint.empty;
diff --git a/lib/src/version_union.dart b/lib/src/version_union.dart
index a26cb52..9324d3f 100644
--- a/lib/src/version_union.dart
+++ b/lib/src/version_union.dart
@@ -96,8 +96,7 @@
ourRanges.moveNext();
theirRanges.moveNext();
while (ourRanges.current != null && theirRanges.current != null) {
- var intersection = ourRanges.current
- .intersect(theirRanges.current);
+ var intersection = ourRanges.current.intersect(theirRanges.current);
if (!intersection.isEmpty) newRanges.add(intersection);
diff --git a/test/utils.dart b/test/utils.dart
index e1d7446..9b28c6a 100644
--- a/test/utils.dart
+++ b/test/utils.dart
@@ -30,7 +30,8 @@
_VersionConstraintMatcher(this._expected, this._allow);
- bool matches(item, Map matchState) => (item is VersionConstraint) &&
+ bool matches(item, Map matchState) =>
+ (item is VersionConstraint) &&
_expected.every((version) => item.allows(version) == _allow);
Description describe(Description description) {
@@ -39,8 +40,8 @@
return description;
}
- Description describeMismatch(item, Description mismatchDescription,
- Map matchState, bool verbose) {
+ Description describeMismatch(
+ item, Description mismatchDescription, Map matchState, bool verbose) {
if (item is! VersionConstraint) {
mismatchDescription.add('was not a VersionConstraint');
return mismatchDescription;
@@ -70,22 +71,40 @@
/// Gets a [Matcher] that validates that a [VersionConstraint] allows all
/// given versions.
-Matcher allows(Version v1, [Version v2, Version v3, Version v4,
- Version v5, Version v6, Version v7, Version v8]) {
+Matcher allows(Version v1,
+ [Version v2,
+ Version v3,
+ Version v4,
+ Version v5,
+ Version v6,
+ Version v7,
+ Version v8]) {
var versions = _makeVersionList(v1, v2, v3, v4, v5, v6, v7, v8);
return new _VersionConstraintMatcher(versions, true);
}
/// Gets a [Matcher] that validates that a [VersionConstraint] allows none of
/// the given versions.
-Matcher doesNotAllow(Version v1, [Version v2, Version v3, Version v4,
- Version v5, Version v6, Version v7, Version v8]) {
+Matcher doesNotAllow(Version v1,
+ [Version v2,
+ Version v3,
+ Version v4,
+ Version v5,
+ Version v6,
+ Version v7,
+ Version v8]) {
var versions = _makeVersionList(v1, v2, v3, v4, v5, v6, v7, v8);
return new _VersionConstraintMatcher(versions, false);
}
-List<Version> _makeVersionList(Version v1, [Version v2, Version v3, Version v4,
- Version v5, Version v6, Version v7, Version v8]) {
+List<Version> _makeVersionList(Version v1,
+ [Version v2,
+ Version v3,
+ Version v4,
+ Version v5,
+ Version v6,
+ Version v7,
+ Version v8]) {
var versions = [v1];
if (v2 != null) versions.add(v2);
if (v3 != null) versions.add(v3);
@@ -95,4 +114,4 @@
if (v7 != null) versions.add(v7);
if (v8 != null) versions.add(v8);
return versions;
-}
\ No newline at end of file
+}
diff --git a/test/version_constraint_test.dart b/test/version_constraint_test.dart
index bd6bf75..bc37832 100644
--- a/test/version_constraint_test.dart
+++ b/test/version_constraint_test.dart
@@ -11,19 +11,19 @@
main() {
test('any', () {
expect(VersionConstraint.any.isAny, isTrue);
- expect(VersionConstraint.any, allows(
- new Version.parse('0.0.0-blah'),
- new Version.parse('1.2.3'),
- new Version.parse('12345.678.90')));
+ expect(
+ VersionConstraint.any,
+ allows(new Version.parse('0.0.0-blah'), new Version.parse('1.2.3'),
+ new Version.parse('12345.678.90')));
});
test('empty', () {
expect(VersionConstraint.empty.isEmpty, isTrue);
expect(VersionConstraint.empty.isAny, isFalse);
- expect(VersionConstraint.empty, doesNotAllow(
- new Version.parse('0.0.0-blah'),
- new Version.parse('1.2.3'),
- new Version.parse('12345.678.90')));
+ expect(
+ VersionConstraint.empty,
+ doesNotAllow(new Version.parse('0.0.0-blah'),
+ new Version.parse('1.2.3'), new Version.parse('12345.678.90')));
});
group('parse()', () {
@@ -38,82 +38,80 @@
var constraint = new VersionConstraint.parse('any');
expect(constraint is VersionConstraint, isTrue);
- expect(constraint, allows(
- new Version.parse('0.0.0'),
- new Version.parse('1.2.3'),
- new Version.parse('12345.678.90')));
+ expect(
+ constraint,
+ allows(new Version.parse('0.0.0'), new Version.parse('1.2.3'),
+ new Version.parse('12345.678.90')));
});
test('parses a ">" minimum version', () {
var constraint = new VersionConstraint.parse('>1.2.3');
- expect(constraint, allows(
- new Version.parse('1.2.3+foo'),
- new Version.parse('1.2.4')));
- expect(constraint, doesNotAllow(
- new Version.parse('1.2.1'),
- new Version.parse('1.2.3-build'),
- new Version.parse('1.2.3')));
+ expect(constraint,
+ allows(new Version.parse('1.2.3+foo'), new Version.parse('1.2.4')));
+ expect(
+ constraint,
+ doesNotAllow(new Version.parse('1.2.1'),
+ new Version.parse('1.2.3-build'), new Version.parse('1.2.3')));
});
test('parses a ">=" minimum version', () {
var constraint = new VersionConstraint.parse('>=1.2.3');
- expect(constraint, allows(
- new Version.parse('1.2.3'),
- new Version.parse('1.2.3+foo'),
- new Version.parse('1.2.4')));
- expect(constraint, doesNotAllow(
- new Version.parse('1.2.1'),
- new Version.parse('1.2.3-build')));
+ expect(
+ constraint,
+ allows(new Version.parse('1.2.3'), new Version.parse('1.2.3+foo'),
+ new Version.parse('1.2.4')));
+ expect(
+ constraint,
+ doesNotAllow(
+ new Version.parse('1.2.1'), new Version.parse('1.2.3-build')));
});
test('parses a "<" maximum version', () {
var constraint = new VersionConstraint.parse('<1.2.3');
- expect(constraint, allows(
- new Version.parse('1.2.1'),
- new Version.parse('1.2.2+foo')));
- expect(constraint, doesNotAllow(
- new Version.parse('1.2.3'),
- new Version.parse('1.2.3+foo'),
- new Version.parse('1.2.4')));
+ expect(constraint,
+ allows(new Version.parse('1.2.1'), new Version.parse('1.2.2+foo')));
+ expect(
+ constraint,
+ doesNotAllow(new Version.parse('1.2.3'),
+ new Version.parse('1.2.3+foo'), new Version.parse('1.2.4')));
});
test('parses a "<=" maximum version', () {
var constraint = new VersionConstraint.parse('<=1.2.3');
- expect(constraint, allows(
- new Version.parse('1.2.1'),
- new Version.parse('1.2.3-build'),
- new Version.parse('1.2.3')));
- expect(constraint, doesNotAllow(
- new Version.parse('1.2.3+foo'),
- new Version.parse('1.2.4')));
+ expect(
+ constraint,
+ allows(new Version.parse('1.2.1'), new Version.parse('1.2.3-build'),
+ new Version.parse('1.2.3')));
+ expect(
+ constraint,
+ doesNotAllow(
+ new Version.parse('1.2.3+foo'), new Version.parse('1.2.4')));
});
test('parses a series of space-separated constraints', () {
var constraint = new VersionConstraint.parse('>1.0.0 >=1.2.3 <1.3.0');
- expect(constraint, allows(
- new Version.parse('1.2.3'),
- new Version.parse('1.2.5')));
- expect(constraint, doesNotAllow(
- new Version.parse('1.2.3-pre'),
- new Version.parse('1.3.0'),
- new Version.parse('3.4.5')));
+ expect(constraint,
+ allows(new Version.parse('1.2.3'), new Version.parse('1.2.5')));
+ expect(
+ constraint,
+ doesNotAllow(new Version.parse('1.2.3-pre'),
+ new Version.parse('1.3.0'), new Version.parse('3.4.5')));
});
test('ignores whitespace around comparison operators', () {
var constraint = new VersionConstraint.parse(' >1.0.0>=1.2.3 < 1.3.0');
- expect(constraint, allows(
- new Version.parse('1.2.3'),
- new Version.parse('1.2.5')));
- expect(constraint, doesNotAllow(
- new Version.parse('1.2.3-pre'),
- new Version.parse('1.3.0'),
- new Version.parse('3.4.5')));
+ expect(constraint,
+ allows(new Version.parse('1.2.3'), new Version.parse('1.2.5')));
+ expect(
+ constraint,
+ doesNotAllow(new Version.parse('1.2.3-pre'),
+ new Version.parse('1.3.0'), new Version.parse('3.4.5')));
});
test('does not allow "any" to be mixed with other constraints', () {
@@ -122,18 +120,18 @@
});
test('parses a "^" version', () {
- expect(new VersionConstraint.parse('^0.0.3'), equals(
- new VersionConstraint.compatibleWith(v003)));
+ expect(new VersionConstraint.parse('^0.0.3'),
+ equals(new VersionConstraint.compatibleWith(v003)));
- expect(new VersionConstraint.parse('^0.7.2'), equals(
- new VersionConstraint.compatibleWith(v072)));
+ expect(new VersionConstraint.parse('^0.7.2'),
+ equals(new VersionConstraint.compatibleWith(v072)));
- expect(new VersionConstraint.parse('^1.2.3'), equals(
- new VersionConstraint.compatibleWith(v123)));
+ expect(new VersionConstraint.parse('^1.2.3'),
+ equals(new VersionConstraint.compatibleWith(v123)));
var min = new Version.parse('0.7.2-pre+1');
- expect(new VersionConstraint.parse('^0.7.2-pre+1'), equals(
- new VersionConstraint.compatibleWith(min)));
+ expect(new VersionConstraint.parse('^0.7.2-pre+1'),
+ equals(new VersionConstraint.compatibleWith(min)));
});
test('does not allow "^" to be mixed with other constraints', () {
@@ -146,25 +144,23 @@
test('ignores whitespace around "^"', () {
var constraint = new VersionConstraint.parse(' ^ 1.2.3 ');
- expect(constraint, equals(
- new VersionConstraint.compatibleWith(v123)));
+ expect(constraint, equals(new VersionConstraint.compatibleWith(v123)));
});
test('throws FormatException on a bad string', () {
var bad = [
- "", " ", // Empty string.
- "foo", // Bad text.
- ">foo", // Bad text after operator.
- "^foo", // Bad text after "^".
- "1.0.0 foo", "1.0.0foo", // Bad text after version.
- "anything", // Bad text after "any".
- "<>1.0.0", // Multiple operators.
- "1.0.0<" // Trailing operator.
+ "", " ", // Empty string.
+ "foo", // Bad text.
+ ">foo", // Bad text after operator.
+ "^foo", // Bad text after "^".
+ "1.0.0 foo", "1.0.0foo", // Bad text after version.
+ "anything", // Bad text after "any".
+ "<>1.0.0", // Multiple operators.
+ "1.0.0<" // Trailing operator.
];
for (var text in bad) {
- expect(() => new VersionConstraint.parse(text),
- throwsFormatException);
+ expect(() => new VersionConstraint.parse(text), throwsFormatException);
}
});
});
@@ -173,8 +169,10 @@
test('returns the range of compatible versions', () {
var constraint = new VersionConstraint.compatibleWith(v072);
- expect(constraint, equals(new VersionRange(min: v072, includeMin: true,
- max: v072.nextBreaking)));
+ expect(
+ constraint,
+ equals(new VersionRange(
+ min: v072, includeMin: true, max: v072.nextBreaking)));
});
test('toString() uses "^"', () {
diff --git a/test/version_range_test.dart b/test/version_range_test.dart
index 23d7710..e95b3d6 100644
--- a/test/version_range_test.dart
+++ b/test/version_range_test.dart
@@ -60,21 +60,19 @@
test('version must be greater than min', () {
var range = new VersionRange(min: v123);
- expect(range, allows(
- new Version.parse('1.3.3'),
- new Version.parse('2.3.3')));
- expect(range, doesNotAllow(
- new Version.parse('1.2.2'),
- new Version.parse('1.2.3')));
+ expect(range,
+ allows(new Version.parse('1.3.3'), new Version.parse('2.3.3')));
+ expect(range,
+ doesNotAllow(new Version.parse('1.2.2'), new Version.parse('1.2.3')));
});
test('version must be min or greater if includeMin', () {
var range = new VersionRange(min: v123, includeMin: true);
- expect(range, allows(
- new Version.parse('1.2.3'),
- new Version.parse('1.3.3'),
- new Version.parse('2.3.3')));
+ expect(
+ range,
+ allows(new Version.parse('1.2.3'), new Version.parse('1.3.3'),
+ new Version.parse('2.3.3')));
expect(range, doesNotAllow(new Version.parse('1.2.2')));
});
@@ -89,50 +87,53 @@
var range = new VersionRange(max: v234);
expect(range, allows(new Version.parse('2.3.3')));
- expect(range, doesNotAllow(
- new Version.parse('2.3.4'),
- new Version.parse('2.4.3')));
+ expect(range,
+ doesNotAllow(new Version.parse('2.3.4'), new Version.parse('2.4.3')));
});
test('pre-release versions of non-pre-release max are excluded', () {
var range = new VersionRange(max: v234);
expect(range, allows(new Version.parse('2.3.3')));
- expect(range, doesNotAllow(
- new Version.parse('2.3.4-dev'),
- new Version.parse('2.3.4')));
+ expect(
+ range,
+ doesNotAllow(
+ new Version.parse('2.3.4-dev'), new Version.parse('2.3.4')));
});
- test('pre-release versions of non-pre-release max are included if min is a '
+ test(
+ 'pre-release versions of non-pre-release max are included if min is a '
'pre-release of the same version', () {
- var range = new VersionRange(
- min: new Version.parse('2.3.4-dev.0'), max: v234);
+ var range =
+ new VersionRange(min: new Version.parse('2.3.4-dev.0'), max: v234);
expect(range, allows(new Version.parse('2.3.4-dev.1')));
- expect(range, doesNotAllow(
- new Version.parse('2.3.3'),
- new Version.parse('2.3.4-dev'),
- new Version.parse('2.3.4')));
+ expect(
+ range,
+ doesNotAllow(new Version.parse('2.3.3'),
+ new Version.parse('2.3.4-dev'), new Version.parse('2.3.4')));
});
test('pre-release versions of pre-release max are included', () {
var range = new VersionRange(max: new Version.parse('2.3.4-dev.2'));
- expect(range, allows(
- new Version.parse('2.3.4-dev.1')));
- expect(range, doesNotAllow(
- new Version.parse('2.3.4-dev.2'),
- new Version.parse('2.3.4-dev.3')));
+ expect(range, allows(new Version.parse('2.3.4-dev.1')));
+ expect(
+ range,
+ doesNotAllow(new Version.parse('2.3.4-dev.2'),
+ new Version.parse('2.3.4-dev.3')));
});
test('version must be max or less if includeMax', () {
var range = new VersionRange(min: v123, max: v234, includeMax: true);
- expect(range, allows(
- new Version.parse('2.3.3'),
- new Version.parse('2.3.4'),
- // Pre-releases of the max are allowed.
- new Version.parse('2.3.4-dev')));
+ expect(
+ range,
+ allows(
+ new Version.parse('2.3.3'),
+ new Version.parse('2.3.4'),
+ // Pre-releases of the max are allowed.
+ new Version.parse('2.3.4-dev')));
expect(range, doesNotAllow(new Version.parse('2.4.3')));
});
@@ -146,18 +147,16 @@
test('has no max if one was not set', () {
var range = new VersionRange(min: v123);
- expect(range, allows(
- new Version.parse('1.3.3'),
- new Version.parse('999.3.3')));
+ expect(range,
+ allows(new Version.parse('1.3.3'), new Version.parse('999.3.3')));
expect(range, doesNotAllow(new Version.parse('1.2.3')));
});
test('allows any version if there is no min or max', () {
var range = new VersionRange();
- expect(range, allows(
- new Version.parse('0.0.0'),
- new Version.parse('999.99.9')));
+ expect(range,
+ allows(new Version.parse('0.0.0'), new Version.parse('999.99.9')));
});
});
@@ -280,30 +279,36 @@
expect(new VersionRange(max: v250).allowsAny(new VersionRange(min: v250)),
isFalse);
- expect(new VersionRange(max: v250, includeMax: true)
+ expect(
+ new VersionRange(max: v250, includeMax: true)
.allowsAny(new VersionRange(min: v250)),
isFalse);
- expect(new VersionRange(max: v250)
+ expect(
+ new VersionRange(max: v250)
.allowsAny(new VersionRange(min: v250, includeMin: true)),
isFalse);
- expect(new VersionRange(max: v250, includeMax: true)
+ expect(
+ new VersionRange(max: v250, includeMax: true)
.allowsAny(new VersionRange(min: v250, includeMin: true)),
isTrue);
expect(new VersionRange(min: v250).allowsAny(new VersionRange(max: v250)),
isFalse);
- expect(new VersionRange(min: v250, includeMin: true)
+ expect(
+ new VersionRange(min: v250, includeMin: true)
.allowsAny(new VersionRange(max: v250)),
isFalse);
- expect(new VersionRange(min: v250)
+ expect(
+ new VersionRange(min: v250)
.allowsAny(new VersionRange(max: v250, includeMax: true)),
isFalse);
- expect(new VersionRange(min: v250, includeMin: true)
+ expect(
+ new VersionRange(min: v250, includeMin: true)
.allowsAny(new VersionRange(max: v250, includeMax: true)),
isTrue);
});
@@ -361,8 +366,8 @@
});
test('returns the version if the range allows it', () {
- expect(new VersionRange(min: v114, max: v124).intersect(v123),
- equals(v123));
+ expect(
+ new VersionRange(min: v114, max: v124).intersect(v123), equals(v123));
expect(new VersionRange(min: v123, max: v124).intersect(v114).isEmpty,
isTrue);
});
@@ -381,7 +386,8 @@
equals(new VersionRange(min: v114, max: v124, includeMin: true)));
});
- test("with a version allows both the range and the version if the range "
+ test(
+ "with a version allows both the range and the version if the range "
"doesn't contain the version", () {
var result = new VersionRange(min: v003, max: v114).union(v124);
expect(result, allows(v010));
@@ -438,8 +444,10 @@
test("includes edges if either range does", () {
var result = new VersionRange(min: v003, max: v114, includeMin: true)
.union(new VersionRange(min: v003, max: v114, includeMax: true));
- expect(result, equals(new VersionRange(
- min: v003, max: v114, includeMin: true, includeMax: true)));
+ expect(
+ result,
+ equals(new VersionRange(
+ min: v003, max: v114, includeMin: true, includeMax: true)));
});
});
@@ -452,8 +460,7 @@
});
test("with a version outside the range returns the original range", () {
- expect(
- new VersionRange(min: v003, max: v114).difference(v200),
+ expect(new VersionRange(min: v003, max: v114).difference(v200),
equals(new VersionRange(min: v003, max: v114)));
});
@@ -518,8 +525,7 @@
equals(v130));
});
- test("with a range at the end cuts off the end of the range",
- () {
+ test("with a range at the end cuts off the end of the range", () {
expect(
new VersionRange(min: v080, max: v130)
.difference(new VersionRange(min: v114, max: v140)),
@@ -569,7 +575,8 @@
isEmpty);
});
- test("with a version union that doesn't cover the range, returns the "
+ test(
+ "with a version union that doesn't cover the range, returns the "
"original", () {
expect(
new VersionRange(min: v114, max: v140)
@@ -579,11 +586,11 @@
test("with a version union that intersects the ends, chops them off", () {
expect(
- new VersionRange(min: v114, max: v140)
- .difference(new VersionConstraint.unionOf([
- new VersionRange(min: v080, max: v123),
- new VersionRange(min: v130, max: v200)
- ])),
+ new VersionRange(min: v114, max: v140).difference(
+ new VersionConstraint.unionOf([
+ new VersionRange(min: v080, max: v123),
+ new VersionRange(min: v130, max: v200)
+ ])),
equals(new VersionRange(
min: v123, max: v130, includeMin: true, includeMax: true)));
});
@@ -608,20 +615,16 @@
group('compareTo()', () {
test("orders by minimum first", () {
- _expectComparesSmaller(
- new VersionRange(min: v003, max: v080),
+ _expectComparesSmaller(new VersionRange(min: v003, max: v080),
new VersionRange(min: v010, max: v072));
- _expectComparesSmaller(
- new VersionRange(min: v003, max: v080),
+ _expectComparesSmaller(new VersionRange(min: v003, max: v080),
new VersionRange(min: v010, max: v080));
- _expectComparesSmaller(
- new VersionRange(min: v003, max: v080),
+ _expectComparesSmaller(new VersionRange(min: v003, max: v080),
new VersionRange(min: v010, max: v114));
});
test("orders by maximum second", () {
- _expectComparesSmaller(
- new VersionRange(min: v003, max: v010),
+ _expectComparesSmaller(new VersionRange(min: v003, max: v010),
new VersionRange(min: v003, max: v072));
});
@@ -639,19 +642,15 @@
test("no minimum comes before small minimum", () {
_expectComparesSmaller(
- new VersionRange(max: v010),
- new VersionRange(min: v003, max: v010));
- _expectComparesSmaller(
- new VersionRange(max: v010, includeMin: true),
+ new VersionRange(max: v010), new VersionRange(min: v003, max: v010));
+ _expectComparesSmaller(new VersionRange(max: v010, includeMin: true),
new VersionRange(min: v003, max: v010));
});
test("no maximium comes after large maximum", () {
_expectComparesSmaller(
- new VersionRange(min: v003, max: v300),
- new VersionRange(min: v003));
- _expectComparesSmaller(
- new VersionRange(min: v003, max: v300),
+ new VersionRange(min: v003, max: v300), new VersionRange(min: v003));
+ _expectComparesSmaller(new VersionRange(min: v003, max: v300),
new VersionRange(min: v003, includeMax: true));
});
});
diff --git a/test/version_test.dart b/test/version_test.dart
index b278d4c..fc6dfef 100644
--- a/test/version_test.dart
+++ b/test/version_test.dart
@@ -119,21 +119,23 @@
expect(new Version.parse('01.2.3'), equals(new Version.parse('1.2.3')));
expect(new Version.parse('1.02.3'), equals(new Version.parse('1.2.3')));
expect(new Version.parse('1.2.03'), equals(new Version.parse('1.2.3')));
- expect(new Version.parse('1.2.3-01'),
- equals(new Version.parse('1.2.3-1')));
- expect(new Version.parse('1.2.3+01'),
- equals(new Version.parse('1.2.3+1')));
+ expect(
+ new Version.parse('1.2.3-01'), equals(new Version.parse('1.2.3-1')));
+ expect(
+ new Version.parse('1.2.3+01'), equals(new Version.parse('1.2.3+1')));
});
});
test('allows()', () {
expect(v123, allows(v123));
- expect(v123, doesNotAllow(
- new Version.parse('2.2.3'),
- new Version.parse('1.3.3'),
- new Version.parse('1.2.4'),
- new Version.parse('1.2.3-dev'),
- new Version.parse('1.2.3+build')));
+ expect(
+ v123,
+ doesNotAllow(
+ new Version.parse('2.2.3'),
+ new Version.parse('1.3.3'),
+ new Version.parse('1.2.4'),
+ new Version.parse('1.2.3-dev'),
+ new Version.parse('1.2.3+build')));
});
test('allowsAll()', () {
@@ -160,12 +162,12 @@
expect(v123.intersect(v114).isEmpty, isTrue);
// Intersecting a range returns the version if the range allows it.
- expect(v123.intersect(new VersionRange(min: v114, max: v124)),
- equals(v123));
+ expect(
+ v123.intersect(new VersionRange(min: v114, max: v124)), equals(v123));
// Intersecting a range allows no versions if the range doesn't allow it.
- expect(v114.intersect(new VersionRange(min: v123, max: v124)).isEmpty,
- isTrue);
+ expect(
+ v114.intersect(new VersionRange(min: v123, max: v124)).isEmpty, isTrue);
});
group('union()', () {
@@ -194,7 +196,8 @@
equals(new VersionRange(min: v114, max: v124, includeMin: true)));
});
- test("with a range allows both the range and the version if the range "
+ test(
+ "with a range allows both the range and the version if the range "
"doesn't contain the version", () {
var result = v123.union(new VersionRange(min: v003, max: v114));
expect(result, allows(v123));
diff --git a/test/version_union_test.dart b/test/version_union_test.dart
index 06a427d..f948832 100644
--- a/test/version_union_test.dart
+++ b/test/version_union_test.dart
@@ -11,17 +11,19 @@
main() {
group('factory', () {
test('ignores empty constraints', () {
- expect(new VersionConstraint.unionOf([
- VersionConstraint.empty,
- VersionConstraint.empty,
- v123,
- VersionConstraint.empty
- ]), equals(v123));
+ expect(
+ new VersionConstraint.unionOf([
+ VersionConstraint.empty,
+ VersionConstraint.empty,
+ v123,
+ VersionConstraint.empty
+ ]),
+ equals(v123));
- expect(new VersionConstraint.unionOf([
- VersionConstraint.empty,
- VersionConstraint.empty
- ]), isEmpty);
+ expect(
+ new VersionConstraint.unionOf(
+ [VersionConstraint.empty, VersionConstraint.empty]),
+ isEmpty);
});
test('returns an empty constraint for an empty list', () {
@@ -29,120 +31,142 @@
});
test('any constraints override everything', () {
- expect(new VersionConstraint.unionOf([
- v123,
- VersionConstraint.any,
- v200,
- new VersionRange(min: v234, max: v250)
- ]), equals(VersionConstraint.any));
+ expect(
+ new VersionConstraint.unionOf([
+ v123,
+ VersionConstraint.any,
+ v200,
+ new VersionRange(min: v234, max: v250)
+ ]),
+ equals(VersionConstraint.any));
});
test('flattens other unions', () {
- expect(new VersionConstraint.unionOf([
- v072,
- new VersionConstraint.unionOf([v123, v124]),
- v250
- ]), equals(new VersionConstraint.unionOf([v072, v123, v124, v250])));
+ expect(
+ new VersionConstraint.unionOf([
+ v072,
+ new VersionConstraint.unionOf([v123, v124]),
+ v250
+ ]),
+ equals(new VersionConstraint.unionOf([v072, v123, v124, v250])));
});
test('returns a single merged range as-is', () {
- expect(new VersionConstraint.unionOf([
- new VersionRange(min: v080, max: v140),
- new VersionRange(min: v123, max: v200)
- ]), equals(new VersionRange(min: v080, max: v200)));
+ expect(
+ new VersionConstraint.unionOf([
+ new VersionRange(min: v080, max: v140),
+ new VersionRange(min: v123, max: v200)
+ ]),
+ equals(new VersionRange(min: v080, max: v200)));
});
});
group('equality', () {
test("doesn't depend on original order", () {
- expect(new VersionConstraint.unionOf([
- v250,
- new VersionRange(min: v201, max: v234),
- v124,
- v072,
- new VersionRange(min: v080, max: v114),
- v123
- ]), equals(new VersionConstraint.unionOf([
- v072,
- new VersionRange(min: v080, max: v114),
- v123,
- v124,
- new VersionRange(min: v201, max: v234),
- v250
- ])));
+ expect(
+ new VersionConstraint.unionOf([
+ v250,
+ new VersionRange(min: v201, max: v234),
+ v124,
+ v072,
+ new VersionRange(min: v080, max: v114),
+ v123
+ ]),
+ equals(new VersionConstraint.unionOf([
+ v072,
+ new VersionRange(min: v080, max: v114),
+ v123,
+ v124,
+ new VersionRange(min: v201, max: v234),
+ v250
+ ])));
});
test("merges overlapping ranges", () {
- expect(new VersionConstraint.unionOf([
- new VersionRange(min: v003, max: v072),
- new VersionRange(min: v010, max: v080),
- new VersionRange(min: v114, max: v124),
- new VersionRange(min: v123, max: v130)
- ]), equals(new VersionConstraint.unionOf([
- new VersionRange(min: v003, max: v080),
- new VersionRange(min: v114, max: v130)
- ])));
+ expect(
+ new VersionConstraint.unionOf([
+ new VersionRange(min: v003, max: v072),
+ new VersionRange(min: v010, max: v080),
+ new VersionRange(min: v114, max: v124),
+ new VersionRange(min: v123, max: v130)
+ ]),
+ equals(new VersionConstraint.unionOf([
+ new VersionRange(min: v003, max: v080),
+ new VersionRange(min: v114, max: v130)
+ ])));
});
test("merges adjacent ranges", () {
- expect(new VersionConstraint.unionOf([
- new VersionRange(min: v003, max: v072, includeMax: true),
- new VersionRange(min: v072, max: v080),
- new VersionRange(min: v114, max: v124),
- new VersionRange(min: v124, max: v130, includeMin: true)
- ]), equals(new VersionConstraint.unionOf([
- new VersionRange(min: v003, max: v080),
- new VersionRange(min: v114, max: v130)
- ])));
+ expect(
+ new VersionConstraint.unionOf([
+ new VersionRange(min: v003, max: v072, includeMax: true),
+ new VersionRange(min: v072, max: v080),
+ new VersionRange(min: v114, max: v124),
+ new VersionRange(min: v124, max: v130, includeMin: true)
+ ]),
+ equals(new VersionConstraint.unionOf([
+ new VersionRange(min: v003, max: v080),
+ new VersionRange(min: v114, max: v130)
+ ])));
});
test("doesn't merge not-quite-adjacent ranges", () {
- expect(new VersionConstraint.unionOf([
- new VersionRange(min: v003, max: v072),
- new VersionRange(min: v072, max: v080)
- ]), equals(new VersionConstraint.unionOf([
- new VersionRange(min: v003, max: v072),
- new VersionRange(min: v072, max: v080)
- ])));
+ expect(
+ new VersionConstraint.unionOf([
+ new VersionRange(min: v003, max: v072),
+ new VersionRange(min: v072, max: v080)
+ ]),
+ equals(new VersionConstraint.unionOf([
+ new VersionRange(min: v003, max: v072),
+ new VersionRange(min: v072, max: v080)
+ ])));
});
-
+
test("merges version numbers into ranges", () {
- expect(new VersionConstraint.unionOf([
- new VersionRange(min: v003, max: v072),
- v010,
- new VersionRange(min: v114, max: v124),
- v123
- ]), equals(new VersionConstraint.unionOf([
- new VersionRange(min: v003, max: v072),
- new VersionRange(min: v114, max: v124)
- ])));
+ expect(
+ new VersionConstraint.unionOf([
+ new VersionRange(min: v003, max: v072),
+ v010,
+ new VersionRange(min: v114, max: v124),
+ v123
+ ]),
+ equals(new VersionConstraint.unionOf([
+ new VersionRange(min: v003, max: v072),
+ new VersionRange(min: v114, max: v124)
+ ])));
});
-
+
test("merges adjacent version numbers into ranges", () {
- expect(new VersionConstraint.unionOf([
- new VersionRange(min: v003, max: v072),
- v072,
- v114,
- new VersionRange(min: v114, max: v124)
- ]), equals(new VersionConstraint.unionOf([
- new VersionRange(min: v003, max: v072, includeMax: true),
- new VersionRange(min: v114, max: v124, includeMin: true)
- ])));
+ expect(
+ new VersionConstraint.unionOf([
+ new VersionRange(min: v003, max: v072),
+ v072,
+ v114,
+ new VersionRange(min: v114, max: v124)
+ ]),
+ equals(new VersionConstraint.unionOf([
+ new VersionRange(min: v003, max: v072, includeMax: true),
+ new VersionRange(min: v114, max: v124, includeMin: true)
+ ])));
});
});
test('isEmpty returns false', () {
- expect(new VersionConstraint.unionOf([
- new VersionRange(min: v003, max: v080),
- new VersionRange(min: v123, max: v130),
- ]), isNot(isEmpty));
+ expect(
+ new VersionConstraint.unionOf([
+ new VersionRange(min: v003, max: v080),
+ new VersionRange(min: v123, max: v130),
+ ]),
+ isNot(isEmpty));
});
test('isAny returns false', () {
- expect(new VersionConstraint.unionOf([
- new VersionRange(min: v003, max: v080),
- new VersionRange(min: v123, max: v130),
- ]).isAny, isFalse);
+ expect(
+ new VersionConstraint.unionOf([
+ new VersionRange(min: v003, max: v080),
+ new VersionRange(min: v123, max: v130),
+ ]).isAny,
+ isFalse);
});
test('allows() allows anything the components allow', () {
@@ -174,7 +198,8 @@
expect(union.allowsAll(v200), isTrue);
});
- test('for a version range, returns true if any component allows the whole '
+ test(
+ 'for a version range, returns true if any component allows the whole '
'range', () {
var union = new VersionConstraint.unionOf([
new VersionRange(min: v003, max: v080),
@@ -194,32 +219,40 @@
test('returns true if every constraint matches a different constraint',
() {
- expect(union.allowsAll(new VersionConstraint.unionOf([
- new VersionRange(min: v010, max: v072),
- new VersionRange(min: v124, max: v130)
- ])), isTrue);
+ expect(
+ union.allowsAll(new VersionConstraint.unionOf([
+ new VersionRange(min: v010, max: v072),
+ new VersionRange(min: v124, max: v130)
+ ])),
+ isTrue);
});
test('returns true if every constraint matches the same constraint', () {
- expect(union.allowsAll(new VersionConstraint.unionOf([
- new VersionRange(min: v003, max: v010),
- new VersionRange(min: v072, max: v080)
- ])), isTrue);
+ expect(
+ union.allowsAll(new VersionConstraint.unionOf([
+ new VersionRange(min: v003, max: v010),
+ new VersionRange(min: v072, max: v080)
+ ])),
+ isTrue);
});
-
+
test("returns false if there's an unmatched constraint", () {
- expect(union.allowsAll(new VersionConstraint.unionOf([
- new VersionRange(min: v010, max: v072),
- new VersionRange(min: v124, max: v130),
- new VersionRange(min: v140, max: v200)
- ])), isFalse);
+ expect(
+ union.allowsAll(new VersionConstraint.unionOf([
+ new VersionRange(min: v010, max: v072),
+ new VersionRange(min: v124, max: v130),
+ new VersionRange(min: v140, max: v200)
+ ])),
+ isFalse);
});
test("returns false if a constraint isn't fully matched", () {
- expect(union.allowsAll(new VersionConstraint.unionOf([
- new VersionRange(min: v010, max: v114),
- new VersionRange(min: v124, max: v130)
- ])), isFalse);
+ expect(
+ union.allowsAll(new VersionConstraint.unionOf([
+ new VersionRange(min: v010, max: v114),
+ new VersionRange(min: v124, max: v130)
+ ])),
+ isFalse);
});
});
});
@@ -239,12 +272,11 @@
expect(union.allowsAny(v200), isTrue);
});
- test('for a version range, returns true if any component allows part of '
+ test(
+ 'for a version range, returns true if any component allows part of '
'the range', () {
- var union = new VersionConstraint.unionOf([
- new VersionRange(min: v003, max: v080),
- v123
- ]);
+ var union = new VersionConstraint.unionOf(
+ [new VersionRange(min: v003, max: v080), v123]);
expect(union.allowsAny(new VersionRange(min: v010, max: v114)), isTrue);
expect(union.allowsAny(new VersionRange(min: v114, max: v124)), isTrue);
@@ -258,67 +290,78 @@
]);
test('returns true if any constraint matches', () {
- expect(union.allowsAny(new VersionConstraint.unionOf([
- v072,
- new VersionRange(min: v200, max: v300)
- ])), isTrue);
+ expect(
+ union.allowsAny(new VersionConstraint.unionOf(
+ [v072, new VersionRange(min: v200, max: v300)])),
+ isTrue);
- expect(union.allowsAny(new VersionConstraint.unionOf([
- v003,
- new VersionRange(min: v124, max: v300)
- ])), isTrue);
+ expect(
+ union.allowsAny(new VersionConstraint.unionOf(
+ [v003, new VersionRange(min: v124, max: v300)])),
+ isTrue);
});
-
+
test("returns false if no constraint matches", () {
- expect(union.allowsAny(new VersionConstraint.unionOf([
- v003,
- new VersionRange(min: v130, max: v140),
- new VersionRange(min: v140, max: v200)
- ])), isFalse);
+ expect(
+ union.allowsAny(new VersionConstraint.unionOf([
+ v003,
+ new VersionRange(min: v130, max: v140),
+ new VersionRange(min: v140, max: v200)
+ ])),
+ isFalse);
});
});
});
group("intersect()", () {
test("with an overlapping version, returns that version", () {
- expect(new VersionConstraint.unionOf([
- new VersionRange(min: v010, max: v080),
- new VersionRange(min: v123, max: v140)
- ]).intersect(v072), equals(v072));
+ expect(
+ new VersionConstraint.unionOf([
+ new VersionRange(min: v010, max: v080),
+ new VersionRange(min: v123, max: v140)
+ ]).intersect(v072),
+ equals(v072));
});
test("with a non-overlapping version, returns an empty constraint", () {
- expect(new VersionConstraint.unionOf([
- new VersionRange(min: v010, max: v080),
- new VersionRange(min: v123, max: v140)
- ]).intersect(v300), isEmpty);
+ expect(
+ new VersionConstraint.unionOf([
+ new VersionRange(min: v010, max: v080),
+ new VersionRange(min: v123, max: v140)
+ ]).intersect(v300),
+ isEmpty);
});
test("with an overlapping range, returns that range", () {
var range = new VersionRange(min: v072, max: v080);
- expect(new VersionConstraint.unionOf([
- new VersionRange(min: v010, max: v080),
- new VersionRange(min: v123, max: v140)
- ]).intersect(range), equals(range));
+ expect(
+ new VersionConstraint.unionOf([
+ new VersionRange(min: v010, max: v080),
+ new VersionRange(min: v123, max: v140)
+ ]).intersect(range),
+ equals(range));
});
test("with a non-overlapping range, returns an empty constraint", () {
- expect(new VersionConstraint.unionOf([
- new VersionRange(min: v010, max: v080),
- new VersionRange(min: v123, max: v140)
- ]).intersect(new VersionRange(min: v080, max: v123)), isEmpty);
+ expect(
+ new VersionConstraint.unionOf([
+ new VersionRange(min: v010, max: v080),
+ new VersionRange(min: v123, max: v140)
+ ]).intersect(new VersionRange(min: v080, max: v123)),
+ isEmpty);
});
test("with a parially-overlapping range, returns the overlapping parts",
() {
- expect(new VersionConstraint.unionOf([
- new VersionRange(min: v010, max: v080),
- new VersionRange(min: v123, max: v140)
- ]).intersect(new VersionRange(min: v072, max: v130)),
+ expect(
+ new VersionConstraint.unionOf([
+ new VersionRange(min: v010, max: v080),
+ new VersionRange(min: v123, max: v140)
+ ]).intersect(new VersionRange(min: v072, max: v130)),
equals(new VersionConstraint.unionOf([
- new VersionRange(min: v072, max: v080),
- new VersionRange(min: v123, max: v130)
- ])));
+ new VersionRange(min: v072, max: v080),
+ new VersionRange(min: v123, max: v130)
+ ])));
});
group("for a union,", () {
@@ -328,83 +371,93 @@
]);
test("returns the overlapping parts", () {
- expect(union.intersect(new VersionConstraint.unionOf([
- v010,
- new VersionRange(min: v072, max: v124),
- new VersionRange(min: v124, max: v130)
- ])), equals(new VersionConstraint.unionOf([
- v010,
- new VersionRange(min: v072, max: v080),
- new VersionRange(min: v123, max: v124),
- new VersionRange(min: v124, max: v130)
- ])));
+ expect(
+ union.intersect(new VersionConstraint.unionOf([
+ v010,
+ new VersionRange(min: v072, max: v124),
+ new VersionRange(min: v124, max: v130)
+ ])),
+ equals(new VersionConstraint.unionOf([
+ v010,
+ new VersionRange(min: v072, max: v080),
+ new VersionRange(min: v123, max: v124),
+ new VersionRange(min: v124, max: v130)
+ ])));
});
test("drops parts that don't match", () {
- expect(union.intersect(new VersionConstraint.unionOf([
- v003,
- new VersionRange(min: v072, max: v080),
- new VersionRange(min: v080, max: v123)
- ])), equals(new VersionRange(min: v072, max: v080)));
+ expect(
+ union.intersect(new VersionConstraint.unionOf([
+ v003,
+ new VersionRange(min: v072, max: v080),
+ new VersionRange(min: v080, max: v123)
+ ])),
+ equals(new VersionRange(min: v072, max: v080)));
});
});
});
group("difference()", () {
test("ignores ranges that don't intersect", () {
- expect(new VersionConstraint.unionOf([
- new VersionRange(min: v072, max: v080),
- new VersionRange(min: v123, max: v130)
- ]).difference(new VersionConstraint.unionOf([
- new VersionRange(min: v003, max: v010),
- new VersionRange(min: v080, max: v123),
- new VersionRange(min: v140)
- ])), equals(new VersionConstraint.unionOf([
- new VersionRange(min: v072, max: v080),
- new VersionRange(min: v123, max: v130)
- ])));
+ expect(
+ new VersionConstraint.unionOf([
+ new VersionRange(min: v072, max: v080),
+ new VersionRange(min: v123, max: v130)
+ ]).difference(new VersionConstraint.unionOf([
+ new VersionRange(min: v003, max: v010),
+ new VersionRange(min: v080, max: v123),
+ new VersionRange(min: v140)
+ ])),
+ equals(new VersionConstraint.unionOf([
+ new VersionRange(min: v072, max: v080),
+ new VersionRange(min: v123, max: v130)
+ ])));
});
test("removes overlapping portions", () {
- expect(new VersionConstraint.unionOf([
- new VersionRange(min: v010, max: v080),
- new VersionRange(min: v123, max: v130)
- ]).difference(new VersionConstraint.unionOf([
- new VersionRange(min: v003, max: v072),
- new VersionRange(min: v124)
- ])), equals(new VersionConstraint.unionOf([
- new VersionRange(min: v072, max: v080, includeMin: true),
- new VersionRange(min: v123, max: v124, includeMax: true)
- ])));
+ expect(
+ new VersionConstraint.unionOf([
+ new VersionRange(min: v010, max: v080),
+ new VersionRange(min: v123, max: v130)
+ ]).difference(new VersionConstraint.unionOf([
+ new VersionRange(min: v003, max: v072),
+ new VersionRange(min: v124)
+ ])),
+ equals(new VersionConstraint.unionOf([
+ new VersionRange(min: v072, max: v080, includeMin: true),
+ new VersionRange(min: v123, max: v124, includeMax: true)
+ ])));
});
test("removes multiple portions from the same range", () {
- expect(new VersionConstraint.unionOf([
- new VersionRange(min: v010, max: v114),
- new VersionRange(min: v130, max: v200)
- ]).difference(new VersionConstraint.unionOf([v072, v080])),
+ expect(
+ new VersionConstraint.unionOf([
+ new VersionRange(min: v010, max: v114),
+ new VersionRange(min: v130, max: v200)
+ ]).difference(new VersionConstraint.unionOf([v072, v080])),
equals(new VersionConstraint.unionOf([
- new VersionRange(min: v010, max: v072),
- new VersionRange(min: v072, max: v080),
- new VersionRange(min: v080, max: v114),
- new VersionRange(min: v130, max: v200)
- ])));
+ new VersionRange(min: v010, max: v072),
+ new VersionRange(min: v072, max: v080),
+ new VersionRange(min: v080, max: v114),
+ new VersionRange(min: v130, max: v200)
+ ])));
});
test("removes the same range from multiple ranges", () {
- expect(new VersionConstraint.unionOf([
- new VersionRange(min: v010, max: v072),
- new VersionRange(min: v080, max: v123),
- new VersionRange(min: v124, max: v130),
- new VersionRange(min: v200, max: v234),
- new VersionRange(min: v250, max: v300)
- ]).difference(new VersionRange(min: v114, max: v201)),
+ expect(
+ new VersionConstraint.unionOf([
+ new VersionRange(min: v010, max: v072),
+ new VersionRange(min: v080, max: v123),
+ new VersionRange(min: v124, max: v130),
+ new VersionRange(min: v200, max: v234),
+ new VersionRange(min: v250, max: v300)
+ ]).difference(new VersionRange(min: v114, max: v201)),
equals(new VersionConstraint.unionOf([
- new VersionRange(min: v010, max: v072),
- new VersionRange(min: v080, max: v114, includeMax: true),
- new VersionRange(min: v201, max: v234, includeMin: true),
- new VersionRange(min: v250, max: v300)
- ])));
+ new VersionRange(min: v010, max: v072),
+ new VersionRange(min: v080, max: v114, includeMax: true),
+ new VersionRange(min: v201, max: v234, includeMin: true),
+ new VersionRange(min: v250, max: v300)
+ ])));
});
});
-}
\ No newline at end of file
+}