def test_avg_returns_zero_after_filterd_list_is_empty():
    c = Calc()

    res = c.avg([1, 2, 3], lower=2, upper=3)

    assert res == 0
def test_avg_correct_average():
    c = Calc()

    res = c.avg([2, 5, 12, 98])

    assert res == 29.25
def test_avg_returns_zero_for_empty_list():
    c = Calc()

    res = c.avg([])

    assert res == 0
def test_avg_removes_with_both_bounds():
    c = Calc()

    res = c.avg([2, 3, 3, 4, 5], lower=2, upper=5)

    assert res == pytest.approx(3.333333)
def test_avg_removes_lower_outlier_at_border():
    c = Calc()

    res = c.avg([2, 3, 3, 4], lower=2)

    assert res == pytest.approx(3.333333)
def test_avg_removes_upper_outlier_at_border():
    c = Calc()

    res = c.avg([3, 3, 4, 5], upper=5)

    assert res == pytest.approx(3.333333)
def test_avg_removes_upper_outliers():
    c = Calc()

    res = c.avg([3, 3, 4, 98, 101], upper=10)

    assert res == pytest.approx(3.333333)