Add equals and hasCode to Tween (#37793)
This commit is contained in:
parent
f90c5e2084
commit
b39e315e5c
@ -2,7 +2,7 @@
|
||||
// Use of this source code is governed by a BSD-style license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
import 'dart:ui' show Color, Size, Rect;
|
||||
import 'dart:ui' show Color, Rect, Size, hashValues;
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
||||
@ -260,6 +260,21 @@ class Tween<T extends dynamic> extends Animatable<T> {
|
||||
return lerp(t);
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode {
|
||||
return hashValues(begin, end);
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(dynamic other) {
|
||||
if (identical(this, other))
|
||||
return true;
|
||||
if (other.runtimeType != runtimeType)
|
||||
return false;
|
||||
final Tween<T> typedOther = other;
|
||||
return typedOther.begin == begin && typedOther.end == end;
|
||||
}
|
||||
|
||||
@override
|
||||
String toString() => '$runtimeType($begin \u2192 $end)';
|
||||
}
|
||||
|
@ -93,4 +93,18 @@ void main() {
|
||||
expect(tween.lerp(0.5), 100.0);
|
||||
expect(tween.lerp(1.0), 100.0);
|
||||
});
|
||||
|
||||
test('Tween equals', () {
|
||||
final Tween<double> doubleTween1 = Tween<double>(begin: 10, end: 22);
|
||||
final Tween<double> doubleTween2 = Tween<double>(begin: 10, end: 22);
|
||||
final Tween<double> doubleTween3 = Tween<double>(begin: 33, end: 44);
|
||||
final Tween<int> intTween = Tween<int>(begin: 33, end: 44);
|
||||
final Tween<double> constantTween = ConstantTween<double>(10);
|
||||
|
||||
expect(doubleTween1 == doubleTween1, isTrue);
|
||||
expect(doubleTween1 == doubleTween2, isTrue);
|
||||
expect(doubleTween2 == doubleTween3, isFalse);
|
||||
expect(doubleTween2 == intTween, isFalse);
|
||||
expect(doubleTween1 == constantTween, isFalse);
|
||||
});
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user