A toner rate needs days behind it
This commit is contained in:
@@ -339,3 +339,26 @@ def test_a_real_near_empty_reading_before_a_swap_is_kept():
|
||||
points = normalise(series([40, 30, 5, 100, 95, 90]))
|
||||
assert 5.0 in [level for _, level in points]
|
||||
assert len(find_replacements(points)) == 1
|
||||
|
||||
|
||||
def test_minutes_of_readings_do_not_forecast_weeks():
|
||||
"""Supply items are often polled every few minutes.
|
||||
|
||||
Four readings a quarter of an hour apart, with a 2 point drop between the
|
||||
ends, used to extrapolate to nearly 200 percent a day - so a cartridge
|
||||
sitting at 82 percent was forecast to run out in a fortnight. A rate needs
|
||||
time behind it, and without it the honest answer is no estimate.
|
||||
"""
|
||||
minutes = 5
|
||||
detail = analyse(series([84, 83, 83, 82], hours=minutes / 60))
|
||||
assert detail['burnrateperday'] is None
|
||||
assert detail['daysleft'] is None
|
||||
assert detail['reason'] == 'not enough history yet'
|
||||
assert band(detail['daysleft']) is None # lands in "No estimate yet"
|
||||
|
||||
|
||||
def test_a_run_with_enough_days_still_estimates():
|
||||
"""The guard must not silence a genuinely slow, genuinely long run."""
|
||||
detail = analyse(series([84, 83, 82, 81, 80, 79]))
|
||||
assert detail['burnrateperday'] == 1.0
|
||||
assert detail['daysleft'] == 79
|
||||
|
||||
Reference in New Issue
Block a user