Closed davidkedz closed 7 years ago
I'm convinced by your demo - and am happily impressed.
Will just go through and test now to confirm that it plays nicely on other branches :) For future, can you please provide a sample testing script so that I / others can run it?
Aye. I tried to think of how best to create a test script for this issue but, because we're not comparing two options within the same branch (i.e. we don't want to leave in a switch for coverage capping), it'd be difficult to compare without a very involved unit test. For now, hopefully test_belarus_progs.py should provide simple checks.
@davidkedz , is there an updated version of test_belarus_progs.py in your system which has a more, uh, extensive printout for comparison? ;)
Merged, and leaving branch in place for the moment.
Before this PR, multiple programs would add their impacts (i.e. transition rates) together, which, if excessive, would then be blindly truncated to 100% as part of core population size updates. However, this would not technically be appropriate if the maximum value of an impact parameter for one program was, e.g., 85%, while another program maxed out at 75% (i.e. when coverages reached 100% saturation). The combined rate should thus always be somewhere between 75% and 85% for excessive coverage, regardless of funding, not 160% or greater truncated to 100%. This commit thus tracks how 'excessive' coverage is for each program targeting a parameter, then renormalises impacts if the new excesses are over 100% of what can actually be covered.