Files
bl/logic/service/fight/slot_alloc_test.go

61 lines
1.6 KiB
Go
Raw Normal View History

package fight
import (
"blazing/logic/service/common"
"blazing/modules/player/model"
"testing"
)
func TestArrangePetsBySlotLimit(t *testing.T) {
pets := []model.PetInfo{
{ID: 1, Hp: 10},
{ID: 2, Hp: 10},
{ID: 3, Hp: 10},
{ID: 4, Hp: 10},
{ID: 5, Hp: 10},
{ID: 6, Hp: 10},
}
slots := ArrangePetsBySlotLimit(pets, 3)
if len(slots) != 3 {
t.Fatalf("expected 3 slots, got %d", len(slots))
}
if len(slots[0]) != 2 || slots[0][0].ID != 1 || slots[0][1].ID != 4 {
t.Fatalf("slot 0 mismatch: %+v", slots[0])
}
if len(slots[1]) != 2 || slots[1][0].ID != 2 || slots[1][1].ID != 5 {
t.Fatalf("slot 1 mismatch: %+v", slots[1])
}
if len(slots[2]) != 2 || slots[2][0].ID != 3 || slots[2][1].ID != 6 {
t.Fatalf("slot 2 mismatch: %+v", slots[2])
}
}
func TestExpandPlayersWithSlotLimit(t *testing.T) {
players := []common.PlayerI{&stubPlayer{}, &stubPlayer{}}
petsByPlayer := [][]model.PetInfo{
{
{ID: 1, Hp: 10},
{ID: 2, Hp: 10},
{ID: 3, Hp: 10},
},
{
{ID: 11, Hp: 10},
{ID: 12, Hp: 10},
},
}
flatPlayers, flatSlots, err := ExpandPlayersWithSlotLimit(players, petsByPlayer, 1)
if err != 0 {
t.Fatalf("unexpected err: %v", err)
}
if len(flatPlayers) != 2 || len(flatSlots) != 2 {
t.Fatalf("unexpected flatten result: players=%d slots=%d", len(flatPlayers), len(flatSlots))
}
if len(flatSlots[0]) != 3 || flatSlots[0][0].ID != 1 || flatSlots[0][1].ID != 2 || flatSlots[0][2].ID != 3 {
t.Fatalf("player0 slot mismatch: %+v", flatSlots[0])
}
if len(flatSlots[1]) != 2 || flatSlots[1][0].ID != 11 || flatSlots[1][1].ID != 12 {
t.Fatalf("player1 slot mismatch: %+v", flatSlots[1])
}
}