tests/testthat/test-disparate-impact-remover.R

context("Comprehensive Test for Disparate Impact Remover Algorithm")

skip_on_cran()

test_that("running dataset test", {
  dd <- aif360::aif_dataset(
    data_path = system.file("extdata", "data.csv", package="aif360"),
    favor_label=0,
    unfavor_label=1,
    unprivileged_protected_attribute=0,
    privileged_protected_attribute=1,
    target_column="income",
    protected_attribute="sex")

  expect_equal(dd$favorable_label, 0)
  expect_equal(dd$unfavorable_label, 1)

  bm <- binary_label_dataset_metric(dd, list('sex', 1), list('sex',0))
  expect_equal(bm$disparate_impact(), 1.28, tolerance=0.00296)

  dr <- disparate_impact_remover(repair_level=1.0, sensitive_attribute='sex')
  new_dd <- dr$fit_transform(dd)
  new_bm <- binary_label_dataset_metric(new_dd, list('sex', 1), list('sex',0))

  expect_equal(new_bm$disparate_impact(), 1.28, tolerance=0.00296)

})

Try the aif360 package in your browser

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

aif360 documentation built on July 1, 2020, 5:34 p.m.