25 lines
700 B
Python
25 lines
700 B
Python
# requires: pytest
|
|
"""人工补充的边界测试:AI 第一版代码在“优惠券大于金额”时返回了负数,这些测试把它拦了下来。"""
|
|
from decimal import Decimal
|
|
|
|
import pytest
|
|
|
|
from pricing import final_price
|
|
|
|
|
|
def test_normal():
|
|
assert final_price(Decimal("100"), Decimal("10"), vip=False) == Decimal("90.00")
|
|
|
|
|
|
def test_vip_rounding():
|
|
assert final_price(Decimal("10.01"), Decimal("0"), vip=True) == Decimal("9.51")
|
|
|
|
|
|
def test_coupon_larger_than_amount():
|
|
assert final_price(Decimal("5"), Decimal("10"), vip=True) == Decimal("0.00")
|
|
|
|
|
|
def test_negative_rejected():
|
|
with pytest.raises(ValueError):
|
|
final_price(Decimal("-1"), Decimal("0"), vip=False)
|