Enhance testing logic in abm #1250
Labels
class::bug
Bugs found in the software
class::improvement
Cleanup that doesn't affect functionality
class::performance
Performance related issues
loc::backend
This issue concerns the C++ backend implementation.
model::abm
This issue concerns any kind of agent-based model.
prio::moderate
The priority of this task is moderate.
Motivation / Current Behaviour
In the paper several things showed what needed revision in the testing logic.
We should decouple testing strategies from actually being able to enter a location.
Enhancement description
The following things got enhanced:
remove add and remove_age_group & remove_infection_state as well as for testing schemes were deleted because the workflow is better if you set up a new testing strategy for that time. This prohibits to fiddle with it all the time. Also this led to a few difficult to debug bugs in the development. (more options != better)
completely change how testing schemes are updated because runtime was HEAVILY affected, when many ids are put into the vector. (e.g. searching for a testing scheme for a specific id would be log n runtime. -> no linear scaling if people ~ locations
Renaming of funcitons for better understandability. For now we still test + allow access.
in the future because we can't delete things, we should add an optional testing scheme where it can be active depending on a function, out of scope for this issue though
We allow the user to add several testing schemes trusting that when he/she adds two schemes and someone gets potentially tested twice its on purpose.
We don't schedule. This means, there are a few if checks for idle testing schemes. This doesnt affect runtime mostly, when idle testingschemes are <1000 per location. This is a tradeoff between a very unlikely scenario and error proneness.
funnily enough with testing schemes the code runs a little faster
Additional context
No response
Checklist
The text was updated successfully, but these errors were encountered: