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 }