tests/testthat/test_NMreadInits.R

context("NMreadInits")

### I had to run these with as.fun=data.table and skip testing of
### lines$text.before to make them work on githubs different
### arcitectures. I am not sure if the data.table step is needed, but
### I think it was. Inserted this to drop testing text.before.
##   res1$lines[,text.before:=""]
### the reg expressions must evaluate differently on different architectures


test_that("basic",{

    fileRef <- "testReference/NMreadInits_01.rds"
    file.mod <- "testData/nonmem/xgxr032.mod"
    
    NMdataConf(reset=T)
    NMdataConf(as.fun="data.table")

    lines <- readLines(file.mod)
    res1 <- NMreadInits(lines=lines,return="all")

    ## res1$lines[grepl("^ +$",text.before),text.before:=""]
    res1$lines[,text.before:=""]
    
    ## cat(paste(res1$lines$text.before,collapse=":"),"\n")
    ## cat(paste(readRDS(fileRef)$lines$text.before,collapse=":"),"\n")

    ## expect_equal_to_reference(res1,fileRef)
    expect_equal_to_reference(res1$pars,fnAppend(fileRef,"pars"))
    expect_equal_to_reference(res1$elements,fnAppend(fileRef,"elems"))
    expect_equal_to_reference(res1$lines,fnAppend(fileRef,"lines"))

    
})

test_that("with OMEGA block",{
    NMdataConf(reset=T)
    NMdataConf(as.fun="data.table")

    fileRef <- "testReference/NMreadInits_02.rds"

    file.mod <- "testData/nonmem/xgxr133.mod"
    res1 <- NMreadInits(file=file.mod,return="all")

    ## res1$lines[grepl("^ +$",text.before),text.before:=""]
    res1$lines[,text.before:=""]

    ## expect_equal_to_reference(res1,fileRef)
    expect_equal_to_reference(res1$pars,fnAppend(fileRef,"pars"))
    expect_equal_to_reference(res1$elements,fnAppend(fileRef,"elems"))
    expect_equal_to_reference(res1$lines,fnAppend(fileRef,"lines"))

})

test_that("OMEGA SAME",{
    NMdataConf(reset=T)
    NMdataConf(as.fun="data.table")

    fileRef <- "testReference/NMreadInits_03.rds"
    
    text <- c("
$THETA
(0,0.1) ; THE1      - 30) 1st theta
 (0,4.2) ; THE2        - 31) 2nd theta
$OMEGA  0.08   ;    IIV.TH1  ; 1  ;IIV
$OMEGA  BLOCK(1)
 0.547465  ; IOV.TH1  ; 2 ;IOV
$OMEGA  BLOCK(1) SAME
$OMEGA  BLOCK(1) SAME")

    res1 <- NMreadInits(lines=text,return="all")
    res1$lines[,text.before:=""]

    ## expect_equal_to_reference(res1,fileRef)
    expect_equal_to_reference(res1$pars,fnAppend(fileRef,"pars"))
    expect_equal_to_reference(res1$elements,fnAppend(fileRef,"elems"))
    expect_equal_to_reference(res1$lines,fnAppend(fileRef,"lines"))


})
philipdelff/NMdata documentation built on March 5, 2025, 12:20 a.m.