tests/testthat/test-submitModels.R

# tests for submitModels
p <- test_path("submitModels")

test_that("submitModels job ID check", {
  # checks on parsing of scheduling arguments and script setup
  mplus_fake <- tempfile()
  file.create(mplus_fake)
  track <- submitModels(p, sched_args=c("--mail=user", "--export=v"), debug=TRUE, replaceOutfile = "always",
                        max_time_per_job = "4:10:00", combine_jobs = FALSE, Mplus_command = mplus_fake)
  
  expect_equal(track$jobid[1], "dummy_1")
  
  # job allocation checks
  expect_equal(track$memgb[1], 16)
  expect_equal(track$cores[1], 2)
  expect_equal(track$wall_time[1], "0:30:00")
  
})

# single model
# inp <- file.path(p, "ex3.1.inp")
# 
# submitModels(inp, sched_args=c("--mail=user", "--export=v"), debug=TRUE, 
#              max_time_per_job = "2:10:00", combine_jobs = TRUE, replace="always", Mplus_command = mplus_fake)


# setwd("/proj/mnhallqlab/users/michael/MplusAutomation")
# checks on cluster (must be run on slurm cluster!)
# track <- submitModels(p,
#     scheduler = "slurm",
#     batch_outdir = "/proj/mnhallqlab/users/michael/submitModels_test",
#     Mplus_command = "/proj/mnhallqlab/local/bin/mplus",
#     sched_args = c("--mail-user=mnhallq"),
#     debug=FALSE,
#     replaceOutfile = "always"
# )
# 
# track <- checkSubmission(track)
# summary(track)

# combine jobs challenge
p <- test_path("submitModels/job_combine")

test_that("submitModels combines jobs as expected", {
  mplus_fake <- tempfile()
  file.create(mplus_fake)
  track <- submitModels(p, sched_args=c("--mail=user", "--export=v"), debug=TRUE, max_time_per_job = "48:10:00",
                        batch_outdir = file.path(p, "batchfiles"), Mplus_command = mplus_fake)
  expect_equal(track$file[[5]], c("job_19.inp", "job_20.inp"))
  expect_equal(track$wall_hr[5], 39)
})

Try the MplusAutomation package in your browser

Any scripts or data that you put into this service are public.

MplusAutomation documentation built on Sept. 9, 2025, 5:25 p.m.