summary refs log tree commit diff stats
path: root/tests/generics/trtree.nim
diff options
context:
space:
mode:
Diffstat (limited to 'tests/generics/trtree.nim')
-rw-r--r--tests/generics/trtree.nim48
1 files changed, 12 insertions, 36 deletions
diff --git a/tests/generics/trtree.nim b/tests/generics/trtree.nim
index 4bd7d11f4..b45ac8c83 100644
--- a/tests/generics/trtree.nim
+++ b/tests/generics/trtree.nim
@@ -72,20 +72,20 @@ proc newRStarTree*[M, D: Dim; RT, LT](minFill: range[30 .. 50] = 40): RStarTree[
   result.root = newLeaf[M, D, RT, LT]()
 
 proc center(r: Box): auto =#BoxCenter[r.len, type(r[0].a)] =
-  var result: BoxCenter[r.len, type(r[0].a)]
+  var res: BoxCenter[r.len, type(r[0].a)]
   for i in 0 .. r.high:
     when r[0].a is SomeInteger:
-      result[i] = (r[i].a + r[i].b) div 2
+      res[i] = (r[i].a + r[i].b) div 2
     elif r[0].a is SomeFloat:
-      result[i] = (r[i].a + r[i].b) / 2
+      res[i] = (r[i].a + r[i].b) / 2
     else: assert false
-  return result
+  return res
 
 proc distance(c1, c2: BoxCenter): auto =
-  var result: type(c1[0])
+  var res: type(c1[0])
   for i in 0 .. c1.high:
-    result += (c1[i] - c2[i]) * (c1[i] - c2[i])
-  return result
+    res += (c1[i] - c2[i]) * (c1[i] - c2[i])
+  return res
 
 proc overlap(r1, r2: Box): auto =
   result = type(r1[0].a)(1)
@@ -177,21 +177,6 @@ proc chooseSubtree[M, D: Dim; RT, LT](t: RTree[M, D, RT, LT]; b: Box[D, RT]; lev
     n = nn.a[i0].n
   return n
 
-proc chooseLeaf[M, D: Dim; RT, LT](t: RTree[M, D, RT, LT]; b: Box[D, RT]; level: int): H[M, D, RT, LT] =
-  assert level >= 0
-  var n = t.root
-  while n.level > level:
-    var j = -1 # selected index
-    var x: type(b[0].a)
-    let nn = Node[M, D, RT, LT](n)
-    for i in 0 ..< n.numEntries:
-      let h = enlargement(nn.a[i].b, b)
-      if j < 0 or h < x or (x == h and area(nn.a[i].b) < area(nn.a[j].b)):
-        x = h
-        j = i
-    n = nn.a[j].n
-  return n
-
 proc pickSeeds[M, D: Dim; RT, LT](t: RTree[M, D, RT, LT]; n: Node[M, D, RT, LT] | Leaf[M, D, RT, LT]; bx: Box[D, RT]): (int, int) =
   var i0, j0: int
   var bi, bj: type(bx)
@@ -412,12 +397,7 @@ proc adjustTree[M, D: Dim; RT, LT](t: RTree[M, D, RT, LT]; l, ll: H[M, D, RT, LT
         nn = nil
       else:
         let h: N[M, D, RT, LT] = (b, nn)
-        if t of RStarTree[M, D, RT, LT]:
-          nn = overflowTreatment(RStarTree[M, D, RT, LT](t), p, h)
-        elif t of RTree[M, D, RT, LT]:
-          nn = quadraticSplit(RTree[M, D, RT, LT](t), p, h)
-        else:
-          assert false
+        nn = quadraticSplit(t, p, h)
     assert n == H[M, D, RT, LT](p)
     assert n != nil
     assert t.root != nil
@@ -567,18 +547,16 @@ proc condenseTree[M, D: Dim; RT, LT](t: RTree[M, D, RT, LT]; leaf: Leaf[M, D, RT
           rsinsert(RStarTree[M, D, RT, LT](t), Node[M, D, RT, LT](n).a[i], n.level)
       else:
         assert false
-  elif t of RTree[M, D, RT, LT]:
+  else:
     for n in q:
       if n of Leaf[M, D, RT, LT]:
         for i in 0 ..< n.numEntries:
-          insert(RTree[M, D, RT, LT](t), Leaf[M, D, RT, LT](n).a[i])
+          insert(t, Leaf[M, D, RT, LT](n).a[i])
       elif n of Node[M, D, RT, LT]:
         for i in 0 ..< n.numEntries:
-          insert(RTree[M, D, RT, LT](t), Node[M, D, RT, LT](n).a[i], n.level)
+          insert(t, Node[M, D, RT, LT](n).a[i], n.level)
       else:
         assert false
-  else:
-    assert false
 
 proc delete*[M, D: Dim; RT, LT](t: RTree[M, D, RT, LT]; leaf: L[D, RT, LT]): bool {.discardable.} =
   let l = findLeaf(t, leaf)
@@ -659,6 +637,4 @@ proc test(n: int) =
       assert r.len == r2.len
       assert r.sorted(system.cmp) == r2.sorted(system.cmp)
 
-test(1500)
-
-# 651 lines
+test(500)