61 lines
1.6 KiB
Go
61 lines
1.6 KiB
Go
|
|
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])
|
||
|
|
}
|
||
|
|
}
|