diff --git a/tests/testthat/test-sgd_lm.R b/tests/testthat/test-sgd_lm.R index 8827df3..fc63d9b 100644 --- a/tests/testthat/test-sgd_lm.R +++ b/tests/testthat/test-sgd_lm.R @@ -88,6 +88,7 @@ test_that("sgd_lm burn matters 2", { check = max(abs(out1$coefficients - out2$coefficients)) expect_false(check==0) }) + test_that("sgd_lm with scalar X", { n = 1e05 p = 2 @@ -100,3 +101,16 @@ test_that("sgd_lm with scalar X", { check = max(abs(out1$coefficients - out2$coefficients)) expect_false(check==0) }) + +test_that("sgd_lm with scalar X with/out intercept", { + n = 1e05 + p = 2 + bt0 = c(0,5) + x = 2*matrix(rnorm(n*(p-1)), n, (p-1)) + y = cbind(1,x) %*% bt0 + rnorm(n) + my.dat = data.frame(y=y, x=x) + out1 = sgd_lm(y~., data=my.dat, intercept=TRUE) + out2 = sgd_lm(y~., data=my.dat, intercept=FALSE) + check = max(abs(out1$coefficients[-1] - out2$coefficients)) + expect_false(check==0) +}) diff --git a/tests/testthat/test-sgd_qr.R b/tests/testthat/test-sgd_qr.R new file mode 100644 index 0000000..27a5552 --- /dev/null +++ b/tests/testthat/test-sgd_qr.R @@ -0,0 +1,116 @@ +test_that("sgd_qr studentize matters", { + n = 1e05 + p = 5 + bt0 = rep(5,p) + x = 2*matrix(rnorm(n*(p-1)), n, (p-1)) + y = cbind(1,x) %*% bt0 + rnorm(n) + my.dat = data.frame(y=y, x=x) + out1 = sgd_qr(y~., data=my.dat, studentize=TRUE) + out2 = sgd_qr(y~., data=my.dat, studentize=FALSE) + check = max(abs(out1$coefficients - out2$coefficients)) + expect_false(check==0) +}) + +test_that("sgd_qr no_studentize matters", { + n = 1e05 + p = 5 + bt0 = rep(5,p) + x = 2*matrix(rnorm(n*(p-1)), n, (p-1)) + y = cbind(1,x) %*% bt0 + rnorm(n) + my.dat = data.frame(y=y, x=x) + out1 = sgd_qr(y~., data=my.dat) + out2 = sgd_qr(y~., data=my.dat, no_studentize=1e06) + check = max(abs(out1$coefficients - out2$coefficients)) + expect_false(check==0) +}) + +test_that("sgd_qr intercept matters 1", { + n = 1e05 + p = 5 + bt0 = rep(5,p) + x = matrix(rnorm(n*(p-1)), n, (p-1)) + y = cbind(1,x) %*% bt0 + rnorm(n) + my.dat = data.frame(y=y, x=x) + out1 = sgd_qr(y~., data=my.dat) + out2 = sgd_qr(y~., data=my.dat, intercept=FALSE) + check = max(abs(out1$coefficients[-1] - out2$coefficients)) + expect_false(check==0) +}) + +test_that("sgd_qr intercept matters 2", { + n = 1e05 + p = 5 + bt0 = rep(5,p) + x = matrix(rnorm(n*(p-1)), n, (p-1)) + y = cbind(1,x) %*% bt0 + rnorm(n) + my.dat = data.frame(y=y, x=x) + out1 = sgd_qr(y~., data=my.dat, studentize=FALSE) + out2 = sgd_qr(y~., data=my.dat, studentize=FALSE, intercept=FALSE) + check = max(abs(out1$coefficients[-1] - out2$coefficients)) + expect_false(check==0) +}) + +test_that("sgd_qr bt_start matters", { + n = 1e05 + p = 5 + bt0 = rep(5,p) + x = matrix(rnorm(n*(p-1)), n, (p-1)) + y = cbind(1,x) %*% bt0 + rnorm(n) + my.dat = data.frame(y=y, x=x) + out1 = sgd_qr(y~., data=my.dat) + out2 = sgd_qr(y~., data=my.dat, bt_start=bt0) + check = max(abs(out1$coefficients - out2$coefficients)) + expect_false(check==0) +}) + +test_that("sgd_qr burn matters 1", { + n = 1e05 + p = 5 + bt0 = rep(5,p) + x = 2*matrix(rnorm(n*(p-1)), n, (p-1)) + y = cbind(1,x) %*% bt0 + rnorm(n) + my.dat = data.frame(y=y, x=x) + out1 = sgd_qr(y~., data=my.dat) + out2 = sgd_qr(y~., data=my.dat, burn=100) + check = max(abs(out1$coefficients - out2$coefficients)) + expect_false(check==0) +}) + +test_that("sgd_qr burn matters 2", { + n = 1e05 + p = 5 + bt0 = rep(5,p) + x = 2*matrix(rnorm(n*(p-1)), n, (p-1)) + y = cbind(1,x) %*% bt0 + rnorm(n) + my.dat = data.frame(y=y, x=x) + out1 = sgd_qr(y~., data=my.dat, studentize=FALSE) + out2 = sgd_qr(y~., data=my.dat, burn=100, studentize=FALSE) + check = max(abs(out1$coefficients - out2$coefficients)) + expect_false(check==0) +}) + +test_that("sgd_qr with scalar X", { + n = 1e05 + p = 2 + bt0 = rep(5,2) + x = 2*matrix(rnorm(n*(p-1)), n, (p-1)) + y = cbind(1,x) %*% bt0 + rnorm(n) + my.dat = data.frame(y=y, x=x) + out1 = sgd_qr(y~., data=my.dat, studentize=TRUE) + out2 = sgd_qr(y~., data=my.dat, studentize=FALSE) + check = max(abs(out1$coefficients - out2$coefficients)) + expect_false(check==0) +}) + +test_that("sgd_qr with scalar X with/out intercept", { + n = 1e05 + p = 2 + bt0 = c(0,5) + x = 2*matrix(rnorm(n*(p-1)), n, (p-1)) + y = cbind(1,x) %*% bt0 + rnorm(n) + my.dat = data.frame(y=y, x=x) + out1 = sgd_qr(y~., data=my.dat, intercept=TRUE) + out2 = sgd_qr(y~., data=my.dat, intercept=FALSE) + check = max(abs(out1$coefficients[-1] - out2$coefficients)) + expect_false(check==0) +}) diff --git a/tests/testthat/test-sgdi_lm.R b/tests/testthat/test-sgdi_lm.R index 53e418b..e266fc4 100644 --- a/tests/testthat/test-sgdi_lm.R +++ b/tests/testthat/test-sgdi_lm.R @@ -50,3 +50,42 @@ test_that("Run the code with an option studentize=F", expect_true(check<1e-2) } ) + +test_that("sgdi_lm no_studentize matters", { + n = 1e05 + p = 5 + bt0 = rep(5,p) + x = 2*matrix(rnorm(n*(p-1)), n, (p-1)) + y = cbind(1,x) %*% bt0 + rnorm(n) + my.dat = data.frame(y=y, x=x) + out1 = sgdi_lm(y~., data=my.dat) + out2 = sgdi_lm(y~., data=my.dat, no_studentize=1e06) + check = max(abs(out1$coefficients - out2$coefficients)) + expect_false(check==0) +}) + +test_that("sgdi_lm with scalar X", { + n = 1e05 + p = 2 + bt0 = rep(5,2) + x = 2*matrix(rnorm(n*(p-1)), n, (p-1)) + y = cbind(1,x) %*% bt0 + rnorm(n) + my.dat = data.frame(y=y, x=x) + out1 = sgdi_lm(y~., data=my.dat, studentize=TRUE) + out2 = sgdi_lm(y~., data=my.dat, studentize=FALSE) + check = max(abs(out1$coefficients - out2$coefficients)) + expect_false(check==0) +}) + +test_that("sgdi_lm with scalar X with/out intercept", { + n = 1e05 + p = 2 + bt0 = c(0,5) + x = 2*matrix(rnorm(n*(p-1)), n, (p-1)) + y = cbind(1,x) %*% bt0 + rnorm(n) + my.dat = data.frame(y=y, x=x) + out1 = sgdi_lm(y~., data=my.dat, intercept=TRUE) + out2 = sgdi_lm(y~., data=my.dat, intercept=FALSE) + check = max(abs(out1$coefficients[-1] - out2$coefficients)) + expect_false(check==0) +}) diff --git a/tests/testthat/test-sgdi_qr.R b/tests/testthat/test-sgdi_qr.R index 796fb92..cd58f1f 100644 --- a/tests/testthat/test-sgdi_qr.R +++ b/tests/testthat/test-sgdi_qr.R @@ -65,3 +65,82 @@ test_that("Different significance levels", expect_true(check>0) } ) + +test_that("sgdi_qr no_studentize matters", { + n = 1e05 + p = 5 + bt0 = rep(5,p) + x = 2*matrix(rnorm(n*(p-1)), n, (p-1)) + y = cbind(1,x) %*% bt0 + rnorm(n) + my.dat = data.frame(y=y, x=x) + out1 = sgdi_qr(y~., data=my.dat) + out2 = sgdi_qr(y~., data=my.dat, no_studentize=1e06) + check = max(abs(out1$coefficients - out2$coefficients)) + expect_false(check==0) +}) + +test_that("sgdi_qr with scalar X", { + n = 1e05 + p = 2 + bt0 = rep(5,2) + x = 2*matrix(rnorm(n*(p-1)), n, (p-1)) + y = cbind(1,x) %*% bt0 + rnorm(n) + my.dat = data.frame(y=y, x=x) + out1 = sgdi_qr(y~., data=my.dat, studentize=TRUE) + out2 = sgdi_qr(y~., data=my.dat, studentize=FALSE) + check = max(abs(out1$coefficients - out2$coefficients)) + expect_false(check==0) +}) + +test_that("sgdi_qr with scalar X with/out intercept", { + n = 1e05 + p = 2 + bt0 = c(0,5) + x = 2*matrix(rnorm(n*(p-1)), n, (p-1)) + y = cbind(1,x) %*% bt0 + rnorm(n) + my.dat = data.frame(y=y, x=x) + out1 = sgdi_qr(y~., data=my.dat, intercept=TRUE) + out2 = sgdi_qr(y~., data=my.dat, intercept=FALSE) + check = max(abs(out1$coefficients[-1] - out2$coefficients)) + expect_false(check==0) +}) + +test_that("sgdi_qr burn matters 1", { + n = 1e05 + p = 5 + bt0 = rep(5,p) + x = 2*matrix(rnorm(n*(p-1)), n, (p-1)) + y = cbind(1,x) %*% bt0 + rnorm(n) + my.dat = data.frame(y=y, x=x) + out1 = sgdi_qr(y~., data=my.dat) + out2 = sgdi_qr(y~., data=my.dat, burn=100) + check = max(abs(out1$coefficients - out2$coefficients)) + expect_false(check==0) +}) + +test_that("sgdi_qr burn matters 2", { + n = 1e05 + p = 5 + bt0 = rep(5,p) + x = 2*matrix(rnorm(n*(p-1)), n, (p-1)) + y = cbind(1,x) %*% bt0 + rnorm(n) + my.dat = data.frame(y=y, x=x) + out1 = sgdi_qr(y~., data=my.dat, studentize=FALSE) + out2 = sgdi_qr(y~., data=my.dat, burn=100, studentize=FALSE) + check = max(abs(out1$coefficients - out2$coefficients)) + expect_false(check==0) +}) + + +test_that("sgdi_qr path_index matters", { + n = 1e05 + p = 5 + bt0 = rep(5,p) + x = matrix(rnorm(n*(p-1)), n, (p-1)) + y = cbind(1,x) %*% bt0 + rnorm(n) + my.dat = data.frame(y=y, x=x) + out1 = sgdi_qr(y~., data=my.dat, path=TRUE, path_index=1) + out2 = sgdi_qr(y~., data=my.dat, path=TRUE, path_index=2) + check = max(abs(out1$beta_hat_path[100] - out2$beta_hat_path[100])) + expect_false(check==0) +}) \ No newline at end of file