context("Testing fair splitting") skip_on_cran() require("semtree") data(lgcm) lgcm$agegroup <- ordered(lgcm$agegroup, labels=c("young","old")) lgcm$training <- factor(lgcm$training) lgcm$noise <- as.numeric(lgcm$noise) # LOAD IN OPENMX MODEL. # A SIMPLE LINEAR GROWTH MODEL WITH 5 TIME POINTS FROM SIMULATED DATA manifests <- names(lgcm)[1:5] lgcModel <- mxModel("Linear Growth Curve Model Path Specification", type="RAM", manifestVars=manifests, latentVars=c("intercept","slope"), # residual variances mxPath( from=manifests, arrows=2, free=TRUE, values = c(1, 1, 1, 1, 1), labels=c("residual1","residual2","residual3","residual4","residual5") ), # latent variances and covariance mxPath( from=c("intercept","slope"), connect="unique.pairs", arrows=2, free=TRUE, values=c(1, 1, 1), labels=c("vari", "cov", "vars") ), # intercept loadings mxPath( from="intercept", to=manifests, arrows=1, free=FALSE, values=c(1, 1, 1, 1, 1) ), # slope loadings mxPath( from="slope", to=manifests, arrows=1, free=FALSE, values=c(0, 1, 2, 3, 4) ), # manifest means mxPath( from="one", to=manifests, arrows=1, free=FALSE, values=c(0, 0, 0, 0, 0) ), # latent means mxPath( from="one", to=c("intercept", "slope"), arrows=1, free=TRUE, values=c(1, 1), labels=c("meani", "means") ), mxData(lgcm,type="raw") ) #lgcModel=mxRun(lgcModel) # TREE CONTROL OPTIONS. # TO OBTAIN BASIC/DEFAULT SMETREE OPTIONS, SIMPLY TPYE THE FOLLOWING: ctrl <- semtree.control(method = "fair", verbose=TRUE, report.level = 99) # RUN TREE. lgcmtemp <- lgcm[, -c(7,8)] tree <- semtree(model=lgcModel, data=lgcm, control = ctrl) plot(tree) test_that("tree is valid", { expect_equal(class(tree),"semtree") expect_equal(getDepth(tree),3) expect_equal(tree$rule$name,"agegroup") expect_equal(tree$right_child$rule$name,"training") })