Skip to content

Commit a82c7b1

Browse files
authored
Fix Duration.clamp min=max bug #63
2 parents fbee69f + 84350da commit a82c7b1

File tree

2 files changed

+8
-1
lines changed

2 files changed

+8
-1
lines changed

lib/src/extensions.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -301,7 +301,7 @@ extension DurationTimeExtension on Duration {
301301
/// ```
302302
Duration clamp({Duration? min, Duration? max}) {
303303
assert(
304-
((min != null) && (max != null)) ? min.compareTo(max).isNegative : true,
304+
((min != null) && (max != null)) ? min.compareTo(max) <= 0 : true,
305305
'Duration min has to be shorter than max\n(min: $min - max: $max)',
306306
);
307307
if ((min != null) && compareTo(min).isNegative) {

test/time_test.dart

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -752,6 +752,13 @@ void main() {
752752
throwsA(isA<AssertionError>()),
753753
);
754754
});
755+
756+
test('returns min/max if are equal', () {
757+
final it = Duration(days: -0);
758+
final min = Duration(days: 5);
759+
final max = min;
760+
expect(it.clamp(min: min, max: max), min);
761+
});
755762
});
756763
});
757764
}

0 commit comments

Comments
 (0)