Running ‘combine.networks.R’ [3s/4s]
  Running ‘degree.mean.age.R’ [0s/1s]
  Running ‘dynamic_EGMME.R’ [0s/1s]
  Running ‘dynamic_EGMME.simple.R’ [0s/1s]
  Running ‘dynamic_MLE.R’ [31s/46s]
  Running ‘dynamic_MLE_2.R’ [0s/1s]
  Running ‘dynamic_MLE_blockdiag.R’ [0s/1s]
  Running ‘dynamic_MLE_blockdiag.bipartite.R’ [0s/1s]
  Running ‘sim_gf_sum.R’ [7s/11s]
  Running ‘simulate_networkDynamic.R’ [7s/11s]
  Running ‘tergm_offset_tests.R’ [0s/1s]
  Running ‘tergm_parallel.R’ [0s/1s]
Running the tests in ‘tests/dynamic_MLE.R’ failed.
Complete output:
  > #  File tests/dynamic_MLE.R in package tergm, 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 2008-2019 Statnet Commons
  > #######################################################################
  > library(tergm)
  Loading required package: ergm
  Loading required package: network
  network: Classes for Relational Data
  Version 1.16.1 created on 2020-10-06.
  copyright (c) 2005, Carter T. Butts, University of California-Irvine
                      Mark S. Handcock, University of California -- Los Angeles
                      David R. Hunter, Penn State University
                      Martina Morris, University of Washington
                      Skye Bender-deMoll, University of Washington
   For citation information, type citation("network").
   Type help("network-package") to get started.
  
  
  ergm: version 3.11.0, created on 2020-10-14
  Copyright (c) 2020, Mark S. Handcock, University of California -- Los Angeles
                      David R. Hunter, Penn State University
                      Carter T. Butts, University of California -- Irvine
                      Steven M. Goodreau, University of Washington
                      Pavel N. Krivitsky, UNSW Sydney
                      Martina Morris, University of Washington
                      with contributions from
                      Li Wang
                      Kirk Li, University of Washington
                      Skye Bender-deMoll, University of Washington
                      Chad Klumb
                      Michał Bojanowski, Kozminski University
                      Ben Bolker
  Based on "statnet" project software (statnet.org).
  For license and citation information see statnet.org/attribution
  or type citation("ergm").
  
  NOTE: Versions before 3.6.1 had a bug in the implementation of the bd()
  constraint which distorted the sampled distribution somewhat. In
  addition, Sampson's Monks datasets had mislabeled vertices. See the
  NEWS and the documentation for more details.
  
  NOTE: Some common term arguments pertaining to vertex attribute and
  level selection have changed in 3.10.0. See terms help for more
  details. Use 'options(ergm.term=list(version="3.9.4"))' to use old
  behavior.
  
  Loading required package: networkDynamic
  
  networkDynamic: version 0.10.1, created on 2020-01-16
  Copyright (c) 2020, Carter T. Butts, University of California -- Irvine
                      Ayn Leslie-Cook, University of Washington
                      Pavel N. Krivitsky, University of Wollongong
                      Skye Bender-deMoll, University of Washington
                      with contributions from
                      Zack Almquist, University of California -- Irvine
                      David R. Hunter, Penn State University
                      Li Wang
                      Kirk Li, University of Washington
                      Steven M. Goodreau, University of Washington
                      Jeffrey Horner
                      Martina Morris, University of Washington
  Based on "statnet" project software (statnet.org).
  For license and citation information see statnet.org/attribution
  or type citation("networkDynamic").
  
  
  tergm: version 3.6.1, created on 2019-06-12
  Copyright (c) 2019, Pavel N. Krivitsky, University of Wollongong
                      Mark S. Handcock, University of California -- Los Angeles
                      with contributions from
                      David R. Hunter, Penn State University
                      Steven M. Goodreau, University of Washington
                      Martina Morris, University of Washington
                      Nicole Bohme Carnegie, New York University
                      Carter T. Butts, University of California -- Irvine
                      Ayn Leslie-Cook, University of Washington
                      Skye Bender-deMoll
                      Li Wang
                      Kirk Li, University of Washington
  Based on "statnet" project software (statnet.org).
  For license and citation information see statnet.org/attribution
  or type citation("tergm").
  
  > options(tergm.eval.loglik=FALSE)
  > 
  > tolerance<-0.05
  > n<-10
  > m<-6
  > theta<--1.5
  > 
  > z.error <- function(truth, fit){
  +   if(truth==coef(fit)) 0 # Infinite case
  +   else abs(truth-coef(fit))/sqrt(diag(vcov(fit)))
  + }
  > 
  > logit<-function(p) log(p/(1-p))
  > 
  > form.mle<-function(y0,y1){
  +   logit(network.edgecount(y1-y0,na.omit=TRUE)/(network.dyadcount(y1)-network.edgecount(y0-is.na(y1))))
  + }
  > 
  > diss.mle<-function(y0,y1){
  +   -logit(network.edgecount(y0-y1,na.omit=TRUE)/(network.edgecount(y0-is.na(y1))))
  + }
  > 
  > do.run <- function(dir, bip=FALSE, prop.weights="default"){
  + if(bip){ # Extreme theta creates networks with too few ties to properly test.
  +   theta <- theta/2
  + }
  +   
  + y0<-network.initialize(n,dir=dir,bipartite=bip)
  + set.seed(321)
  + y0<-simulate(y0~edges, coef=theta, control=control.simulate(MCMC.burnin=n^2*2))
  + 
  + cat("Complete data:\n")
  + 
  + set.seed(123)
  + y1<-simulate(y0~edges, coef=theta, control=control.simulate(MCMC.burnin=n^2*2))
  + 
  + # Force CMPLE
  + set.seed(543)
  + fit<-stergm(list(y0,y1), formation=~edges, dissolution=~edges, estimate="CMPLE", times=c(1,2), eval.loglik=FALSE)
  + 
  + stopifnot(fit$estimate=="CMPLE", fit$formation.fit$estimate=="MPLE", fit$dissolution.fit$estimate=="MPLE")
  + stopifnot(z.error(form.mle(y0,y1), fit$formation.fit) <= tolerance)
  + stopifnot(z.error(diss.mle(y0,y1), fit$dissolution.fit) <= tolerance)
  + 
  + # Autodetected CMPLE
  + set.seed(543)
  + fit<-stergm(list(y0,y1), formation=~edges, dissolution=~edges, estimate="CMLE", times=c(1,2), eval.loglik=FALSE)
  + 
  + stopifnot(fit$estimate=="CMLE", is.null(fit$formation.fit$sample), is.null(fit$dissolution.fit$sample))
  + stopifnot(z.error(form.mle(y0,y1), fit$formation.fit) <= tolerance)
  + stopifnot(z.error(diss.mle(y0,y1), fit$dissolution.fit) <= tolerance)
  + 
  + # Force CMLE
  + for(prop.weight in prop.weights){
  + cat("====",prop.weight,"====\n")
  + set.seed(543)
  + fit<-stergm(list(y0,y1), formation=~edges, dissolution=~edges, estimate="CMLE", control=control.stergm(CMLE.control=control.ergm(force.main=TRUE, MCMC.prop.weights=prop.weight)), times=c(1,2), eval.loglik=FALSE)
  + 
  + stopifnot(fit$estimate=="CMLE", fit$formation.fit$estimate=="MLE", fit$dissolution.fit$estimate=="MLE")
  + stopifnot(z.error(form.mle(y0,y1), fit$formation.fit) <= tolerance)
  + stopifnot(z.error(diss.mle(y0,y1), fit$dissolution.fit) <= tolerance)
  + }
  + 
  + cat("Missing data:\n")
  + 
  + y1m<-network.copy(y1)
  + set.seed(765)
  + e <- as.edgelist(y1)[1,]
  + y1m[e[1], e[2]] <- NA
  + y1m[1,m+1] <- NA
  + 
  + # Force CMPLE
  + set.seed(765)
  + fit<-stergm(list(y0,y1m), formation=~edges, dissolution=~edges, estimate="CMPLE", times=c(1,2), eval.loglik=FALSE)
  + 
  + stopifnot(fit$estimate=="CMPLE", fit$formation.fit$estimate=="MPLE", fit$dissolution.fit$estimate=="MPLE")
  + stopifnot(z.error(form.mle(y0,y1m), fit$formation.fit) <= tolerance)
  + stopifnot(z.error(diss.mle(y0,y1m), fit$dissolution.fit) <= tolerance)
  + 
  + # Autodetected CMPLE
  + set.seed(765)
  + fit<-stergm(list(y0,y1m), formation=~edges, dissolution=~edges, estimate="CMLE", times=c(1,2), eval.loglik=FALSE)
  + 
  + stopifnot(fit$estimate=="CMLE", is.null(fit$formation.fit$sample), is.null(fit$dissolution.fit$sample))
  + stopifnot(z.error(form.mle(y0,y1m), fit$formation.fit) <= tolerance)
  + stopifnot(z.error(diss.mle(y0,y1m), fit$dissolution.fit) <= tolerance)
  + 
  + # Force CMLE
  + for(prop.weight in prop.weights){
  + cat("====",prop.weight,"====\n")
  + set.seed(234)
  + fit<-stergm(list(y0,y1m), formation=~edges, dissolution=~edges, estimate="CMLE", control=control.stergm(CMLE.control=control.ergm(force.main=TRUE, MCMC.prop.weights=prop.weight)), times=c(1,2), eval.loglik=FALSE)
  + 
  + stopifnot(fit$estimate=="CMLE", fit$formation.fit$estimate=="MLE", fit$dissolution.fit$estimate=="MLE")
  + stopifnot(z.error(form.mle(y0,y1m), fit$formation.fit) <= tolerance)
  + stopifnot(z.error(diss.mle(y0,y1m), fit$dissolution.fit) <= tolerance)
  + }
  + }
  > 
  > cat("=========== Directed test ===========\n")
  =========== Directed test ===========
  > do.run(TRUE, prop.weights=c("default","random"))
  Complete data:
  Fitting formation...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Stopping at the initial estimate.
  Fitting dissolution...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Stopping at the initial estimate.
  Fitting formation...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Stopping at the initial estimate.
  Fitting dissolution...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Stopping at the initial estimate.
  ==== default ====
  Fitting formation...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Starting Monte Carlo maximum likelihood estimation (MCMLE):
  Iteration 1 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by 0.0004253.
  Step length converged once. Increasing MCMC sample size.
  Iteration 2 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by < 0.0001.
  Step length converged twice. Stopping.
  Finished MCMLE.
  This model was fit using MCMC.  To examine model diagnostics and check
  for degeneracy, use the mcmc.diagnostics() function.
  Fitting dissolution...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Starting Monte Carlo maximum likelihood estimation (MCMLE):
  Iteration 1 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by < 0.0001.
  Step length converged once. Increasing MCMC sample size.
  Iteration 2 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by < 0.0001.
  Step length converged twice. Stopping.
  Finished MCMLE.
  This model was fit using MCMC.  To examine model diagnostics and check
  for degeneracy, use the mcmc.diagnostics() function.
  ==== random ====
  Fitting formation...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Starting Monte Carlo maximum likelihood estimation (MCMLE):
  Iteration 1 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by 0.0002421.
  Step length converged once. Increasing MCMC sample size.
  Iteration 2 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by 0.0004701.
  Step length converged twice. Stopping.
  Finished MCMLE.
  This model was fit using MCMC.  To examine model diagnostics and check
  for degeneracy, use the mcmc.diagnostics() function.
  Fitting dissolution...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Starting Monte Carlo maximum likelihood estimation (MCMLE):
  Iteration 1 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by < 0.0001.
  Step length converged once. Increasing MCMC sample size.
  Iteration 2 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by 0.0005521.
  Step length converged twice. Stopping.
  Finished MCMLE.
  This model was fit using MCMC.  To examine model diagnostics and check
  for degeneracy, use the mcmc.diagnostics() function.
  Missing data:
  Fitting formation...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Stopping at the initial estimate.
  Fitting dissolution...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Stopping at the initial estimate.
  Fitting formation...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Stopping at the initial estimate.
  Fitting dissolution...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Stopping at the initial estimate.
  ==== default ====
  Fitting formation...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Starting Monte Carlo maximum likelihood estimation (MCMLE):
  Iteration 1 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by < 0.0001.
  Step length converged once. Increasing MCMC sample size.
  Iteration 2 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by < 0.0001.
  Step length converged twice. Stopping.
  Finished MCMLE.
  This model was fit using MCMC.  To examine model diagnostics and check
  for degeneracy, use the mcmc.diagnostics() function.
  Fitting dissolution...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Starting Monte Carlo maximum likelihood estimation (MCMLE):
  Iteration 1 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by 0.00191.
  Step length converged once. Increasing MCMC sample size.
  Iteration 2 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by 0.003234.
  Step length converged twice. Stopping.
  Finished MCMLE.
  This model was fit using MCMC.  To examine model diagnostics and check
  for degeneracy, use the mcmc.diagnostics() function.
  ==== random ====
  Fitting formation...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Starting Monte Carlo maximum likelihood estimation (MCMLE):
  Iteration 1 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by < 0.0001.
  Step length converged once. Increasing MCMC sample size.
  Iteration 2 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by 0.000225.
  Step length converged twice. Stopping.
  Finished MCMLE.
  This model was fit using MCMC.  To examine model diagnostics and check
  for degeneracy, use the mcmc.diagnostics() function.
  Fitting dissolution...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Starting Monte Carlo maximum likelihood estimation (MCMLE):
  Iteration 1 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by 0.0001324.
  Step length converged once. Increasing MCMC sample size.
  Iteration 2 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by 0.00074.
  Step length converged twice. Stopping.
  Finished MCMLE.
  This model was fit using MCMC.  To examine model diagnostics and check
  for degeneracy, use the mcmc.diagnostics() function.
  > cat("=========== Undirected test ===========\n")
  =========== Undirected test ===========
  > do.run(FALSE, prop.weights=c("default","random"))
  Complete data:
  Fitting formation...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Stopping at the initial estimate.
  Fitting dissolution...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Stopping at the initial estimate.
  Fitting formation...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Stopping at the initial estimate.
  Fitting dissolution...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Stopping at the initial estimate.
  ==== default ====
  Fitting formation...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Starting Monte Carlo maximum likelihood estimation (MCMLE):
  Iteration 1 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by 0.001843.
  Step length converged once. Increasing MCMC sample size.
  Iteration 2 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by 0.001198.
  Step length converged twice. Stopping.
  Finished MCMLE.
  This model was fit using MCMC.  To examine model diagnostics and check
  for degeneracy, use the mcmc.diagnostics() function.
  Fitting dissolution...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Starting Monte Carlo maximum likelihood estimation (MCMLE):
  Iteration 1 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by 0.0001824.
  Step length converged once. Increasing MCMC sample size.
  Iteration 2 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by 0.001308.
  Step length converged twice. Stopping.
  Finished MCMLE.
  This model was fit using MCMC.  To examine model diagnostics and check
  for degeneracy, use the mcmc.diagnostics() function.
  ==== random ====
  Fitting formation...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Starting Monte Carlo maximum likelihood estimation (MCMLE):
  Iteration 1 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by 0.0007592.
  Step length converged once. Increasing MCMC sample size.
  Iteration 2 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by 0.0008015.
  Step length converged twice. Stopping.
  Finished MCMLE.
  This model was fit using MCMC.  To examine model diagnostics and check
  for degeneracy, use the mcmc.diagnostics() function.
  Fitting dissolution...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Starting Monte Carlo maximum likelihood estimation (MCMLE):
  Iteration 1 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by < 0.0001.
  Step length converged once. Increasing MCMC sample size.
  Iteration 2 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by 0.0004382.
  Step length converged twice. Stopping.
  Finished MCMLE.
  This model was fit using MCMC.  To examine model diagnostics and check
  for degeneracy, use the mcmc.diagnostics() function.
  Missing data:
  Fitting formation...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Stopping at the initial estimate.
  Fitting dissolution...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Stopping at the initial estimate.
  Fitting formation...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Stopping at the initial estimate.
  Fitting dissolution...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Stopping at the initial estimate.
  ==== default ====
  Fitting formation...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Starting Monte Carlo maximum likelihood estimation (MCMLE):
  Iteration 1 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by < 0.0001.
  Step length converged once. Increasing MCMC sample size.
  Iteration 2 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by < 0.0001.
  Step length converged twice. Stopping.
  Finished MCMLE.
  This model was fit using MCMC.  To examine model diagnostics and check
  for degeneracy, use the mcmc.diagnostics() function.
  Fitting dissolution...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Starting Monte Carlo maximum likelihood estimation (MCMLE):
  Iteration 1 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by 0.000106.
  Step length converged once. Increasing MCMC sample size.
  Iteration 2 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by 0.0006282.
  Step length converged twice. Stopping.
  Finished MCMLE.
  This model was fit using MCMC.  To examine model diagnostics and check
  for degeneracy, use the mcmc.diagnostics() function.
  ==== random ====
  Fitting formation...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Starting Monte Carlo maximum likelihood estimation (MCMLE):
  Iteration 1 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by 0.0001311.
  Step length converged once. Increasing MCMC sample size.
  Iteration 2 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by 0.001049.
  Step length converged twice. Stopping.
  Finished MCMLE.
  This model was fit using MCMC.  To examine model diagnostics and check
  for degeneracy, use the mcmc.diagnostics() function.
  Fitting dissolution...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Starting Monte Carlo maximum likelihood estimation (MCMLE):
  Iteration 1 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by < 0.0001.
  Step length converged once. Increasing MCMC sample size.
  Iteration 2 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by 0.0001134.
  Step length converged twice. Stopping.
  Finished MCMLE.
  This model was fit using MCMC.  To examine model diagnostics and check
  for degeneracy, use the mcmc.diagnostics() function.
  > cat("=========== Undirected bipartite test ===========\n")
  =========== Undirected bipartite test ===========
  > do.run(FALSE, m, prop.weights=c("default","random"))
  Complete data:
  Fitting formation...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Stopping at the initial estimate.
  Fitting dissolution...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Stopping at the initial estimate.
  Fitting formation...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Stopping at the initial estimate.
  Fitting dissolution...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Stopping at the initial estimate.
  ==== default ====
  Fitting formation...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Starting Monte Carlo maximum likelihood estimation (MCMLE):
  Iteration 1 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by 0.0007959.
  Step length converged once. Increasing MCMC sample size.
  Iteration 2 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by 0.004041.
  Step length converged twice. Stopping.
  Finished MCMLE.
  This model was fit using MCMC.  To examine model diagnostics and check
  for degeneracy, use the mcmc.diagnostics() function.
  Fitting dissolution...
  Starting maximum pseudolikelihood estimation (MPLE):
  Evaluating the predictor and response matrix.
  Maximizing the pseudolikelihood.
  Finished MPLE.
  Starting Monte Carlo maximum likelihood estimation (MCMLE):
  Iteration 1 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by 0.0001757.
  Step length converged once. Increasing MCMC sample size.
  Iteration 2 of at most 20:
  Optimizing with step length 1.
  The log-likelihood improved by 0.0001785.
  Step length converged twice. Stopping.
  Finished MCMLE.
  This model was fit using MCMC.  To examine model diagnostics and check
  for degeneracy, use the mcmc.diagnostics() function.
  Error in do.run(FALSE, m, prop.weights = c("default", "random")) : 
    z.error(form.mle(y0, y1), fit$formation.fit) <= tolerance is not TRUE
  Calls: do.run -> stopifnot
  Execution halted