from rapor import (
    en_yuksek_cirolu_urun,
    kaydi_coz,
    negatif_olmayan_sayi_coz,
    pozitif_tam_sayi_coz,
    satis_raporu,
    urun_adi_temizle,
)


assert urun_adi_temizle(" Kalem ") == "kalem"
assert urun_adi_temizle("İĞNE") == "iğne"
assert urun_adi_temizle("iğne") == "iğne"
assert urun_adi_temizle("ISPARTA") == "ısparta"

assert negatif_olmayan_sayi_coz("12,5") == 12.5
assert negatif_olmayan_sayi_coz("0") == 0
assert negatif_olmayan_sayi_coz("-1") is None
assert negatif_olmayan_sayi_coz("abc") is None

assert pozitif_tam_sayi_coz("3") == 3
assert pozitif_tam_sayi_coz("0") is None
assert pozitif_tam_sayi_coz("-2") is None
assert pozitif_tam_sayi_coz("abc") is None

assert kaydi_coz({"urun": " ", "fiyat": "10", "adet": "1"}) is None
assert kaydi_coz({"urun": "Kalem", "fiyat": "10", "adet": "0"}) is None

rapor = satis_raporu([
    {"urun": " Kalem ", "fiyat": "12,5", "adet": "3"},
    {"urun": "Defter", "fiyat": "45", "adet": "2"},
    {"urun": "İĞNE", "fiyat": "5,5", "adet": "4"},
    {"urun": "iğne", "fiyat": "5,5", "adet": "2"},
    {"urun": "Silgi", "fiyat": "8", "adet": "abc"},
    {"urun": "Cetvel", "fiyat": "10", "adet": "0"},
])

assert rapor["gecerli"] == 4
assert rapor["gecersiz"] == 2
assert abs(rapor["ciro"] - 160.5) < 0.001
assert rapor["urun_adetleri"] == {"kalem": 3, "defter": 2, "iğne": 6}
assert rapor["lider"] == ("defter", 90.0)
assert en_yuksek_cirolu_urun({}) is None

print("Bütün kontroller geçti.")
