tests/testthat/test-eq5dcw.R

context("EQ-5D-5L Crosswalk")

test_that("EQ-5D-3L Bermuda Crosswalk gives correct answer", {
  expect_equal(eq5dcw(c(MO=1,SC=1,UA=1,PD=1,AD=1), "Bermuda"), 1.000)
  expect_equal(eq5dcw(c(MO=3,SC=2,UA=1,PD=2,AD=3), "Bermuda"), 0.647)
  expect_equal(eq5dcw(c(MO=1,SC=2,UA=1,PD=1,AD=2), "Bermuda"), 0.832)
  expect_equal(eq5dcw(c(MO=1,SC=3,UA=1,PD=3,AD=1), "Bermuda"), 0.777)
  expect_equal(eq5dcw(c(MO=3,SC=2,UA=4,PD=2,AD=4), "Bermuda"), 0.455)
  expect_equal(eq5dcw(c(MO=5,SC=5,UA=5,PD=5,AD=5), "Bermuda"), -0.547)
})

test_that("EQ-5D-3L Denmark Crosswalk gives correct answer", {
  expect_equal(eq5dcw(c(MO=1,SC=1,UA=1,PD=1,AD=1), "Denmark"), 1.000)
  expect_equal(eq5dcw(c(MO=3,SC=2,UA=1,PD=2,AD=3), "Denmark"), 0.663)
  expect_equal(eq5dcw(c(MO=1,SC=2,UA=1,PD=1,AD=2), "Denmark"), 0.784)
  expect_equal(eq5dcw(c(MO=1,SC=3,UA=1,PD=3,AD=1), "Denmark"), 0.761)
  expect_equal(eq5dcw(c(MO=3,SC=2,UA=4,PD=2,AD=4), "Denmark"), 0.437)
  expect_equal(eq5dcw(c(MO=5,SC=5,UA=5,PD=5,AD=5), "Denmark"), -0.624)
})

test_that("EQ-5D-3L France Crosswalk gives correct answer", {
  expect_equal(eq5dcw(c(MO=1,SC=1,UA=1,PD=1,AD=1), "France"), 1)
  expect_equal(eq5dcw(c(MO=1,SC=1,UA=2,PD=3,AD=3), "France"), 0.673)
  expect_equal(eq5dcw(c(MO=3,SC=3,UA=4,PD=4,AD=4), "France"), 0.009)
  expect_equal(eq5dcw(c(MO=3,SC=4,UA=4,PD=5,AD=5), "France"), -0.205)
  expect_equal(eq5dcw(c(MO=5,SC=5,UA=5,PD=5,AD=5), "France"), -0.53)
})

test_that("EQ-5D-3L Germany Crosswalk gives correct answer", {
  expect_equal(eq5dcw(c(MO=1,SC=1,UA=1,PD=1,AD=1), "Germany"), 1)
  expect_equal(eq5dcw(c(MO=1,SC=2,UA=2,PD=1,AD=1), "Germany"), 0.927)
  expect_equal(eq5dcw(c(MO=4,SC=4,UA=3,PD=1,AD=3), "Germany"), 0.679)
  expect_equal(eq5dcw(c(MO=4,SC=4,UA=4,PD=4,AD=4), "Germany"), 0.274)
  expect_equal(eq5dcw(c(MO=5,SC=5,UA=5,PD=5,AD=5), "Germany"), -0.205)
})

test_that("EQ-5D-3L Japan Crosswalk gives correct answer", {
  expect_equal(eq5dcw(c(MO=1,SC=1,UA=1,PD=1,AD=1), "Japan"), 1)
  expect_equal(eq5dcw(c(MO=2,SC=1,UA=3,PD=3,AD=1), "Japan"), 0.662)
  expect_equal(eq5dcw(c(MO=3,SC=3,UA=3,PD=3,AD=3), "Japan"), 0.532)
  expect_equal(eq5dcw(c(MO=4,SC=1,UA=4,PD=3,AD=3), "Japan"), 0.532)
  expect_equal(eq5dcw(c(MO=5,SC=5,UA=5,PD=5,AD=5), "Japan"), -0.111)
})

test_that("EQ-5D-3L Jordan Crosswalk gives correct answer", {
  expect_equal(eq5dcw(c(MO=1,SC=1,UA=1,PD=1,AD=1), "Jordan"), 1)
  expect_equal(eq5dcw(c(MO=2,SC=2,UA=2,PD=2,AD=2), "Jordan"), 0.533)
  expect_equal(eq5dcw(c(MO=3,SC=3,UA=3,PD=3,AD=3), "Jordan"), 0.426)
  expect_equal(eq5dcw(c(MO=4,SC=4,UA=4,PD=4,AD=4), "Jordan"), 0.156)
  expect_equal(eq5dcw(c(MO=5,SC=5,UA=5,PD=5,AD=5), "Jordan"), -0.560)
  expect_equal(eq5dcw(c(MO=5,SC=1,UA=2,PD=3,AD=3), "Jordan"), 0.241)
  expect_equal(eq5dcw(c(MO=3,SC=3,UA=4,PD=4,AD=4), "Jordan"), 0.211)
  expect_equal(eq5dcw(c(MO=3,SC=4,UA=4,PD=5,AD=5), "Jordan"), -0.061)
})

