I cannot get check50 to greenlight my test_fuel.py. Having sat on this problem like forever, I neeed help:
Fuel.py works as expected, all cases I tried work as specified
The tests in test_fuel are pretty exaustive and - when run alone - are successful
But whenever I try check50, I get rejected on all but the two basic start tests. I checked the other postings here on the issue, but whatever I changed wont help. Is there something really simple I overlooked?
fuel.py:
def main():
print("Fuel Gauge")
s = input("Input fraction:")
pvalue = convert(s)
tvalue = gauge(pvalue)
print(tvalue)
def convert(inpvalue: str):
inpvalue = inpvalue.strip()
x, y = inpvalue.split("/")
x = int(x)
y = int(y)
if y == 0:
raise ZeroDivisionError
if (x > y) or (x < 0) or (y < 0):
raise ValueError
s = 100 * (x / y)
t = round(s)
if t < 0:
raise ValueError
return t
def gauge(f: int):
if f <= 1:
return("E")
elif f >= 99:
return("F")
else:
return(f"{f:.0f}%")
if __name__ == "__main__":
main()
test_fuel.py:
import pytest
from fuel import convert
from fuel import gauge
def test_convert():
assert convert("1/100") == 1
assert convert("0/2") == 0
assert convert("1/2") == 50
assert convert("3/4") == 75
assert convert("1/3") == 33
assert convert("1/9") == 11
def test_valueerror():
with pytest.raises(ValueError):
assert convert("AA")
assert convert("2.5/1")
assert convert("a/h")
assert convert("cat")
assert convert("-1/100")
assert convert("3/1")
assert convert("3/-1")
def test_zerodivision():
with pytest.raises(ZeroDivisionError):
assert convert("1/0")
assert convert("0/0")
def test_gauge():
assert gauge(0) == "E"
assert gauge(1) != "1%"
assert gauge(2) == "2%"
assert gauge(50) == "50%"
assert gauge(98) == "98%"
assert gauge(99) != "99%"
assert gauge(100) == "F"
def main():
test_convert()
test_valueerror()
test_zerodivision()
test_gauge()
main()
import pytest
from fuel import convert
from fuel import gauge
def test_convert():
assert convert("1/100") == 1
assert convert("0/2") == 0
assert convert("1/2") == 50
assert convert("3/4") == 75
assert convert("1/3") == 33
assert convert("1/9") == 11
def test_valueerror():
with pytest.raises(ValueError):
assert convert("AA")
assert convert("2.5/1")
assert convert("a/h")
assert convert("cat")
assert convert("-1/100")
assert convert("3/1")
assert convert("3/-1")
def test_zerodivision():
with pytest.raises(ZeroDivisionError):
assert convert("1/0")
assert convert("0/0")
def test_gauge():
assert gauge(0) == "E"
assert gauge(1) != "1%"
assert gauge(2) == "2%"
assert gauge(50) == "50%"
assert gauge(98) == "98%"
assert gauge(99) != "99%"
assert gauge(100) == "F"
def main():
test_convert()
test_valueerror()
test_zerodivision()
test_gauge()
main()
import pytest
from fuel import convert
from fuel import gauge
def test_convert():
assert convert("1/100") == 1
assert convert("0/2") == 0
assert convert("1/2") == 50
assert convert("3/4") == 75
assert convert("1/3") == 33
assert convert("1/9") == 11
def test_valueerror():
with pytest.raises(ValueError):
assert convert("AA")
assert convert("2.5/1")
assert convert("a/h")
assert convert("cat")
assert convert("-1/100")
assert convert("3/1")
assert convert("3/-1")
def test_zerodivision():
with pytest.raises(ZeroDivisionError):
assert convert("1/0")
assert convert("0/0")
def test_gauge():
assert gauge(0) == "E"
assert gauge(1) != "1%"
assert gauge(2) == "2%"
assert gauge(50) == "50%"
assert gauge(98) == "98%"
assert gauge(99) != "99%"
assert gauge(100) == "F"
def main():
test_convert()
test_valueerror()
test_zerodivision()
test_gauge()
main()