eq method
Helper function to check the equality of any two objects.
Implementation
bool eq(dynamic a, dynamic b) {
if (a == null || b == null) {
return true;
}
if (a is num && b is num) {
return (a - b).abs() < tolerance;
}
if (a is Offset && b is Offset) {
return eq(a.dx, b.dx) && eq(a.dy, b.dy);
}
if (a is List && b is List) {
return a.length == b.length &&
Iterable<int>.generate(a.length).every((i) => eq(a[i], b[i]));
}
if (a is Rect && b is Rect) {
return eq(_rectAsList(a), _rectAsList(b));
}
if (a is RRect && b is RRect) {
return eq(_rrectAsList(a), _rrectAsList(b));
}
if (a is Paint && b is Paint) {
return eq(_paintAsList(a), _paintAsList(b));
}
return a == b;
}