@@ -346,6 +346,16 @@ func TestOverwrites(t *testing.T) {
346346 assert .Equal (t , Entries {entry }, overwritten )
347347}
348348
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+
349359func TestTreeApply (t * testing.T ) {
350360 tree , entries := constructMultiDimensionalOrderedTree (2 )
351361
@@ -610,3 +620,25 @@ func BenchmarkDeleteSecondDimension(b *testing.B) {
610620 tree .InsertAtDimension (2 , 0 , - 1 )
611621 }
612622}
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