def test_calc_speed(): # 128 bytes at 1 fps is 1184 bps assert calc_speed(1, 128) == 1184 # adding a byte adds 8 bits assert calc_speed(1, 129) == 8 + calc_speed(1, 128) # multiplying fps multiplies the result assert calc_speed(1000, 128) == 1000 * calc_speed(1, 128)
def test_check_max_speed(): # starting with 0 confidence should always return 0 confidence assert check_max_speed(10000, 64, 1000**3, Confidence(0.0)).percent == 0.0 # no fps should have no effect on confidence assert check_max_speed(0, 64, 1000**2, Confidence(99.0)).percent == 99.0 assert check_max_speed(0, 1000, 1000**2, Confidence(62.0)).percent == 62.0 # oversubscribed means no confidence assert check_max_speed(1000, 1024, calc_speed(1000, 1024) - 1, Confidence(100.0)).percent == 0.0 # undersubscribed means no change to confidence assert check_max_speed(1000, 1024, calc_speed(1000, 1024) * 2, Confidence(75.0)).percent == 75.0
def test_check_max_speed_reasons(): # starting with a reason should return that reason (maybe with additions) assert "foo" in check_max_speed(1, 64, 1000**3, Confidence(reason="foo")).reason assert "foo" in check_max_speed(1000, 100, calc_speed(1000, 100)/2, Confidence(reason="foo")).reason # no fps should have no effect on reason assert check_max_speed(0, 64, 1000**2, Confidence(99.0, "foo")).reason == "foo" assert check_max_speed(0, 1000, 1000**2, Confidence(62.0, "foo")).reason == "foo" # oversubscribed means no confidence and a reason reason = check_max_speed(1000, 1024, calc_speed(1000, 1024) - 1, Confidence()).reason assert "rate" in reason assert "max" in reason # undersubscribed means no effect on reason assert check_max_speed(1000, 1024, calc_speed(1000, 1024) * 2, Confidence(75.0, "foo")).reason == "foo"