Nothing
library(testthat)
library(cgmguru)
library(iglu)
data(example_data_5_subject)
make_starts <- function(df) {
gr <- grid(df, gap = 15, threshold = 130)
start_finder(gr$grid_vector)
}
within_window_after <- function(df, start_idx, target_idx, hours) {
t0 <- df$time[start_idx]
t1 <- df$time[target_idx]
!is.na(t0) && !is.na(t1) && t1 >= t0 && as.numeric(difftime(t1, t0, units = "hours")) <= hours + 1e-9
}
within_window_before <- function(df, start_idx, target_idx, hours) {
t0 <- df$time[start_idx]
t1 <- df$time[target_idx]
!is.na(t0) && !is.na(t1) && t1 <= t0 && as.numeric(difftime(t0, t1, units = "hours")) <= hours + 1e-9
}
test_that("find_max_after_hours returns indices within window", {
starts <- make_starts(example_data_5_subject)
res <- find_max_after_hours(example_data_5_subject, starts, hours = 2)
expect_true(is.list(res) || is.data.frame(res))
idx <- res$max_indices$max_indices
if (length(idx) > 0) {
# Check window for a sample of pairs (align by length)
k <- min(length(idx), nrow(starts))
for (i in seq_len(k)) {
expect_true(within_window_after(example_data_5_subject, starts$start_indices[i], idx[i], 2))
}
} else {
succeed()
}
})
test_that("find_max_before_hours returns indices within window", {
starts <- make_starts(example_data_5_subject)
res <- find_max_before_hours(example_data_5_subject, starts, hours = 2)
expect_true(is.list(res) || is.data.frame(res))
idx <- res$max_indices$max_indices
if (length(idx) > 0) {
k <- min(length(idx), nrow(starts))
for (i in seq_len(k)) {
expect_true(within_window_before(example_data_5_subject, starts$start_indices[i], idx[i], 2))
}
} else {
succeed()
}
})
test_that("find_min_after_hours returns indices within window", {
starts <- make_starts(example_data_5_subject)
res <- find_min_after_hours(example_data_5_subject, starts, hours = 2)
expect_true(is.list(res) || is.data.frame(res))
idx <- res$max_indices$max_indices
if (length(idx) > 0) {
k <- min(length(idx), nrow(starts))
for (i in seq_len(k)) {
expect_true(within_window_after(example_data_5_subject, starts$start_indices[i], idx[i], 2))
}
} else {
succeed()
}
})
test_that("find_min_before_hours returns indices within window", {
starts <- make_starts(example_data_5_subject)
res <- find_min_before_hours(example_data_5_subject, starts, hours = 2)
expect_true(is.list(res) || is.data.frame(res))
idx <- res$max_indices$max_indices
if (length(idx) > 0) {
k <- min(length(idx), nrow(starts))
for (i in seq_len(k)) {
expect_true(within_window_before(example_data_5_subject, starts$start_indices[i], idx[i], 2))
}
} else {
succeed()
}
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.