tests/testthat/test-multiObjMatch.R

## This is the file for testing the helper functions in the package MultiObjMatch

data("lalonde", package="cobalt")
psCols <- c("age", "educ", "married", "nodegree")
treatVal <- "treat"
responseVal <- "re78"  
pairDistVal <- c("age", "married", "educ", "nodegree")
exactVal <- c("educ") 
myBalVal <- c("race")
r1s <- seq(0.1, 10, 0.5)
r2s <- c(0.001)


res1 <- dist_bal_match(data=lalonde, treat_col= treatVal,marg_bal_col = myBalVal, 
                     exclusion_penalty=r1s, balance_penalty=r2s, 
                     dist_col = pairDistVal, 
                     exact_col= exactVal, 
                     propensity_col = psCols, 
                     ignore_col = c(responseVal), 
                     max_unmatched = 0.1, caliper_option=NULL, 
                     tol=1e-1, max_iter=0, rho_max_factor = 10)

## 1. Tabular summary function works
test_that("Tabular summary function test", {
  matching_comparison <- compare_matching(res1)
  matching_comparison_full <- compare_matching(res1, display_all = FALSE)
  matching_comparison_partial <- compare_matching(res1, cov_list = c("age", "married"))
  expect_equal(class(matching_comparison), "data.frame")
  expect_equal(class(matching_comparison_full), "data.frame")
  expect_equal(class(matching_comparison_partial), "data.frame")
  expect_equal(dim(matching_comparison)[2], dim(matching_comparison_partial)[2])
  expect_equal(dim(matching_comparison)[1], dim(matching_comparison_full)[1])
  expect_equal(length(c("age", "married")), dim(matching_comparison_partial)[1])
})

## 2. Test the function that generate the objective function values and penalty
test_that("Objective function summary", {
  summary_table <- get_rho_obj(res1)
  expect_equal(dim(summary_table)[1], 20)
  expect_equal(dim(summary_table)[2], 7)
})

## 3. Test graphic helper function 
test_that("Graphic helper function", {
  
  expect_error(visualize(res1, "f1"))
  expect_error(visualize(res1, x_axis = "f1", y_axis = "f2"))
  
})

Try the MultiObjMatch package in your browser

Any scripts or data that you put into this service are public.

MultiObjMatch documentation built on Sept. 11, 2024, 6:45 p.m.