run_tests <- length(strsplit(as.character(packageVersion("simPop")), "[.]")[[1]]) > 3
if(run_tests){
  library(simPop)
  # All examples dontruns run",{
  data(eusilcS,package="simPop")
  data(eusilcP,package="simPop")
  ## approx. 20 seconds computation time
  inp <- specifyInput(data=eusilcS, hhid="db030", hhsize="hsize", strata="db040", weight="db090")
  inp <- simStructure(data=inp, method="direct", basicHHvars=c("age", "rb090"))
  inp <- simCategorical(inp, additional=c("pl030", "pb220a"), method="multinom",nr_cpus=1)
  
  margins <- as.data.frame(
      xtabs(rep(1, nrow(eusilcP)) ~ eusilcP$region + eusilcP$gender + eusilcP$citizenship))
    colnames(margins) <- c("db040", "rb090", "pb220a", "freq")
    inp <- addKnownMargins(inp, margins)
    str(inp)
  
  
  data(eusilcS) # load sample data
  data(eusilcP) # population data
  ## approx. 20 seconds computation time
  inp <- specifyInput(data=eusilcS, hhid="db030", hhsize="hsize", strata="db040", weight="db090")
  simPop <- simStructure(data=inp, method="direct", basicHHvars=c("age", "rb090"))
  simPop <- simCategorical(simPop, additional=c("pl030", "pb220a"), method="multinom", nr_cpus=1)
  
  # add margins
  margins <- as.data.frame(
    xtabs(rep(1, nrow(eusilcP)) ~ eusilcP$region + eusilcP$gender + eusilcP$citizenship))
  colnames(margins) <- c("db040", "rb090", "pb220a", "freq")
  simPop <- addKnownMargins(simPop, margins)
  simPop_adj <- calibPop(simPop, split="db040", temp=1, eps.factor=0.1)
  simPop_adj2 <- calibPop(simPop, split="db040", temp=1, eps.factor=0.1,memory=TRUE)
  
  data(eusilcS) # load sample data
  ## approx. 20 seconds computation time
  inp <- specifyInput(data=eusilcS, hhid="db030", hhsize="hsize", strata="db040", weight="db090")
  ## in the following, nr_cpus are selected automatically
  simPop <- simStructure(data=inp, method="direct", basicHHvars=c("age", "rb090"))
  simPop <- simCategorical(simPop, additional=c("pl030", "pb220a"), method="multinom", nr_cpus=1)
  simPop
  
  
  data(eusilcS)
  ## approx. 20 seconds computation time
  inp <- specifyInput(data=eusilcS, hhid="db030", hhsize="hsize",
    strata="db040", weight="db090")
  simPopObj <- simStructure(data=inp, method="direct",
    basicHHvars=c("age", "rb090", "hsize", "pl030", "pb220a"))
  simPopObj <- simContinuous(simPopObj, additional = "netIncome",
    regModel = ~rb090+hsize+pl030+pb220a+hsize,
    method="multinom", upper=200000, equidist=FALSE, nr_cpus=1)
  
  # categorize net income for use as conditioning variable
  sIncome <- manageSimPopObj(simPopObj, var="netIncome", sample=TRUE, set=FALSE)
  sWeight <- manageSimPopObj(simPopObj, var="rb050", sample=TRUE, set=FALSE)
  pIncome <- manageSimPopObj(simPopObj, var="netIncome", sample=FALSE, set=FALSE)
  
  breaks <- getBreaks(x=unlist(sIncome), w=unlist(sWeight), upper=Inf, equidist=FALSE)
  simPopObj <- manageSimPopObj(simPopObj, var="netIncomeCat", sample=TRUE,
    set=TRUE, values=getCat(x=unlist(sIncome), breaks))
  simPopObj <- manageSimPopObj(simPopObj, var="netIncomeCat", sample=FALSE,
    set=TRUE, values=getCat(x=unlist(pIncome), breaks))
  
  # simulate net income components
  simPopObj <- simComponents(simPopObj=simPopObj, total="netIncome",
    components=c("py010n","py050n","py090n","py100n","py110n","py120n","py130n","py140n"),
    conditional = c("netIncomeCat", "pl030"), replaceEmpty = "sequential", seed=1 )
  class(simPopObj)
  
  
  
  data(eusilcS)
  ## approx. 20 seconds computation time
  inp <- specifyInput(data=eusilcS, hhid="db030", hhsize="hsize", strata="db040", weight="db090")
  simPop <- simStructure(data=inp, method="direct",
    basicHHvars=c("age", "rb090", "hsize", "pl030", "pb220a"))
  
  regModel = ~rb090+hsize+pl030+pb220a
  
  # multinomial model with random draws
  eusilcM <- simContinuous(simPop, additional="netIncome",
                regModel = regModel,
                upper=200000, equidist=FALSE, nr_cpus=1)
  class(eusilcM)
  
  
  set.seed(1234)  # for reproducibility
  data(eusilcS)   # load sample data
  ## approx. 20 seconds computation time
  inp <- specifyInput(data=eusilcS, hhid="db030", hhsize="hsize",
    strata="db040", weight="db090")
  simPop <- simStructure(data=inp, method="direct",
    basicHHvars=c("age", "rb090", "hsize", "pl030", "pb220a"))
  
  # multinomial model with random draws
  eusilcM <- simContinuous(simPop, additional="netIncome",
    regModel = ~rb090+hsize+pl030+pb220a,
    upper=200000, equidist=FALSE, nr_cpus=1)
  class(eusilcM)
  
  # plot results
  spCdfplot(eusilcM, "netIncome", cond=NULL)
  spCdfplot(eusilcM, "netIncome", cond="rb090", layout=c(1,2))
  
  
  data(eusilcS)   # load sample data
  ## approx. 20 seconds computation time
  inp <- specifyInput(data=eusilcS, hhid="db030", hhsize="hsize",
    strata="db040", weight="db090")
  simPop <- simStructure(data=inp, method="direct",
    basicHHvars=c("age", "rb090", "hsize", "pl030", "pb220a"))
  
  # multinomial model with random draws
  eusilcM <- simContinuous(simPop, additional="netIncome",
    regModel  = ~rb090+hsize+pl030+pb220a+hsize,
    upper=200000, equidist=FALSE, nr_cpus=1)
  class(eusilcM)
  
  # plot results
  spBwplot(eusilcM, x="netIncome", cond=NULL)
  spBwplot(eusilcM, x="netIncome", cond="rb090", layout=c(1,2))
  
  #
}