go-hep.org/x/hep@v0.38.1/groot/rtree/bkreader_test.go (about)

     1  // Copyright ©2020 The go-hep Authors. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package rtree
     6  
     7  import "testing"
     8  
     9  func TestBkReaderFindBaskets(t *testing.T) {
    10  	for _, tc := range []struct {
    11  		spans []rspan
    12  		span  [2]int64
    13  		want  [2]int
    14  	}{
    15  		{
    16  			spans: []rspan{{beg: 0, end: 1}},
    17  			span:  [2]int64{0, 1},
    18  			want:  [2]int{0, 1},
    19  		},
    20  		{
    21  			spans: []rspan{{beg: 0, end: 2}},
    22  			span:  [2]int64{0, 1},
    23  			want:  [2]int{0, 1},
    24  		},
    25  		{
    26  			spans: []rspan{{beg: 0, end: 2}, {beg: 2, end: 5}},
    27  			span:  [2]int64{0, 5},
    28  			want:  [2]int{0, 2},
    29  		},
    30  		{
    31  			spans: []rspan{{beg: 0, end: 2}, {beg: 2, end: 5}},
    32  			span:  [2]int64{0, 2},
    33  			want:  [2]int{0, 1},
    34  		},
    35  		{
    36  			spans: []rspan{{beg: 0, end: 2}, {beg: 2, end: 5}},
    37  			span:  [2]int64{2, 3},
    38  			want:  [2]int{1, 2},
    39  		},
    40  		{
    41  			spans: []rspan{{beg: 0, end: 2}, {beg: 2, end: 5}, {beg: 5, end: 10}},
    42  			span:  [2]int64{2, 3},
    43  			want:  [2]int{1, 2},
    44  		},
    45  		{
    46  			spans: []rspan{{beg: 0, end: 2}, {beg: 2, end: 5}, {beg: 5, end: 10}},
    47  			span:  [2]int64{2, 5},
    48  			want:  [2]int{1, 2},
    49  		},
    50  		{
    51  			spans: []rspan{{beg: 0, end: 2}, {beg: 2, end: 5}, {beg: 5, end: 10}},
    52  			span:  [2]int64{2, 6},
    53  			want:  [2]int{1, 3},
    54  		},
    55  	} {
    56  		t.Run("", func(t *testing.T) {
    57  			bkr := &bkreader{spans: tc.spans}
    58  			ibeg, iend := bkr.findBaskets(tc.span[0], tc.span[1])
    59  			got := [2]int{ibeg, iend}
    60  			if got, want := got, tc.want; got != want {
    61  				t.Fatalf("invalid range for span %#v, got=%v, want=%v",
    62  					tc.span, got, want,
    63  				)
    64  			}
    65  		})
    66  	}
    67  }