test_that("Test searchHillClimber() works", { load(file="testdata/buildscorecache_ex1.Rdata") expect_error({ mp.dag.test <- searchHillClimber(score.cache=mycache, verbose=FALSE) }, regexp = "should be an object of class 'abnCache'") class(mycache) <- c("abnCache") expect_silent({ mp.dag.test <- searchHillClimber(score.cache=mycache, verbose=FALSE) }) expect_s3_class(mp.dag.test, "abnHillClimber") expect_s3_class(mp.dag.test, "abnLearned") }) test_that("searchHillClimber() is backward compatible with `ex1.dag.data`", { ############################################## ## example 1: use built-in simulated data set ############################################## mydat <- ex1.dag.data; ## this data comes with abn see ?ex1.dag.data ## setup distribution list for each node mydists <- list(b1="binomial", p1="poisson", g1="gaussian", b2="binomial", p2="poisson", b3="binomial", g2="gaussian", b4="binomial", b5="binomial", g3="gaussian" ); ## not run because may take some minutes for buildScoreCache() ## parent limits max.par <- list("b1"=2,"p1"=2,"g1"=2,"b2"=2,"p2"=2,"b3"=2,"g2"=2,"b4"=2,"b5"=2,"g3"=2); ## now build cache mycache <- buildScoreCache(data.df=mydat,data.dists=mydists,max.parents=max.par); expect_no_error({ heur.res <- searchHillClimber(score.cache=mycache, num.searches=100,seed=0,verbose=FALSE,timing.on=FALSE); }) expect_s3_class(heur.res, "abnHillClimber") expect_s3_class(heur.res, "abnLearned") }) test_that("searchHillClimber() is backward compatible with `ex3.dag.data`", { ################################################################################################### ## example 2 - glmm example - but no difference here as the format of the score cache is identical ################################################################################################### mydat <- ex3.dag.data[,c(1:5,14)];## this data comes with abn see ?ex1.dag.data mydists <- list(b1="binomial", b2="binomial", b3="binomial", b4="binomial", b5="binomial" ); max.par <- 1; if(requireNamespace("INLA", quietly = TRUE)){ mycache.mixed <- buildScoreCache(data.df=mydat,data.dists=mydists,group.var="group", cor.vars=c("b1","b2","b3","b4","b5"), max.parents=max.par); # now peform 1000 greedy searches expect_no_error({ heur.res <- searchHillClimber(score.cache=mycache.mixed,num.searches=100, seed=0,verbose=FALSE,timing.on=FALSE); }) expect_s3_class(heur.res, "abnHillClimber") expect_s3_class(heur.res, "abnLearned") } }) test_that("searchHillClimber() simple, historic numeric test", { load(file="testdata/buildscorecache_ex1.Rdata") # load(file='tests/testthat/testdata/buildscorecache_ex1.Rdata') invisible(mycache.test <- buildScoreCache(data.df=mydat, data.dists=mydists, method = "bayes", max.parents=max.par)) class(mycache.test) <- c("abnCache") invisible(heur.res.test <- searchHillClimber(score.cache=mycache.test, num.searches=10, seed=42, verbose=FALSE, timing.on=TRUE)) expect_equal(heur.res.test[[1]], heur.res[[1]]) expect_equal(heur.res.test[[2]], heur.res[[2]]) expect_equal(heur.res.test[[3]], heur.res[[3]]) expect_equal(heur.res.test[[4]], heur.res[[4]]) expect_equal(heur.res.test[[5]], heur.res[[5]]) expect_equal(heur.res.test[[6]], heur.res[[6]]) })