package util

import (
	"testing"
)

func TestTTLReadWrite(t *testing.T) {
	var tests = []struct {
		n        int // input
		expected int // expected result
	}{
		{0, -1},
		{1, 0},
		{1 << 4, 0},
		{1 << 6, 1},
		{1 << 8, 2},
		{1 << 10, 3},
		{1 << 12, 4},
		{1 << 14, 5},
		{1 << 16, 6},
		{1 << 18, 7},
		{1<<4 + 1, 1},
		{1<<6 + 1, 2},
		{1<<8 + 1, 3},
		{1<<10 + 1, 4},
		{1<<12 + 1, 5},
		{1<<14 + 1, 6},
		{1<<16 + 1, 7},
		{1<<18 + 1, 8},
		{1<<28 - 1, 12},
		{1 << 28, 12},
		{1<<28 + 2134, -1},
		{1080, 4},
	}
	for _, tt := range tests {
		actual := findChunkPoolIndex(tt.n)
		if actual != tt.expected {
			t.Errorf("findChunkPoolIndex(%d): expected %d, actual %d", tt.n, tt.expected, actual)
		}
	}
}