1library(FrF2)
2### test programs for fold.design
3
4##  function for independent checks
5mult <- function(a1, a2, ...){
6    l <- list(...)
7    if (length(l))
8        return(Recall(a1, Recall(a2, ...)))
9    if (any(is.na(as.numeric(as.character(a1))))) a1 <- 2*as.numeric(as.factor(a1))-3
10    if (any(is.na(as.numeric(as.character(a2))))) a2 <- 2*as.numeric(as.factor(a2))-3
11    A <- as.numeric(as.character(a1))*as.numeric(as.character(a2))
12    A
13}
14
15## check for replications and reptowide designs
16plan1 <- FrF2(8,5,randomize=FALSE)
17plan2 <- FrF2(8,5,replications=2, randomize=FALSE)
18set.seed(98776)
19plan3 <- FrF2(8,5,replications=2, repeat.only=TRUE)
20fp1 <- fold.design(plan1)
21fp1b <- fold.design(plan1, columns=5)
22fp2 <- fold.design(plan2)
23fp3 <- fold.design(reptowide(plan3))
24
25plan4 <- FrF2(16,6,randomize=FALSE, factor.names=list(eins=c(1,2),zwei=c(43,87),drei=c("alt","neu"),vier="",fuenf="",sechs=""))
26plan5 <- FrF2(16,randomize=FALSE, factor.names=list(eins=c(1,2),zwei=c(43,87),drei=c("alt","neu"),vier="",fuenf="",sechs=""))
27fp4 <- fold.design(plan4)
28fp5 <- fold.design(plan5)
29plan6 <- FrF2(16,design="6-2.2",randomize=FALSE)
30plan7 <- FrF2(16,generators=catlg[["6-2.2"]]$gen,randomize=FALSE,factor.names=list(eins=c(1,2),zwei=c(43,87),drei=c("alt","neu"),vier="",fuenf="",sechs=""))
31fp6 <- fold.design(plan6)
32fp7 <- fold.design(plan7)
33fp6b <- fold.design(plan6, columns=c(4,6))
34fp7b <- fold.design(plan7, columns=c(4,6))
35
36## alias structure for three generators that differ only by sign
37plan8 <- FrF2(16,generators=c(7,13,15),randomize=FALSE)
38fp8 <- fold.design(plan8) ## seems to be correct, is at least compatible
39fp8b <- fold.design(plan8,columns=1:7)
40plan9 <- FrF2(16,generators=c(7,-13,15),randomize=FALSE)
41fp9 <- fold.design(plan9, columns=5)
42fp9b <- fold.design(plan9, columns=c(5,6,7))
43fp9c <- fold.design(plan9)
44plan10 <- FrF2(16,generators=c(-7,-13,-15),randomize=FALSE)
45fp10 <- fold.design(plan10, columns=5)  ## wrong sign in design.info somewhere
46fp10b <- fold.design(plan10, columns=c(5,6,7))
47
48## estimable muss noch her
49
50set.seed(98776)
51plan11 <- FrF2(estimable=formula("~one+two+three+four+two:three+two:four"),
52       factor.names=c("one","two","three","four"), res3=TRUE)
53fp11 <- fold.design(plan11)
54  ## clear=FALSE allows to allocate all effects on distinct columns in the
55  ##     8 run MA resolution IV design
56set.seed(98776)
57plan12 <- FrF2(estimable=formula("~one+two+three+four+two:three+two:four"),
58       factor.names=c("one","two","three","four"), clear=FALSE)
59fp12 <- fold.design(plan12)
60
61  ## 7 factors instead of 6, but no requirements for factor G
62set.seed(98776)
63plan13 <-   FrF2(16, nfactors=7, estimable = formula("~A+B+C+D+E+F+A:(B+C+D+E+F)"),
64       clear=FALSE)
65fp13 <- fold.design(plan13)
66
67plan14 <-  FrF2(32,14,WPs=8,nfac.WP=4,randomize=FALSE)
68fp14 <- fold.design(plan14)
69fp14b <- fold.design(plan14,columns=c(1,2))
70fp14c <- fold.design(plan14,columns=5:14)
71
72plan15 <- FrF2(32,14,WPs=8,nfac.WP=2,randomize=FALSE)
73fp15 <- fold.design(plan15)
74fp15b <- fold.design(plan15, columns=c(1,2))
75fp15c <- fold.design(plan15, columns=c(4,2))
76
77liste <- c("fp1","fp1b","fp2","fp3","fp4","fp5","fp6","fp6b","fp7","fp7b","fp8","fp8b",
78           "fp9","fp9b","fp9c","fp10","fp10b","fp11","fp12","fp13","fp14","fp14b","fp14c","fp15","fp15b","fp15c")
79
80for (cc in liste){
81   print(paste("*********************",cc,"*******************************"))
82   print(eval(parse(text=paste("design.info(",cc,")$creator"))))
83   print(eval(parse(text=paste("design.info(",cc,")$generators"))))
84   print(eval(parse(text=paste("design.info(",cc,")$aliased"))))
85   print(eval(parse(text=paste("design.info(",cc,")$res.WP"))))
86   print(eval(parse(text=paste("design.info(",cc,")$type"))))
87   print(eval(parse(text=cc)))
88   }