update: readme
This commit is contained in:
81
tests/test_breakthrough_logic.py
Normal file
81
tests/test_breakthrough_logic.py
Normal file
@@ -0,0 +1,81 @@
|
||||
import pytest
|
||||
from src.classes.cultivation import CultivationProgress, Realm, Stage, REALM_ORDER, LEVELS_PER_REALM
|
||||
|
||||
def test_breakthrough_normal(dummy_avatar):
|
||||
"""
|
||||
测试正常突破逻辑:从练气圆满突破到筑基前期
|
||||
"""
|
||||
# 练气圆满是 30 级 (LEVELS_PER_REALM * 1)
|
||||
qi_max_level = 30
|
||||
|
||||
# 设置角色状态
|
||||
cp = CultivationProgress(level=qi_max_level, exp=0)
|
||||
dummy_avatar.cultivation_progress = cp
|
||||
|
||||
# 验证当前状态
|
||||
assert cp.realm == Realm.Qi_Refinement
|
||||
assert cp.is_in_bottleneck() is True
|
||||
assert cp.can_break_through() is True
|
||||
|
||||
# 执行突破
|
||||
cp.break_through()
|
||||
|
||||
# 验证突破后状态
|
||||
# 应该升级到 31 级
|
||||
assert cp.level == 31
|
||||
# 境界应该是 筑基
|
||||
assert cp.realm == Realm.Foundation_Establishment
|
||||
# 阶段应该是 前期
|
||||
assert cp.stage == Stage.Early_Stage
|
||||
# 不再处于瓶颈
|
||||
assert cp.is_in_bottleneck() is False
|
||||
|
||||
def test_breakthrough_max_realm_limit(dummy_avatar):
|
||||
"""
|
||||
测试最高境界限制:元婴圆满(目前最高等级)不能再突破
|
||||
"""
|
||||
# 计算最高等级
|
||||
# 目前有 4 个境界,每个 30 级,最高 120 级
|
||||
max_level = len(REALM_ORDER) * LEVELS_PER_REALM
|
||||
|
||||
# 设置角色状态为最高等级
|
||||
cp = CultivationProgress(level=max_level, exp=0)
|
||||
dummy_avatar.cultivation_progress = cp
|
||||
|
||||
# 验证当前状态
|
||||
assert cp.realm == Realm.Nascent_Soul
|
||||
# 理论上它是 30/60/90/120,模 30 为 0,所以 is_in_bottleneck 会返回 True
|
||||
assert cp.is_in_bottleneck() is True
|
||||
|
||||
# 关键测试点:can_break_through 应该返回 False,因为已经封顶了
|
||||
assert cp.can_break_through() is False
|
||||
|
||||
def test_not_in_bottleneck(dummy_avatar):
|
||||
"""
|
||||
测试非瓶颈期不能突破
|
||||
"""
|
||||
# 随便设一个中间等级,比如 15 级(练气中期)
|
||||
cp = CultivationProgress(level=15, exp=0)
|
||||
dummy_avatar.cultivation_progress = cp
|
||||
|
||||
assert cp.is_in_bottleneck() is False
|
||||
assert cp.can_break_through() is False
|
||||
|
||||
def test_breakthrough_intermediate_bottleneck(dummy_avatar):
|
||||
"""
|
||||
测试中间境界的突破:筑基圆满 -> 金丹
|
||||
"""
|
||||
# 筑基圆满是 60 级
|
||||
foundation_max_level = 60
|
||||
|
||||
cp = CultivationProgress(level=foundation_max_level, exp=0)
|
||||
dummy_avatar.cultivation_progress = cp
|
||||
|
||||
assert cp.realm == Realm.Foundation_Establishment
|
||||
assert cp.can_break_through() is True
|
||||
|
||||
cp.break_through()
|
||||
|
||||
assert cp.level == 61
|
||||
assert cp.realm == Realm.Core_Formation
|
||||
assert cp.stage == Stage.Early_Stage
|
||||
Reference in New Issue
Block a user