# File tests/testthat/test-term-options.R in package ergm, part of the
# Statnet suite of packages for network analysis, https://statnet.org .
#
# This software is distributed under the GPL-3 license. It is free,
# open source, and has the attribution requirements (GPL Section 7) at
# https://statnet.org/attribution .
#
# Copyright 2003-2023 Statnet Commons
################################################################################
data(florentine)
old.opts1 <- options(ergm.eval.loglik=TRUE)
times <- 2
test_that("summary() of a term that takes options",{
expect_equal(summary(flomarriage~.edges_times, term.options=list(times=2)),
summary(flomarriage~edges)*times, ignore_attr=TRUE)
})
e1 <- ergm(flomarriage~.edges_times, control=control.ergm(term.options=list(times=2)))
test_that("ergm() MPLE of a term that takes options",{
expect_equal(coef(e1),coef(ergm(flomarriage~edges))/times, ignore_attr=TRUE)
})
e2 <- ergm(flomarriage~.edges_times, control=control.ergm(force.main=TRUE,seed=0,term.options=list(times=2)))
test_that("ergm() MCMLE of a term that takes options",{
expect_equal(coef(e2),coef(e1), tolerance=.05, ignore_attr=TRUE)
expect_equal(logLik(e2),logLik(e1), tolerance=.05, ignore_attr=TRUE)
})
test_that("gof() of a model that had term options",{
expect_error(gof(e2, control=control.gof.ergm(nsim=10)), NA)
})
old.opts2 <- options(ergm.eval.loglik=FALSE)
e3 <- ergm(flobusiness~.edges_times, target.stats=as.vector(summary(flomarriage~edges)/2), control=control.ergm(seed=0,force.main=TRUE,term.options=list(times=2)))
test_that("ergm() for a model with term options and mean-value parameters and log-likelihood calculation off via a global option",{
expect_equal(coef(e2),coef(e1), tolerance=.05, ignore_attr=TRUE)
expect_error(logLik(e3), "Log-likelihood was not estimated for this fit.")
})
data(sampson)
old.opts3 <- options(ergm.term=list(times=2))
test_that("summary() with term options globally set",{
expect_equal(summary(samplike~.edges_times),summary(samplike~edges)*times, ignore_attr=TRUE)
})
old.opts4 <- options(ergm.term=list(times=1))
test_that("control parameter overrides global setting",{
expect_equal(summary(samplike~.edges_times, term.options=list(times=2)),summary(samplike~edges)*times, ignore_attr=TRUE)
})
options(old.opts4)
options(old.opts3)
options(old.opts2)
options(old.opts1)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.