# SPDX-FileCopyrightText: 2022 Jure Demšar, Nina Purg, Grega Repovš
#
# SPDX-License-Identifier: GPL-3.0-or-later
library(autohrf)
# set tolerance
tol <- 0.5
# set seed
set.seed(27)
# load data
df <- flanker
# evaluate_model ---------------------------------------------------------------
# 3 events
model <- data.frame(event = c("encoding", "delay", "response"),
start_time = c(0, 2.65, 12.5),
duration = c(2.65, 9.85, 3))
# single event
model_single <- data.frame(event = c("encoding"),
start_time = c(0),
duration = c(3))
# set some weights
roi_weights <-
data.frame(roi = c("1", "2", "3"),
weight = c(2, 2, 4))
em <- evaluate_model(df, model, tr = 2.5, roi_weights = roi_weights)
# evaluate_model
test_that("evaluate_model", {
expect_output(evaluate_model(df, model, tr = 2.5, roi_weights = roi_weights))
})
# evaluate_model by roi
test_that("evaluate_model_by_roi", {
expect_equal(mean(em$by_roi$r2), 0.28, tolerance = tol)
expect_equal(mean(em$by_roi$r2w), 0.43, tolerance = tol)
expect_equal(mean(em$by_roi$bic), 236.62, tolerance = tol)
expect_equal(mean(em$by_roi$bicw), 446.47, tolerance = tol)
})
# evaluate_model single event
test_that("evaluate_model_single", {
expect_output(evaluate_model(df, model_single, tr = 2.5))
})
# plot_model
test_that("plot_model", {
plot <- plot_model(em)
expect_s3_class(plot, "ggplot")
})
# plot_model by roi
test_that("plot_model_by_roi", {
plot <- plot_model(em, by_roi = TRUE)
expect_s3_class(plot, "ggplot")
})
# autohrf ----------------------------------------------------------------------
# 3 events: encoding, delay, response
model3 <- data.frame(
event = c("encoding", "delay", "response"),
start_time = c(0, 2.65, 12.5),
end_time = c(3, 12.5, 16)
)
# 4 events: fixation, target, delay, response
model4 <- data.frame(
event = c("fixation", "target", "delay", "response"),
start_time = c(0, 2.5, 2.65, 12.5),
end_time = c(2.5, 3, 12.5, 15.5)
)
model_constraints <- list(model3, model4)
# run autohrf
autofit <- autohrf(df,
model_constraints,
tr = 2.5,
roi_weights = roi_weights,
population = 2,
iter = 2,
cores = 1)
# autohrf
test_that("autohrf", {
expect_equal(mean(autofit[[1]]$fitness), 0.26, tolerance = tol)
expect_equal(mean(autofit[[2]]$fitness), 0.27, tolerance = tol)
})
# autohrf_parallel
test_that("autohrf_parallel", {
autofit_p <- autohrf(df,
model_constraints,
tr = 2.5,
population = 2,
iter = 2,
cores = 2)
expect_equal(mean(autofit_p[[1]]$fitness), 0.30, tolerance = tol)
expect_equal(mean(autofit_p[[2]]$fitness), 0.32, tolerance = tol)
})
# plot_best_models
test_that("plot_best_models", {
plot <- plot_best_models(autofit)
expect_s3_class(plot, "ggplot")
})
# get_best_models_return_fitness
test_that("get_best_models_return_fitness", {
expect_output(get_best_models(autofit, return_fitness = TRUE))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.