JuliaDynamics/Agents.jl
Voir sur GitHubadd_agent!() adds agents with out-of-bounds coordinates despite BoundsError
Open
#1 193 ouverte le 13 janv. 2026
bugdiscretegood first issue
Métriques du dépôt
- Stars
- (904 stars)
- Métriques de merge PR
- (Merge moyen 12h 3m) (1 PR mergée en 30 j)
Description
Describe the bug
When add_agent!() is called with out-of-bounds coordinates on a GridSpace, it throws a BoundsError but still adds the agent to the model's dictionary. This creates an inconsistent state where the agent exists in the model but it has an invalid position. Functions such as nearby_ids() do not return this agent's id. I have not tested with other functions though.
Minimal Working Example
using Agents
@agent struct Customer(GridAgent{2})
age
end
space = GridSpace((100,100); periodic = false, metric = :euclidean)
model = StandardABM(Customer, space)
add_agent!((0,0), model,25) #similar behavior when using negative coordinates
Output:
BoundsError: attempt to access 100×100 Matrix{Vector{Int64}} at index [0, 0]
However when checking the agents in the model the agent has been added
allagents(model)
Output:
ValueIterator for a Dict{Int64, Customer} with 1 entry. Values:
Customer(1, (0, 0), 25)
Agents.jl version
Agents v6.2.10