package slowstats

import (
	"testing"

	"github.com/stretchr/testify/require"
)

func TestGetTimeWindows(t *testing.T) {
	windows := GetTimeWindows(1710000000, 1710003600, 1)
	require.Len(t, windows, 1)
	require.Equal(t, int64(1710000000), windows[0].BeginTime)
	require.Equal(t, int64(1710003600), windows[0].EndTime)
	windows = GetTimeWindows(1710000001, 1710003601, 1)
	require.Len(t, windows, 2)
	require.Equal(t, int64(1710003600), windows[0].BeginTime)
	require.Equal(t, int64(1710007200), windows[0].EndTime)
	require.Equal(t, int64(1710000000), windows[1].BeginTime)
	require.Equal(t, int64(1710003600), windows[1].EndTime)
	windows = GetTimeWindows(1710000000, 1710003600, 3)
	require.Len(t, windows, 1)
	require.Equal(t, int64(1709996400), windows[0].BeginTime)
	require.Equal(t, int64(1710007200), windows[0].EndTime)
	windows = GetTimeWindows(1710000000, 1710000001, 1)
	require.Len(t, windows, 1)
	require.Equal(t, int64(1710000000), windows[0].BeginTime)
	require.Equal(t, int64(1710003600), windows[0].EndTime)
}
