lawless/server/internal/domain/realm_test.go

69 行
2.1 KiB
Go

package domain
import "testing"
func TestRealmFullName(t *testing.T) {
if got := RealmFullName(2, 1); got != "筑基期·初期" {
t.Fatalf("RealmFullName(2,1) = %s, want 筑基期·初期", got)
}
if got := RealmFullName(5, 3); got != "化神期·圆满" {
t.Fatalf("RealmFullName(5,3) = %s, want 化神期·圆满", got)
}
// 非法境界返回未知,不 panic
if got := RealmFullName(99, 99); got != "未知境界·未知" {
t.Fatalf("RealmFullName(99,99) = %s, want 未知境界·未知", got)
}
}
func TestDefaultExpToNext(t *testing.T) {
cases := []struct {
tier, minor int32
want int64
}{
{1, 1, 1000},
{1, 2, 2500},
{1, 3, 10000},
{2, 1, 5000},
{3, 2, 62500},
{6, 3, 30000000},
}
for _, c := range cases {
if got := DefaultExpToNext(c.tier, c.minor); got != c.want {
t.Fatalf("DefaultExpToNext(%d,%d) = %d, want %d", c.tier, c.minor, got, c.want)
}
}
}
func TestDefaultTribulationBaseRate(t *testing.T) {
// 大境界渡劫成功率应低于同境界层内小境界突破
if got := DefaultTribulationBaseRate(2, true); got != 0.55 {
t.Fatalf("DefaultTribulationBaseRate(2,true) = %v, want 0.55", got)
}
if got := DefaultTribulationBaseRate(2, false); got != 0.70 {
t.Fatalf("DefaultTribulationBaseRate(2,false) = %v, want 0.70", got)
}
if got := DefaultTribulationBaseRate(6, true); got != 0.35 {
t.Fatalf("DefaultTribulationBaseRate(6,true) = %v, want 0.35", got)
}
// 炼气期不存在渡劫,应为 100%
if got := DefaultTribulationBaseRate(1, false); got != 1.0 {
t.Fatalf("DefaultTribulationBaseRate(1,false) = %v, want 1.0", got)
}
}
func TestThunderAndFireLayerCoef(t *testing.T) {
// 境界越高,系数越大
thunderCases := map[int32]float64{2: 1.0, 3: 1.2, 4: 1.5, 5: 1.8, 6: 2.2}
for tier, want := range thunderCases {
if got := ThunderLayerCoef(tier); got != want {
t.Fatalf("ThunderLayerCoef(%d) = %v, want %v", tier, got, want)
}
}
fireCases := map[int32]float64{2: 1.0, 3: 1.3, 4: 1.6, 5: 2.0, 6: 2.5}
for tier, want := range fireCases {
if got := FireLayerCoef(tier); got != want {
t.Fatalf("FireLayerCoef(%d) = %v, want %v", tier, got, want)
}
}
}