diff --git a/mesa_frames/abstract/agentset.py b/mesa_frames/abstract/agentset.py index 123ec8c8..46c556f4 100644 --- a/mesa_frames/abstract/agentset.py +++ b/mesa_frames/abstract/agentset.py @@ -469,6 +469,17 @@ def random(self) -> Generator: """ return self.model.random + @property + def seed(self) -> int | Sequence[int]: + """Return the seed for the random number generator shared with the model. + + Returns + ------- + int | Sequence[int] + The seed that initialized the model's random number generator. + """ + return self.model.seed + @property def space(self) -> mesa_frames.abstract.space.Space | None: """Return the space attached to the parent model, if any. diff --git a/mesa_frames/abstract/agentsetregistry.py b/mesa_frames/abstract/agentsetregistry.py index df8823be..1ba7981e 100644 --- a/mesa_frames/abstract/agentsetregistry.py +++ b/mesa_frames/abstract/agentsetregistry.py @@ -643,6 +643,17 @@ def random(self) -> Generator: """ return self.model.random + @property + def seed(self) -> int | Sequence[int]: + """Return the seed for the random number generator of the model. + + Returns + ------- + int | Sequence[int] + The seed that initialized the model's random number generator. + """ + return self.model.seed + @property def space(self) -> mesa_frames.abstract.space.Space | None: """The space of the model. diff --git a/mesa_frames/abstract/space.py b/mesa_frames/abstract/space.py index ca1e8161..42e4c91f 100644 --- a/mesa_frames/abstract/space.py +++ b/mesa_frames/abstract/space.py @@ -607,6 +607,17 @@ def random(self) -> Generator: """ return self.model.random + @property + def seed(self) -> int | Sequence[int]: + """Return the seed for the model's random number generator. + + Returns + ------- + int | Sequence[int] + The seed that initialized the model's random number generator. + """ + return self.model.seed + class AbstractDiscreteSpace(Space): """The AbstractDiscreteSpace class is an abstract class that defines the interface for all discrete space classes (Grids and Networks) in mesa_frames.""" diff --git a/tests/test_agentset.py b/tests/test_agentset.py index e25b8163..1e9c9991 100644 --- a/tests/test_agentset.py +++ b/tests/test_agentset.py @@ -94,6 +94,7 @@ def test__init__(self): assert agents.df["age"].to_list() == [0, 1, 2, 3] assert isinstance(agents._mask, pl.Series) assert isinstance(agents.random, Generator) + assert agents.seed == model.seed assert agents.starting_wealth.to_list() == [1, 2, 3, 4] def test_add( diff --git a/tests/test_agentsetregistry.py b/tests/test_agentsetregistry.py index b2bb8d91..9331eab5 100644 --- a/tests/test_agentsetregistry.py +++ b/tests/test_agentsetregistry.py @@ -69,6 +69,7 @@ def test__init__(self): assert reg.model is model assert len(reg) == 0 assert reg.ids.len() == 0 + assert reg.seed == model.seed # Public: add def test_add(self, fix_model: Model) -> None: diff --git a/tests/test_grid.py b/tests/test_grid.py index 904efdb0..8fd03da5 100644 --- a/tests/test_grid.py +++ b/tests/test_grid.py @@ -76,6 +76,7 @@ def test___init__(self, model: Model): assert grid1.neighborhood_type == "moore" assert grid1.remaining_capacity == float("inf") assert grid1.model == model + assert grid1.seed == model.seed # Test with capacity = 10 grid2 = Grid(model, dimensions=[3, 3], capacity=10)