CS 50 Phyton: test_fuel fails check50
18:10 16 Feb 2026

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()
python cs50