@@ -346,6 +346,16 @@ func TestOverwrites(t *testing.T) {
346
346
assert .Equal (t , Entries {entry }, overwritten )
347
347
}
348
348
349
+ func TestGet (t * testing.T ) {
350
+ tree , entries := constructMultiDimensionalOrderedTree (2 )
351
+
352
+ result := tree .Get (entries ... )
353
+ assert .Equal (t , entries , result )
354
+
355
+ result = tree .Get (constructMockEntry (10000 , 5000 , 5000 ))
356
+ assert .Equal (t , Entries {nil }, result )
357
+ }
358
+
349
359
func TestTreeApply (t * testing.T ) {
350
360
tree , entries := constructMultiDimensionalOrderedTree (2 )
351
361
@@ -610,3 +620,25 @@ func BenchmarkDeleteSecondDimension(b *testing.B) {
610
620
tree .InsertAtDimension (2 , 0 , - 1 )
611
621
}
612
622
}
623
+
624
+ func BenchmarkGetMultiDimensions (b * testing.B ) {
625
+ numItemsX := 10000
626
+ numItemsY := 100
627
+
628
+ tree := newOrderedTree (2 )
629
+ entries := make (Entries , 0 , numItemsY * numItemsX )
630
+
631
+ for i := 0 ; i < numItemsX ; i ++ {
632
+ for j := 0 ; j < numItemsY ; j ++ {
633
+ e := constructMockEntry (uint64 (j * numItemsY + i ), int64 (i ), int64 (j ))
634
+ entries = append (entries , e )
635
+ }
636
+ }
637
+
638
+ tree .Add (entries ... )
639
+ b .ResetTimer ()
640
+
641
+ for i := 0 ; i < b .N ; i ++ {
642
+ tree .Get (entries [i % len (entries )])
643
+ }
644
+ }
0 commit comments