package pagination import "testing" func TestCalcPaginationTotalPagesZeroItems(t *testing.T) { if got := CalcPaginationTotalPages(0, 10); got != 0 { t.Errorf("expected 0, got %d", got) } } func TestCalcPaginationTotalPagesZeroLimit(t *testing.T) { if got := CalcPaginationTotalPages(100, 0); got != 0 { t.Errorf("expected 0, got %d", got) } } func TestCalcPaginationTotalPagesZeroBoth(t *testing.T) { if got := CalcPaginationTotalPages(0, 0); got != 0 { t.Errorf("expected 0, got %d", got) } } func TestCalcPaginationTotalPagesExactMultiple(t *testing.T) { if got := CalcPaginationTotalPages(100, 10); got != 10 { t.Errorf("expected 10, got %d", got) } } func TestCalcPaginationTotalPagesPartialLastPage(t *testing.T) { if got := CalcPaginationTotalPages(101, 10); got != 11 { t.Errorf("expected 11, got %d", got) } } func TestCalcPaginationTotalPagesSingleItem(t *testing.T) { if got := CalcPaginationTotalPages(1, 10); got != 1 { t.Errorf("expected 1, got %d", got) } } func TestCalcPaginationTotalPagesItemsLessThanLimit(t *testing.T) { if got := CalcPaginationTotalPages(5, 10); got != 1 { t.Errorf("expected 1, got %d", got) } } func TestCalcPaginationTotalPagesLimitOfOne(t *testing.T) { if got := CalcPaginationTotalPages(7, 1); got != 7 { t.Errorf("expected 7, got %d", got) } } func TestCalcPaginationTotalPagesItemsEqualLimit(t *testing.T) { if got := CalcPaginationTotalPages(10, 10); got != 1 { t.Errorf("expected 1, got %d", got) } } func TestCalcPaginationTotalPagesLargeNumbers(t *testing.T) { if got := CalcPaginationTotalPages(1_000_000, 250); got != 4000 { t.Errorf("expected 4000, got %d", got) } } func TestCalcPaginationTotalPagesOneMoreThanMultiple(t *testing.T) { if got := CalcPaginationTotalPages(11, 5); got != 3 { t.Errorf("expected 3, got %d", got) } } func TestPaginationStructFields(t *testing.T) { p := Pagination{ Page: 2, Limit: 25, TotalPages: 4, TotalItems: 100, CurrentPageCount: 25, } if p.Page != 2 || p.Limit != 25 || p.TotalPages != 4 || p.TotalItems != 100 || p.CurrentPageCount != 25 { t.Errorf("unexpected pagination struct values: %+v", p) } }