test_that("EQ-5D-3L Netherlands Crosswalk gives correct answer", {
  expect_equal(eq5dcw(c(MO=1,SC=1,UA=1,PD=1,AD=1), "Netherlands"), 1)
  expect_equal(eq5dcw(c(MO=2,SC=1,UA=2,PD=1,AD=3), "Netherlands"), 0.750)
  expect_equal(eq5dcw(c(MO=3,SC=3,UA=4,PD=3,AD=3), "Netherlands"), 0.484)
  expect_equal(eq5dcw(c(MO=4,SC=5,UA=4,PD=5,AD=4), "Netherlands"), -0.094)
  expect_equal(eq5dcw(c(MO=5,SC=5,UA=5,PD=5,AD=5), "Netherlands"), -0.329)
})

test_that("EQ-5D-3L Russia Crosswalk gives correct answer", {
  expect_equal(eq5dcw(c(MO=1,SC=1,UA=1,PD=1,AD=1), "Russia"), 1)
  expect_equal(eq5dcw(c(MO=1,SC=1,UA=2,PD=1,AD=3), "Russia"), 0.900)
  expect_equal(eq5dcw(c(MO=1,SC=2,UA=3,PD=4,AD=5), "Russia"), 0.496)
  expect_equal(eq5dcw(c(MO=3,SC=5,UA=4,PD=5,AD=4), "Russia"), 0.098)
  expect_equal(eq5dcw(c(MO=5,SC=5,UA=5,PD=5,AD=5), "Russia"), -0.502)
})

test_that("EQ-5D-3L Spain Crosswalk gives correct answer", {
  expect_equal(eq5dcw(c(MO=1,SC=1,UA=1,PD=1,AD=1), "Spain"), 1)
  expect_equal(eq5dcw(c(MO=1,SC=1,UA=1,PD=2,AD=2), "Spain"), 0.857)
  expect_equal(eq5dcw(c(MO=3,SC=3,UA=5,PD=5,AD=3), "Spain"), -0.073)
  expect_equal(eq5dcw(c(MO=4,SC=3,UA=5,PD=5,AD=5), "Spain"), -0.178)
  expect_equal(eq5dcw(c(MO=5,SC=5,UA=5,PD=5,AD=5), "Spain"), -0.654)
})

test_that("EQ-5D-5L Thailand Crosswalk gives correct answer", {
  expect_equal(eq5dcw(c(MO=1,SC=1,UA=1,PD=1,AD=1), "Thailand"), 1)
  expect_equal(eq5dcw(c(MO=1,SC=1,UA=1,PD=1,AD=5), "Thailand"), 0.549)
  expect_equal(eq5dcw(c(MO=3,SC=4,UA=2,PD=4,AD=3), "Thailand"), 0.245)
  expect_equal(eq5dcw(c(MO=5,SC=5,UA=2,PD=5,AD=5), "Thailand"), -0.381)
  expect_equal(eq5dcw(c(MO=5,SC=5,UA=5,PD=5,AD=5), "Thailand"), -0.452)
})

test_that("EQ-5D-3L UK Crosswalk gives correct answer", {
  expect_equal(eq5dcw(c(MO=1,SC=1,UA=1,PD=1,AD=1), "UK"), 1)
  expect_equal(eq5dcw(c(MO=1,SC=1,UA=2,PD=2,AD=1), "UK"), 0.795)
  expect_equal(eq5dcw(c(MO=4,SC=4,UA=4,PD=4,AD=1), "UK"), 0.226)
  expect_equal(eq5dcw(c(MO=4,SC=4,UA=5,PD=2,AD=5), "UK"), 0.004)
  expect_equal(eq5dcw(c(MO=5,SC=5,UA=5,PD=5,AD=5), "UK"), -0.594)
})

test_that("EQ-5D-3L USA Crosswalk gives correct answer", {
  expect_equal(eq5dcw(c(MO=1,SC=1,UA=1,PD=1,AD=1), "USA"), 1)
  expect_equal(eq5dcw(c(MO=1,SC=2,UA=2,PD=2,AD=1), "USA"), 0.778)
  expect_equal(eq5dcw(c(MO=5,SC=2,UA=3,PD=4,AD=2), "USA"), 0.216)
  expect_equal(eq5dcw(c(MO=5,SC=5,UA=5,PD=1,AD=3), "USA"), 0.162)
  expect_equal(eq5dcw(c(MO=5,SC=5,UA=5,PD=5,AD=5), "USA"), -0.109)
})

test_that("EQ-5D-3L Zimbabwe Crosswalk gives correct answer", {
  expect_equal(eq5dcw(c(MO=1,SC=1,UA=1,PD=1,AD=1), "Zimbabwe"), 0.9)
  expect_equal(eq5dcw(c(MO=2,SC=2,UA=2,PD=2,AD=2), "Zimbabwe"), 0.653)
  expect_equal(eq5dcw(c(MO=2,SC=3,UA=3,PD=3,AD=4), "Zimbabwe"), 0.544)
  expect_equal(eq5dcw(c(MO=4,SC=5,UA=4,PD=5,AD=4), "Zimbabwe"), 0.119)
  expect_equal(eq5dcw(c(MO=5,SC=5,UA=5,PD=5,AD=5), "Zimbabwe"), -0.145)
})

context("EQ-5D-5L Crosswalk Incorrect params")

test_that("EQ-5D-5L crosswalk throws error for incorrect parameters", {
  expect_error(eq5dcw(c(MD=5,SC=5,UA=5,PD=5,AD=5), "UK"))
  expect_error(eq5dcw(c(MO=1,SC=2,UA=3,PD=4,AD=6), "UK"))
  expect_error(eq5dcw(c(MO=1,SC=2,UA=3,PD=4,AD=5), "Swaziland"))
  expect_error(eq5dcw(c(3, 4, 5, 4, 3), "UK"))
})
fragla/eq5d documentation built on Nov. 27, 2024, 3:23 a.m.