github.com/scottcagno/storage@v1.8.0/pkg/lsmtree/_blockfile_test.go (about)

     1  package lsmtree
     2  
     3  import (
     4  	"log"
     5  	"os"
     6  	"testing"
     7  )
     8  
     9  func Test_align(t *testing.T) {
    10  	type args struct {
    11  		size int64
    12  	}
    13  	tests := []struct {
    14  		name string
    15  		args args
    16  		want int64
    17  	}{
    18  		{name: "size-0", args: args{0}, want: blockSize},
    19  		{name: "size-1250", args: args{1250}, want: blockSize},
    20  		{name: "size-2500", args: args{2500}, want: blockSize},
    21  		{name: "size-4000", args: args{4000}, want: blockSize},
    22  		{name: "size-4100", args: args{4100}, want: blockSize * 2},
    23  		{name: "size-6500", args: args{6500}, want: blockSize * 2},
    24  		{name: "size-7200", args: args{7200}, want: blockSize * 2},
    25  		{name: "size-8100", args: args{8100}, want: blockSize * 2},
    26  		{name: "size-8200", args: args{8200}, want: blockSize * 3},
    27  		{name: "size-9900", args: args{9900}, want: blockSize * 3},
    28  		{name: "size-10957", args: args{10957}, want: blockSize * 3},
    29  		{name: "size-12200", args: args{12200}, want: blockSize * 3},
    30  		{name: "size-12300", args: args{12300}, want: blockSize * 4},
    31  		{name: "size-16300", args: args{16300}, want: blockSize * 4},
    32  		{name: "size-16400", args: args{16400}, want: blockSize * 5},
    33  		{name: "size-20400", args: args{20400}, want: blockSize * 5},
    34  		{name: "size-20500", args: args{20500}, want: blockSize * 6},
    35  		{name: "size-24500", args: args{24500}, want: blockSize * 6},
    36  		{name: "size-24600", args: args{24600}, want: blockSize * 7},
    37  		{name: "size-28600", args: args{28600}, want: blockSize * 7},
    38  		{name: "size-28700", args: args{28700}, want: blockSize * 8},
    39  		{name: "size-32700", args: args{32700}, want: blockSize * 8},
    40  		{name: "size-32800", args: args{32800}, want: blockSize * 9},
    41  	}
    42  	for _, tt := range tests {
    43  		t.Run(tt.name, func(t *testing.T) {
    44  			if got := align(tt.args.size); got != tt.want {
    45  				t.Errorf("align() = %v, want %v", got, tt.want)
    46  			}
    47  		})
    48  	}
    49  }
    50  
    51  var setupDir = func() string {
    52  	dir, err := os.MkdirTemp("dir", "tmp-*")
    53  	if err != nil {
    54  		log.Panic(err)
    55  	}
    56  	return dir
    57  }
    58  
    59  var cleanupDir = func(dir string) {
    60  	err := os.RemoveAll(dir)
    61  	if err != nil {
    62  		log.Panic(err)
    63  	}
    64  }