# uzorkovanje iz normalne mesavine
rN_mesavina = function(n, mu, sigma, eps) {
  pom = sample(1:2, n, replace = T, prob = c(1 - eps, eps))
  x = rnorm(n, mu[pom], sigma[pom])
  return(x)
}

Tn = function(x_B, x) {
  sqrt(n) * (mean(x_B) - mean(x)) / sqrt(sum((x - mean(x))^2) / n)
}

lambda_n_ocena = function(x, B, a) {
  lambda_n = rep(0, 10)
  for (i in 1:10) {
    Tn_B = rep(0, B)
    for (j in 1:B) {
      x_B = sample(x, n, replace = T)
      Tn_B[j] = Tn(x_B, x)
    }
    lambda_n[i] = mean(Tn_B <= a)
  }
  return(lambda_n)
}

n = 50
B = 100

for (a in c(0, 0.5, 0.7)) {
  for (tau in c(2, 3)) {
    for (eps in c(0.1, 0.2)) {
      cat("tau:", tau, 
          ", eps:", eps, 
          ", a:", a, 
          ", lambda_n:", lambda_n_ocena(rN_mesavina(n, c(0, 0), c(1, tau), eps), B, a),
                "\n")
    }
  }
}
