Skip to content

Commit

Permalink
Merge pull request #185 from mrc-ide/release/0.1.13
Browse files Browse the repository at this point in the history
Release v0.1.13
  • Loading branch information
giovannic authored Feb 13, 2024
2 parents a0a598b + 576fe29 commit 29dc47a
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 2 deletions.
2 changes: 1 addition & 1 deletion DESCRIPTION
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Package: individual
Title: Framework for Specifying and Simulating Individual Based Models
Version: 0.1.12
Version: 0.1.13
Authors@R: c(
person(
given = "Giovanni",
Expand Down
1 change: 1 addition & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# individual 0.1.13

* Fixed the website generation.
* Fix an uninitialized memory-read that could cause spurious event triggers.

# individual 0.1.12

Expand Down
5 changes: 4 additions & 1 deletion inst/include/Event.h
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,9 @@ inline void Event::process(Rcpp::XPtr<listener_t> listener) {

//' @title should first event fire on this timestep?
inline bool Event::should_trigger() {
if (simple_schedule.empty()) {
return false;
}
return *simple_schedule.begin() == get_time();
}

Expand Down Expand Up @@ -179,7 +182,7 @@ inline TargetedEvent::TargetedEvent(size_t size)

//' @title should first event fire on this timestep?
inline bool TargetedEvent::should_trigger() {
if (targeted_schedule.begin() == targeted_schedule.end()) {
if (targeted_schedule.empty()) {
return false;
}
return targeted_schedule.begin()->first == get_time();
Expand Down
13 changes: 13 additions & 0 deletions tests/testthat/test-events.R
Original file line number Diff line number Diff line change
Expand Up @@ -175,3 +175,16 @@ test_that("events are cleared when restored", {
mockery::expect_args(listener, 1, t = 4)
new_event$.tick()
})

test_that("empty event never triggers", {
event <- Event$new()
listener <- mockery::mock()
event$add_listener(listener)

for (i in seq(100)) {
event$.process()
event$.tick()
}

mockery::expect_called(listener, 0)
})
13 changes: 13 additions & 0 deletions tests/testthat/test-targetedevent.R
Original file line number Diff line number Diff line change
Expand Up @@ -602,3 +602,16 @@ test_that("targeted events are cleared when restored", {
new_event$.process()
mockery::expect_called(listener, 1)
})

test_that("empty targeted event never triggers", {
event <- TargetedEvent$new(5)
listener <- mockery::mock()
event$add_listener(listener)

for (i in seq(100)) {
event$.process()
event$.tick()
}

mockery::expect_called(listener, 0)
})

0 comments on commit 29dc47a

Please sign in to comment.