-
Notifications
You must be signed in to change notification settings - Fork 23
Enhance testing logic in ABM #1250
Copy link
Copy link
Labels
class::bugBugs found in the softwareBugs found in the softwareclass::improvementCleanup that doesn't affect functionalityCleanup that doesn't affect functionalityclass::performancePerformance related issuesPerformance related issuesloc::backendThis issue concerns the C++ backend implementation.This issue concerns the C++ backend implementation.model::abmThis issue concerns any kind of agent-based model.This issue concerns any kind of agent-based model.prio::moderateThe priority of this task is moderate.The priority of this task is moderate.
Metadata
Metadata
Assignees
Labels
class::bugBugs found in the softwareBugs found in the softwareclass::improvementCleanup that doesn't affect functionalityCleanup that doesn't affect functionalityclass::performancePerformance related issuesPerformance related issuesloc::backendThis issue concerns the C++ backend implementation.This issue concerns the C++ backend implementation.model::abmThis issue concerns any kind of agent-based model.This issue concerns any kind of agent-based model.prio::moderateThe priority of this task is moderate.The priority of this task is moderate.
Type
Projects
Status
Done (Total) 💯
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