test_that("Dependence measures work correctly", { xi1 <- 2.0 xi2 <- 1.5 delta <- 0.6 z1 <- 0.5 z2 <- 0.7 # Local Dependence (gamma) loc_dep <- locdepbivteissier(z1, z2, xi1, xi2, delta) expect_true(loc_dep > 0) # Positive for delta > 0 (TP2) expect_equal(locdepbivteissier(z1, z2, xi1, xi2, 0), 0) expect_true(locdepbivteissier(z1, z2, xi1, xi2, -0.6) < 0) # Clayton-Oakes Measure (l) co_val <- claytonoakesbivteissier(z1, z2, xi1, xi2, delta) expect_true(co_val > 1) # > 1 for positive association expect_equal(claytonoakesbivteissier(z1, z2, xi1, xi2, 0), 1) # Conditional Probability Measure (psi) cp_val <- condprobbivteissier(z1, z2, xi1, xi2, delta) expect_true(cp_val > 1) expect_equal(condprobbivteissier(z1, z2, xi1, xi2, 0), 1) # Global Dependence Measures dep_pos <- depmeasuresbivteissier(0.8) expect_equal(dep_pos$spearman_rho, 0.8 / 3) expect_equal(dep_pos$kendall_tau, 2 * 0.8 / 9) expect_equal(dep_pos$dependence_type, "Positive Orthant Dependent (POD)") expect_true(dep_pos$tp2_property) dep_neg <- depmeasuresbivteissier(-0.6) expect_equal(dep_neg$spearman_rho, -0.6 / 3) expect_equal(dep_neg$kendall_tau, 2 * -0.6 / 9) expect_equal(dep_neg$dependence_type, "Negative Orthant Dependent (NOD)") expect_false(dep_neg$tp2_property) dep_zero <- depmeasuresbivteissier(0) expect_equal(dep_zero$spearman_rho, 0) expect_equal(dep_zero$kendall_tau, 0) expect_equal(dep_zero$dependence_type, "Independent") })