@Test
  public void candidateIsMuchCloser() {
    SquareNode node0 = new SquareNode();
    SquareNode node1 = new SquareNode();

    node0.largestSide = 2;
    node1.largestSide = 1;

    SquaresIntoCrossClusters alg = new SquaresIntoCrossClusters(5, -1);

    // test obvious cases
    assertTrue(alg.candidateIsMuchCloser(node0, node1, 0));
    assertFalse(alg.candidateIsMuchCloser(node0, node1, 20));

    double frac = alg.tooFarFraction;
    node1.corners = createSquare(12, 10);
    // the closest neighboring node should be 1 away
    assertTrue(alg.candidateIsMuchCloser(node0, node1, Math.pow(2 * frac - 1e-6, 2)));
    assertFalse(alg.candidateIsMuchCloser(node0, node1, Math.pow(2 * frac + 1e-6, 2)));
  }