R Under development (unstable) (2024-09-06 r87103 ucrt) -- "Unsuffered Consequences"
Copyright (C) 2024 The R Foundation for Statistical Computing
Platform: x86_64-w64-mingw32/x64

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library(pcalg)
> 
> xx <- TRUE
> ##################################################
> ## DAG / CPDAG
> ##################################################
> ## CPDAG 1: Paper Fig 1
> mFig1 <- matrix(c(0,1,1,0,0,0, 1,0,1,1,1,0, 0,0,0,0,0,1,
+                   0,1,1,0,1,1, 0,1,0,1,0,1, 0,0,0,0,0,0), 6,6)
> type <- "cpdag"
> x <- 3; y <- 6
> ## FIXME: test more than just $gac
> ## Ver.1: Let gac() return an S3 class, say "GACfit" or "gacFit", with a print() method
> ##        and (auto)print(.) everywhere below, save *.Rout.save -> output compared: Is ok, as all "discrete"
> 
> xx <- xx &  gac(mFig1,x,y, z=c(2,4), type)$gac
> xx <- xx &  gac(mFig1,x,y, z=c(4,5), type)$gac
> xx <- xx &  gac(mFig1,x,y, z=c(4,2,1), type)$gac
> xx <- xx &  gac(mFig1,x,y, z=c(4,5,1), type)$gac
> xx <- xx &  gac(mFig1,x,y, z=c(4,2,5), type)$gac
> xx <- xx &  gac(mFig1,x,y, z=c(4,2,5,1), type)$gac
> xx <- xx & !gac(mFig1,x,y, z= 2,    type)$gac
> xx <- xx & !gac(mFig1,x,y, z= NULL, type)$gac
> 
> ## CPDAG 2: Paper Fig 5a
> mFig5a <- matrix(c(0,1,0,0,0, 1,0,1,0,0, 0,0,0,0,1, 0,0,1,0,0, 0,0,0,0,0), 5,5)
> type <- "cpdag"
> x <- c(1,5); y <- 4
> xx <- xx &  gac(mFig5a, x,y, z=c(2,3), type)$gac
> xx <- xx & !gac(mFig5a, x,y, z= 2,     type)$gac
> 
> ## DAG 1 from Marloes' Talk
> mMMd1 <- matrix(c(0,1,0,1,0,0, 0,0,1,0,1,0, 0,0,0,0,0,1,
+                   0,0,0,0,0,0, 0,0,0,0,0,0, 0,0,0,0,0,0),6,6)
> type <- "dag"
> x <- 1; y <- 3
> xx <- xx &  gac(mMMd1, x,y, z=NULL, type)$gac
> xx <- xx & !gac(mMMd1, x,y, z= 2, type)$gac
> xx <- xx &  gac(mMMd1, x,y, z= 4, type)$gac
> xx <- xx & !gac(mMMd1, x,y, z= 5, type)$gac
> xx <- xx & !gac(mMMd1, x,y, z= 6, type)$gac
> xx <- xx & !gac(mMMd1, x,y, z=c(4,5), type)$gac
> 
> ## DAG 2 from Marloes' Talk
> mMMd2 <- matrix(c(0,1,0,1,0,0, 0,0,0,0,0,0, 0,1,0,0,1,0,
+                   0,0,0,0,1,0, 0,0,0,0,0,1, 0,0,0,0,0,0), 6,6)
> type <- "dag"
> x <- 4; y <- 6
> xx <- xx &  gac(mMMd2, x,y, z= 1, type)$gac
> xx <- xx &  gac(mMMd2, x,y, z= 3, type)$gac
> xx <- xx & !gac(mMMd2, x,y, z= 5, type)$gac
> xx <- xx & !gac(mMMd2, x,y, z=c(1,5), type)$gac
> xx <- xx &  gac(mMMd2, x,y, z=c(1,2), type)$gac
> xx <- xx &  gac(mMMd2, x,y, z=c(1,3), type)$gac
> xx <- xx & !gac(mMMd2, x,y, z= 2, type)$gac
> 
> ##################################################
> ## PAG
> ##################################################
> mFig3a <- matrix(c(0,1,0,0, 1,0,1,1, 0,1,0,1, 0,1,1,0), 4,4)
> mFig3b <- matrix(c(0,2,0,0, 3,0,3,3, 0,2,0,3, 0,2,2,0), 4,4)
> mFig3c <- matrix(c(0,3,0,0, 2,0,3,3, 0,2,0,3, 0,2,2,0), 4,4)
> mFig4a <- matrix(c(0,0,1,0,0,0, 0,0,1,0,0,0, 2,2,0,3,3,2,
+                    0,0,2,0,2,2, 0,0,2,1,0,2, 0,0,1,3,3,0), 6,6)
> mFig4b <- matrix(c(0,0,1,0,0,0, 0,0,1,0,0,0, 2,2,0,0,3,2,
+                    0,0,0,0,2,2, 0,0,2,3,0,2, 0,0,2,3,2,0), 6,6)
> mFig5b <- matrix(c(0,1,0,0,0,0,0, 2,0,2,3,0,3,0, 0,1,0,0,0,0,0, 0,2,0,0,3,0,0,
+                    0,0,0,2,0,2,3, 0,2,0,0,2,0,0, 0,0,0,0,2,0,0), 7,7)
> type <- "pag"
> xx <- xx & !gac(mFig3a, x=2,      y=4, z=NULL,   type)$gac
> xx <- xx & !gac(mFig3b, x=2,      y=4, z=NULL,   type)$gac
> xx <- xx &  gac(mFig3c, x=2,      y=4, z=NULL,   type)$gac
> xx <- xx & !gac(mFig4a, x=3,      y=4, z=NULL,   type)$gac
> xx <- xx &  gac(mFig4a, x=3,      y=4, z= 6,     type)$gac
> xx <- xx &  gac(mFig4a, x=3,      y=4, z=c(1,6), type)$gac
> xx <- xx &  gac(mFig4a, x=3,      y=4, z=c(2,6), type)$gac
> xx <- xx &  gac(mFig4a, x=3,      y=4, z=c(1,2,6), type)$gac
> xx <- xx & !gac(mFig4b, x=3,      y=4, z=NULL,   type)$gac
> xx <- xx & !gac(mFig4b, x=3,      y=4, z= 6,     type)$gac
> xx <- xx & !gac(mFig4b, x=3,      y=4, z=c(5,6), type)$gac
> xx <- xx & !gac(mFig5b, x=c(2,7), y=6, z=NULL,   type)$gac
> xx <- xx &  gac(mFig5b, x=c(2,7), y=6, z=c(4,5), type)$gac
> xx <- xx &  gac(mFig5b, x=c(2,7), y=6, z=c(4,5,1), type)$gac
> xx <- xx &  gac(mFig5b, x=c(2,7), y=6, z=c(4,5,3), type)$gac
> xx <- xx &  gac(mFig5b, x=c(2,7), y=6, z=c(1,3,4,5), type)$gac
> 
> ## PAG in Marloes' talk
> mMMp <- matrix(c(0,0,0,3,2,0,0, 0,0,0,0,1,0,0, 0,0,0,0,1,0,0, 2,0,0,0,0,3,2,
+                  3,2,2,0,0,0,3, 0,0,0,2,0,0,0, 0,0,0,2,2,0,0), 7,7)
> x <- c(5,6); y <- 7
> xx <- xx & !gac(mMMp, x,y, z=NULL, type)$gac
> xx <- xx & !gac(mMMp, x,y, z= 1,   type)$gac
> xx <- xx & !gac(mMMp, x,y, z= 4,   type)$gac
> xx <- xx & !gac(mMMp, x,y, z= 2,   type)$gac
> xx <- xx & !gac(mMMp, x,y, z= 3,   type)$gac
> xx <- xx & !gac(mMMp, x,y, z=c(2,3), type)$gac
> xx <- xx &  gac(mMMp, x,y, z=c(1,4), type)$gac
> xx <- xx &  gac(mMMp, x,y, z=c(1,4,2), type)$gac
> xx <- xx &  gac(mMMp, x,y, z=c(1,4,3), type)$gac
> xx <- xx &  gac(mMMp, x,y, z=c(1,4,2,3), type)$gac
> 
> ##################################################
> ## type = "pag" -- Tests from Ema
> ##################################################
> type <- "pag"
> pag.m <- readRDS(system.file("external/gac-pags.rds", package="pcalg"))
> m1 <- pag.m[["m1"]]
> x <- 6; y <- 9
> xx <- xx & !gac(m1,x,y, z=NULL, type)$gac
> xx <- xx & !gac(m1,x,y, z=1, type)$gac
> xx <- xx & !gac(m1,x,y, z=2, type)$gac
> xx <- xx & !gac(m1,x,y, z=3, type)$gac
> xx <- xx & !gac(m1,x,y, z=4, type)$gac
> xx <- xx & !gac(m1,x,y, z=c(2,3), type)$gac
> xx <- xx &  gac(m1,x,y, z=c(2,3,8), type)$gac
> xx <- xx &  gac(m1,x,y, z=c(2,3,7,8), type)$gac
> xx <- xx & !gac(m1,x,y, z=c(2,3,5,8), type)$gac
> xx <- xx & !gac(m1,x,y, z=c(2,3,5,7,8), type)$gac
> 
> x <- c(6,8); y <- 9
> xx <- xx & !gac(m1,x,y, z=NULL, type)$gac
> xx <- xx & !gac(m1,x,y, z=1, type)$gac
> xx <- xx & !gac(m1,x,y, z=2, type)$gac
> xx <- xx & !gac(m1,x,y, z=3, type)$gac
> xx <- xx & !gac(m1,x,y, z=4, type)$gac
> xx <- xx &  gac(m1,x,y, z=c(2,3), type)$gac
> xx <- xx &  gac(m1,x,y, z=c(2,3,4), type)$gac
> xx <- xx &  gac(m1,x,y, z=c(2,3,7), type)$gac
> xx <- xx & !gac(m1,x,y, z=c(2,3,5), type)$gac
> xx <- xx & !gac(m1,x,y, z=c(2,3,5,7), type)$gac
> 
> x <- 3; y <- 1
> xx <- xx & !gac(m1,x,y, z=NULL, type)$gac
> xx <- xx & !gac(m1,x,y, z=2, type)$gac
> xx <- xx & !gac(m1,x,y, z=4, type)$gac
> xx <- xx & !gac(m1,x,y, z=5, type)$gac
> xx <- xx & !gac(m1,x,y, z=6, type)$gac
> xx <- xx & !gac(m1,x,y, z=c(2,6), type)$gac
> xx <- xx & !gac(m1,x,y, z=c(2,8), type)$gac
> xx <- xx & !gac(m1,x,y, z=c(2,7,8), type)$gac
> xx <- xx & !gac(m1,x,y, z=c(2,5,8), type)$gac
> xx <- xx & !gac(m1,x,y, z=c(2,5,7,8), type)$gac
> 
> m2 <- pag.m[["m2"]]
> x <- 3; y <-1
> xx <- xx & !gac(m2,x,y, z=NULL, type)$gac
> xx <- xx &  gac(m2,x,y, z=2, type)$gac
> xx <- xx & !gac(m2,x,y, z=4, type)$gac
> xx <- xx & !gac(m2,x,y, z=c(2,8), type)$gac
> xx <- xx & !gac(m2,x,y, z=8, type)$gac
> xx <- xx & !gac(m2,x,y, z=9, type)$gac
> xx <- xx & !gac(m2,x,y, z=c(2,8,9), type)$gac
> xx <- xx &  gac(m2,x,y, z=c(2,5), type)$gac
> 
> x <- c(3,9); y <- 1
> xx <- xx & !gac(m2,x,y, z=NULL, type)$gac
> xx <- xx & !gac(m2,x,y, z=2, type)$gac
> xx <- xx & !gac(m2,x,y, z=4, type)$gac
> xx <- xx & !gac(m2,x,y, z=c(2,8), type)$gac
> xx <- xx & !gac(m2,x,y, z=8, type)$gac
> xx <- xx & !gac(m2,x,y, z=9, type)$gac
> xx <- xx & !gac(m2,x,y, z=c(2,8,9), type)$gac
> xx <- xx & !gac(m2,x,y, z=c(2,5), type)$gac
> 
> m3 <- pag.m[["m3"]]
> x <- 1; y <- 9
> xx <- xx & !gac(m3,x,y, z=NULL, type)$gac
> xx <- xx & !gac(m3,x,y, z=2, type)$gac
> xx <- xx & !gac(m3,x,y, z=3, type)$gac
> xx <- xx & !gac(m3,x,y, z=5, type)$gac
> xx <- xx & !gac(m3,x,y, z=7, type)$gac
> xx <- xx & !gac(m3,x,y, z=8, type)$gac
> xx <- xx &  gac(m3,x,y, z=c(2,3), type)$gac
> xx <- xx &  gac(m3,x,y, z=c(5,7), type)$gac
> 
> x <- 1; y <- 8
> xx <- xx & !gac(m3,x,y, z=NULL, type)$gac
> xx <- xx & !gac(m3,x,y, z=2, type)$gac
> xx <- xx & !gac(m3,x,y, z=3, type)$gac
> xx <- xx & !gac(m3,x,y, z=5, type)$gac
> xx <- xx &  gac(m3,x,y, z=7, type)$gac
> xx <- xx & !gac(m3,x,y, z=9, type)$gac
> xx <- xx &  gac(m3,x,y, z=c(2,3), type)$gac
> xx <- xx & !gac(m3,x,y, z=c(5,9), type)$gac
> 
> if (!xx) stop("Problem when testing function gac.")
> 
> proc.time()
   user  system elapsed 
   1.78    0.25    2.03