flip method

CondorcetPair<TCandidate> flip(
  1. TCandidate firstCandidate
)

Implementation

CondorcetPair<TCandidate> flip(TCandidate firstCandidate) {
  assert(firstCandidate == candidate1 || firstCandidate == candidate2);

  var can2 = firstCandidate == candidate1 ? candidate2 : candidate1;

  var flipped = false;
  if (firstCandidate.compareTo(can2) > 0) {
    final temp = can2;
    can2 = firstCandidate;
    firstCandidate = temp;
    flipped = true;
  }

  assert(firstCandidate == candidate1, 'can1');
  assert(can2 == candidate2, 'can2');

  if (flipped) {
    return CondorcetPair._internal(
      can2,
      firstCandidate,
      secondOverFirst,
      firstOverSecond,
      ties,
    );
  } else {
    return this;
  }
}