コード例 #1
0
  public static KdTree createTreeDuplicates() {

    KdTree tree = new KdTree(2);

    tree.root = new KdTree.Node(new double[] {1, 2}, null);
    tree.root.split = 1;
    tree.root.left = new KdTree.Node(new double[] {1, 2}, null);
    tree.root.left.split = 0;
    tree.root.left.left = new KdTree.Node(new double[] {1, 2}, null);
    tree.root.left.left.split = -1;
    tree.root.left.right = null;
    tree.root.right = new KdTree.Node(new double[] {1, 2}, null);
    tree.root.right.split = -1;

    return tree;
  }
コード例 #2
0
  /** See if max distance is being respected */
  @Test
  public void findClosest_maxDistance() {
    KdTree tree = new KdTree(2);
    tree.root = new KdTree.Node(new double[] {1, 2}, null);

    KdTreeSearchN alg = createAlg();
    alg.setTree(tree);
    alg.setMaxDistance(2);

    found.reset();
    alg.findNeighbor(new double[] {11, 8}, 1, found);
    assertEquals(0, found.size);
    found.reset();
    alg.findNeighbor(new double[] {1, 1.5}, 1, found);
    assertEquals(1, found.size);
    assertTrue(found.data[0].node == tree.root);
  }