package murex.pop.dojo.listoflistsmedian;
import java.util.Objects;
public class Ordinality {
public static final Ordinality EMPTY = new Ordinality(0, 0, 0);
private final int above;
private final int below;
private int equal;
public Ordinality(int below, int above, int equal) {
this.above = above;
this.below = below;
this.equal = equal;
}
boolean isMedian() {
return Math.abs(above - below) < equal;
}
Ordinality update(Ordinality ordinality) {
return new Ordinality(below + ordinality.below, above + ordinality.above, equal + ordinality.equal);
}
@Override
public int hashCode() {
return Objects.hash(above, below);
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
final Ordinality other = (Ordinality) obj;
return Objects.equals(this.above, other.above) && Objects.equals(this.below, other.below);
}
}