69 行
2.1 KiB
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)
|
|
}
|
|
}
|
|
}
|