require(dr)
source("psir.R")
source("psave.R")

generate=function(mu)  {
	n=100
	G=c(rep(1,n/2),rep(2,n/2))
	X=array(rnorm(4*n),c(n,4))
	X[,1]=X[,1]+G
	X[,2]=X[,1]+X[,2]
	Y=(X[,1]+mu)^2*2*(G-1.5)+rnorm(n)/10
	return(list(X=X,Y=Y,G=G))	
}


simu=function(test,method) {
	n=100
	pv=numeric(n)

	eye=diag(4)
	H=eye[,-4]

	for (i in 1:n) {
		dat=generate(1)
		fit=dr(Y~X|G,data=dat,method=method,nslices=4)
		if (test=="coordinate") 
			pv[i]=as.numeric(dr.coordinate.test(fit,H)[1,3])
		if (test=="dimension")
			pv[i]=fit$test[2,3]
	}

	pv=sort(pv)
	plot(1:n,pv)
}

simu("coordinate","psir")
#simu("coordinate","psave")
#simu("dimension","psir")
#simu("dimension","psave")

