68 lines
1.9 KiB
Go
Raw Normal View History

2025-05-09 18:28:15 +08:00
package internal
import (
"encoding/json"
"fmt"
"github.com/go-playground/assert/v2"
"strconv"
"testing"
)
var count = []int{123, 1, 10, 31, 1} // 120,3+1+6,4+6,10,10,5+1
var serverInfoList1 = make(ServerInfoList, 0)
func init() {
for i, c := range count {
serverInfoList1 = append(serverInfoList1, &ServerInfo{
ServerId: strconv.Itoa(i),
TotalAccountCount: c,
})
}
}
func TestServer(t *testing.T) {
totalCount, pageList := serverInfoList1.TidyToPageList(10, func(info *ServerInfo) int { return info.TotalAccountCount })
assert.Equal(t, totalCount, 166)
data, _ := json.MarshalIndent(pageList, "", " ")
fmt.Printf("%v", string(data))
// 头尾
assert.Equal(t, len(pageList), 17)
page1 := pageList[0]
assert.Equal(t, page1.PageNo, 1)
assert.Equal(t, page1.Count, 10)
page17 := pageList[16]
assert.Equal(t, page17.PageNo, 17)
assert.Equal(t, page17.Count, 6)
// 第13个有3+1+6三个服务器数量组成
page13 := pageList[12]
assert.Equal(t, len(page13.ServerList), 3)
assert.Equal(t, page13.ServerList[0].Offset, 120)
assert.Equal(t, page13.ServerList[0].Count, 3)
assert.Equal(t, page13.ServerList[1].Offset, 0)
assert.Equal(t, page13.ServerList[1].Count, 1)
assert.Equal(t, page13.ServerList[2].Offset, 0)
assert.Equal(t, page13.ServerList[2].Count, 6)
// 第14个有6+4
page14 := pageList[13]
assert.Equal(t, len(page14.ServerList), 2)
assert.Equal(t, page14.ServerList[0].Offset, 6)
assert.Equal(t, page14.ServerList[0].Count, 4)
assert.Equal(t, page14.ServerList[1].Offset, 0)
assert.Equal(t, page14.ServerList[1].Count, 6)
page15 := pageList[14]
assert.Equal(t, len(page15.ServerList), 1)
assert.Equal(t, page15.ServerList[0].Offset, 6)
assert.Equal(t, page15.ServerList[0].Count, 10)
page16 := pageList[15]
assert.Equal(t, len(page16.ServerList), 1)
assert.Equal(t, page16.ServerList[0].Offset, 16)
assert.Equal(t, page16.ServerList[0].Count, 10)
}