37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
from src.engine.utils import get_suit,get_tile_name
|
||
|
||
def test_get_suit():
|
||
# 测试条花色(0-35)
|
||
for i in range(36):
|
||
assert get_suit(i) == "条", f"测试失败:索引 {i} 应该是 '条'"
|
||
|
||
# 测试筒花色(36-71)
|
||
for i in range(36, 72):
|
||
assert get_suit(i) == "筒", f"测试失败:索引 {i} 应该是 '筒'"
|
||
|
||
# 测试万花色(72-107)
|
||
for i in range(72, 108):
|
||
assert get_suit(i) == "万", f"测试失败:索引 {i} 应该是 '万'"
|
||
|
||
# 测试无效索引
|
||
try:
|
||
get_suit(108)
|
||
assert False, "测试失败:索引 108 应该抛出 ValueError"
|
||
except ValueError:
|
||
pass # 如果抛出 ValueError,测试通过
|
||
|
||
print("get_suit 测试通过!")
|
||
|
||
def test_get_tile_name():
|
||
# 测试每个牌的名称是否正确
|
||
for i in range(108):
|
||
tile_name = get_tile_name(i)
|
||
assert tile_name == f"{i % 36 + 1}{get_suit(i)}", \
|
||
f"测试失败:索引 {i} 应该是 '{i % 36 + 1}{get_suit(i)}',但实际返回 '{tile_name}'"
|
||
|
||
print("get_tile_name 测试通过!")
|
||
|
||
# 运行测试
|
||
test_get_suit()
|
||
test_get_tile_name()
|