Imyitwarire Myiza yo Gukora Kode n'Isuzuma ry'Ikode Ryiza
Reba IgitaboUrugero rw'inzira nziza. Ibyiciro icumi byo gusuzuma buri pull request usuzuma.
x, tmp, data, calc, process; uburyo bwimbitse cyane; imikorere minini idakosoye> 0; nta bihe by'inyandiko zitari nziza; nta gerageza ku buryo bwahinduweNone nta gisobanuro; gufata amakosa atagaragara; uburyo bwo gutsindwa buhishweImvugo y'umwuga ku bihe bisanzwe byo gusuzuma. Koresha ibi nk'intangiriro.
PR ifite amakosa ku bushake kugira ngo wiyitoze. Ushobora kubona ibibazo?
def calc(items, user, d=False):
t = 0
for i in items:
if i["type"] == "book":
t += i["price"] * 0.9
else:
t += i["price"]
if d:
t = t - t * 0.1
if user is not None:
if "is_premium" in user:
if user["is_premium"] == True:
t = t - t * 0.05
return t
def process_cart(items, user):
total = calc(items, user, True)
print("cart processed")
return totalfrom src.cart import calc
def test_calc():
items = [{"type": "book", "price": 100}]
user = {"is_premium": True}
assert calc(items, user, True) > 0# Cart Project
cart logiccalc ni rusange cyane - rigomba kuba calculate_cart_totald ntibigaragara - bigomba kuba discount_enabledt na i ntibisobanura0.9, 0.1, 0.05 igomba kuba ari indangagaciro zifite amazinaif zimbitse cyane ku kugenzura premium - koresha .get()process_cart ifite ingaruka z'inyuma (print) ivanze n'uburyo bw'ubucuruzid=False byoherejwe nka True biteranya> 0 ntikugenzura ukuriprocess_cartBOOK_DISCOUNT_RATE = 0.10
GENERAL_DISCOUNT_RATE = 0.10
PREMIUM_DISCOUNT_RATE = 0.05
def calculate_item_price(item):
item_type = item["type"]
price = item["price"]
if item_type == "book":
return price * (1 - BOOK_DISCOUNT_RATE)
return price
def apply_general_discount(total_price, discount_enabled):
if not discount_enabled:
return total_price
return total_price * (1 - GENERAL_DISCOUNT_RATE)
def apply_premium_discount(total_price, user):
if not user or not user.get("is_premium", False):
return total_price
return total_price * (1 - PREMIUM_DISCOUNT_RATE)
def calculate_cart_total(items, user, discount_enabled=False):
total_price = 0
for item in items:
total_price += calculate_item_price(item)
total_price = apply_general_discount(total_price, discount_enabled)
total_price = apply_premium_discount(total_price, user)
return total_price
def process_cart(items, user):
total_price = calculate_cart_total(items, user, discount_enabled=True)
return total_priceUmukoro wo Gusuzuma PR: Suzuma Nk'Umujyanama w'Umwuga
Ibyo wohereza bigomba kuba birimo:
File: src/orders.py Line/Area: calc function Comment: The function name is too generic. Could we rename it to calculate_order_total for clarity? File: tests/test_orders.py Line/Area: test_calc Comment: This test only checks that the result is greater than zero. Could we assert the exact expected value instead?
Suzuma dosiye zikurikira:
def calc(items, vip=False):
total = 0
for i in items:
if i["type"] == "book":
total += i["price"] * 0.9
elif i["type"] == "electronics":
total += i["price"]
else:
total += i["price"]
if vip == True:
total = total - total * 0.05
return total
def checkout(items, user):
total = calc(items, user["vip"])
print("checking out order...")
print("total is", total)
return {"ok": True, "total": total}def f(x):
if x == None:
return False
return Truefrom src.orders import calc
def test_calc():
items = [{"type": "book", "price": 100}]
assert calc(items, False) > 0# Orders
Run it with python.Abajyanama beza ntibakora gusa ikode ikora. Bakora ikode isobanuka, igeragezeka, isuzumika, kandi yizewe.