operator == method
Two Numbers will be equal when the represented values are equal, even if the Number subtypes are different.
Implementation
@override
bool operator ==(dynamic obj) {
if (obj is num && obj.isNaN) return value.isNaN;
if (obj is Real || obj is num) return obj == value;
if (obj is Imaginary) return value == 0.0 && obj.value.toDouble() == 0.0;
if (obj is Complex) return obj.real.toDouble() == value && obj.imaginary.toDouble() == 0.0;
return false;
}