github.com/siglens/siglens@v0.0.0-20240328180423-f7ce9ae441ed/pkg/segment/tracing/utils/lineartimefinding_test.go (about)

     1  package utils
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  func TestFindPercentileData(t *testing.T) {
     8  	testCases := []struct {
     9  		arr        []uint64
    10  		percentile int
    11  		expected   uint64
    12  	}{
    13  		{
    14  			arr:        []uint64{44, 11, 22},
    15  			percentile: 66,
    16  			expected:   22,
    17  		},
    18  		{
    19  			arr:        []uint64{44, 11, 22},
    20  			percentile: 67,
    21  			expected:   44,
    22  		},
    23  		{
    24  			arr:        []uint64{20, 50, 40, 30, 10},
    25  			percentile: 35,
    26  			expected:   20,
    27  		},
    28  		{
    29  			arr:        []uint64{20, 50, 40, 30, 10},
    30  			percentile: 95,
    31  			expected:   50,
    32  		},
    33  	}
    34  
    35  	for _, tc := range testCases {
    36  		result := FindPercentileData(tc.arr, tc.percentile)
    37  		if result != tc.expected {
    38  			t.Errorf("Expected %d percentile to be %d, but got %d", tc.percentile, tc.expected, result)
    39  		}
    40  	}
    41  }