Two quantity ranges are considered equal only if their endpoints are exactly equal.
@override bool operator ==(dynamic obj) { if (obj is! QuantityRange) return false; return (q1 == obj.q1) && (q2 == obj.q2); }