Skip to content

Enhance testing logic in abm #1250

Open
0 of 1 issue completed
Open
Task
0 of 1 issue completed
@xsaschako

Description

@xsaschako

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

  • Attached labels, especially loc:: or model:: labels.
  • Linked to project

Sub-issues

Metadata

Metadata

Assignees

Labels

class::bugBugs found in the softwareclass::improvementCleanup that doesn't affect functionalityclass::performancePerformance related issuesloc::backendThis issue concerns the C++ backend implementation.model::abmThis issue concerns any kind of agent-based model.prio::moderateThe priority of this task is moderate.

Type

Projects

Status

Review 🕵️‍♂️

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions