library(pointblank) method_schema_default <- function(method_to_test, type) { tbl <- data_ratings %>% method_to_test(type = {{ type }}, percent_toggle = TRUE) test_that("column `method` exists", { expect_col_exists( tbl, columns = vars(method), threshold = 1 ) }) test_that("column `paper_id` exists", { expect_col_exists( tbl, columns = vars(paper_id), threshold = 1 ) }) test_that("column `cs` exists", { expect_col_exists( tbl, columns = vars(cs), threshold = 1 ) }) test_that("column `n_experts` exists", { expect_col_exists( tbl, columns = vars(n_experts), threshold = 1 ) }) test_that("values in `n_experts` should be between `0` and `25`", { expect_col_vals_between( tbl, columns = vars(n_experts), left = 0, right = 25, threshold = 1 ) }) test_that("values in `cs` should be between `0` and `1`", { expect_col_vals_between( tbl, columns = vars(cs), left = 0, right = 1, threshold = 1 ) }) test_that("column `method` is of type: character", { expect_col_is_character( tbl, columns = vars(method), threshold = 1 ) }) test_that("column `paper_id` is of type: character", { expect_col_is_character( tbl, columns = vars(paper_id), threshold = 1 ) }) test_that("column `n_experts` is of type: integer", { expect_col_is_integer( tbl, columns = vars(n_experts), threshold = 1 ) }) test_that("all values in `method` should not be NULL", { expect_col_vals_not_null( tbl, columns = vars(method), threshold = 1 ) }) test_that("all values in `paper_id` should not be NULL", { expect_col_vals_not_null( tbl, columns = vars(paper_id), threshold = 1 ) }) test_that("all values in `cs` should not be NULL", { expect_col_vals_not_null( tbl, columns = vars(cs), threshold = 1 ) }) test_that("all values in `n_experts` should not be NULL", { expect_col_vals_not_null( tbl, columns = vars(n_experts), threshold = 1 ) }) } # Measures of unweighted aggregation method_schema_default(AverageWAgg, type = "ArMean") method_schema_default(AverageWAgg, type = "Median") method_schema_default(AverageWAgg, type = "GeoMean") method_schema_default(AverageWAgg, type = "LOArMean") method_schema_default(AverageWAgg, type = "ProbitArMean") method_schema_default(LinearWAgg, type = "DistLimitWAgg") method_schema_default(LinearWAgg, type = "GranWAgg") method_schema_default(LinearWAgg, type = "OutWAgg") method_schema_default(IntervalWAgg, type = "IntWAgg") method_schema_default(IntervalWAgg, type = "IndIntWAgg") method_schema_default(IntervalWAgg, type = "AsymWAgg") method_schema_default(IntervalWAgg, type = "IndIntAsymWAgg") method_schema_default(IntervalWAgg, type = "VarIndIntWAgg") method_schema_default(IntervalWAgg, type = "KitchSinkWAgg") method_schema_default(DistributionWAgg, type = "DistribArMean") method_schema_default(DistributionWAgg, type = "TriDistribArMean") method_schema_default(ShiftingWAgg, type = "ShiftWAgg") method_schema_default(ShiftingWAgg, type = "BestShiftWAgg") method_schema_default(ShiftingWAgg, type = "IntShiftWAgg") method_schema_default(ShiftingWAgg, type = "DistShiftWAgg") method_schema_default(ShiftingWAgg, type = "DistIntShiftWAgg") # Method Test Needing Additional Arguments -------------------------------- method_schema_linear_weights <- function(method_to_test, weights, type, name) { tbl <- data_ratings %>% method_to_test( weights, type = {{ type }}, name = {{ name }}, percent_toggle = TRUE ) test_that("column `method` exists", { expect_col_exists( tbl, columns = vars(method), threshold = 1 ) }) test_that("column `paper_id` exists", { expect_col_exists( tbl, columns = vars(paper_id), threshold = 1 ) }) test_that("column `cs` exists", { expect_col_exists( tbl, columns = vars(cs), threshold = 1 ) }) test_that("column `n_experts` exists", { expect_col_exists( tbl, columns = vars(n_experts), threshold = 1 ) }) test_that("values in `n_experts` should be between `0` and `25`", { expect_col_vals_between( tbl, columns = vars(n_experts), left = 0, right = 25, threshold = 1 ) }) test_that("values in `cs` should be between `0` and `1`", { expect_col_vals_between( tbl, columns = vars(cs), left = 0, right = 1, threshold = 1 ) }) test_that("column `method` is of type: character", { expect_col_is_character( tbl, columns = vars(method), threshold = 1 ) }) test_that("column `paper_id` is of type: character", { expect_col_is_character( tbl, columns = vars(paper_id), threshold = 1 ) }) test_that("column `n_experts` is of type: integer", { expect_col_is_integer( tbl, columns = vars(n_experts), threshold = 1 ) }) test_that("all values in `method` should not be NULL", { expect_col_vals_not_null( tbl, columns = vars(method), threshold = 1 ) }) test_that("all values in `paper_id` should not be NULL", { expect_col_vals_not_null( tbl, columns = vars(paper_id), threshold = 1 ) }) test_that("all values in `cs` should not be NULL", { expect_col_vals_not_null( tbl, columns = vars(cs), threshold = 1 ) }) test_that("all values in `n_experts` should not be NULL", { expect_col_vals_not_null( tbl, columns = vars(n_experts), threshold = 1 ) }) } # LinearWAgg Additional Arguments ----------------------------------------- method_schema_linear_weights( LinearWAgg, weights = data_supp_quiz %>% dplyr::rename(weight = quiz_score), type = "Participant_LO", name = "QuizWAgg" ) # # # method_schema_linear_weights(LinearWAgg, # weights = data_ratings %>% # dplyr::filter(element == "three_point_best", # round == "round_2") %>% # dplyr::select(paper_id, # user_name, # timestamp) %>% # dplyr::group_by(user_name) %>% # dplyr::arrange(timestamp) %>% # dplyr::mutate(claim_count = dplyr::row_number()) %>% # dplyr::ungroup() %>% # dplyr::mutate(weight = log(claim_count) + 1) %>% # dplyr::select(paper_id, # user_name, # weight), # type = "Judgement", # name = "ExperienceWAgg") method_schema_linear_weights( LinearWAgg, weights = data_ratings %>% dplyr::filter(question == "comprehension", round == "round_2") %>% dplyr::select(paper_id, user_name, value) %>% dplyr::rename(weight = value), type = "Judgement", name = "CompWAgg" ) method_schema_linear_weights( LinearWAgg, weights = data_justifications %>% dplyr::mutate( n_words = stringr::str_count(justification, pattern = " ") + 1 ) %>% dplyr::group_by(user_name, paper_id) %>% dplyr::summarise(word_count = sum(n_words, na.rm = TRUE)) %>% dplyr::select(paper_id, user_name, word_count) %>% dplyr::rename(weight = word_count), type = "Judgement", name = "EngWAgg" ) # Reasoning --------------------------------------------------------------- method_schema_reasoning <- function( method_to_test, reasons, type, name, beta_transform ) { tbl <- data_ratings %>% method_to_test( reasons, type = {{ type }}, name = {{ name }}, beta_transform = {{ beta_transform }}, percent_toggle = TRUE ) test_that("column `method` exists", { expect_col_exists( tbl, columns = vars(method), threshold = 1 ) }) test_that("column `paper_id` exists", { expect_col_exists( tbl, columns = vars(paper_id), threshold = 1 ) }) test_that("column `cs` exists", { expect_col_exists( tbl, columns = vars(cs), threshold = 1 ) }) test_that("column `n_experts` exists", { expect_col_exists( tbl, columns = vars(n_experts), threshold = 1 ) }) test_that("values in `n_experts` should be between `0` and `25`", { expect_col_vals_between( tbl, columns = vars(n_experts), left = 0, right = 25, threshold = 1 ) }) test_that("values in `cs` should be between `0` and `1`", { expect_col_vals_between( tbl, columns = vars(cs), left = 0, right = 1, threshold = 1 ) }) test_that("column `method` is of type: character", { expect_col_is_character( tbl, columns = vars(method), threshold = 1 ) }) test_that("column `paper_id` is of type: character", { expect_col_is_character( tbl, columns = vars(paper_id), threshold = 1 ) }) test_that("column `n_experts` is of type: integer", { expect_col_is_integer( tbl, columns = vars(n_experts), threshold = 1 ) }) test_that("all values in `method` should not be NULL", { expect_col_vals_not_null( tbl, columns = vars(method), threshold = 1 ) }) test_that("all values in `paper_id` should not be NULL", { expect_col_vals_not_null( tbl, columns = vars(paper_id), threshold = 1 ) }) test_that("all values in `cs` should not be NULL", { expect_col_vals_not_null( tbl, columns = vars(cs), threshold = 1 ) }) test_that("all values in `n_experts` should not be NULL", { expect_col_vals_not_null( tbl, columns = vars(n_experts), threshold = 1 ) }) } method_schema_reasoning( ReasoningWAgg, reasons = data_supp_reasons, type = "ReasonWAgg", name = "ReasonWAgg", beta_transform = FALSE ) method_schema_reasoning( ReasoningWAgg, reasons = data_supp_reasons, type = "ReasonWAgg2", name = "ReasonWAgg2", beta_transform = FALSE ) method_schema_reasoning( ReasoningWAgg, reasons = data_supp_reasons, type = "ReasonWAgg", name = "BetaReasonWAgg", beta_transform = TRUE ) method_schema_reasoning( ReasoningWAgg, reasons = data_supp_reasons, type = "ReasonWAgg2", name = "BetaReasonWAgg2", beta_transform = TRUE ) # Bayes -------------------------------------------------------------------- method_schema_bays <- function(method_to_test, priors, type, name) { tbl <- data_ratings %>% method_to_test( priors, type = {{ type }}, name = {{ name }}, percent_toggle = TRUE ) test_that("column `method` exists", { expect_col_exists( tbl, columns = vars(method), threshold = 1 ) }) test_that("column `paper_id` exists", { expect_col_exists( tbl, columns = vars(paper_id), threshold = 1 ) }) test_that("column `cs` exists", { expect_col_exists( tbl, columns = vars(cs), threshold = 1 ) }) test_that("column `n_experts` exists", { expect_col_exists( tbl, columns = vars(n_experts), threshold = 1 ) }) test_that("values in `n_experts` should be between `0` and `25`", { expect_col_vals_between( tbl, columns = vars(n_experts), left = 0, right = 25, threshold = 1 ) }) test_that("values in `cs` should be between `0` and `1`", { expect_col_vals_between( tbl, columns = vars(cs), left = 0, right = 1, threshold = 1 ) }) test_that("column `method` is of type: character", { expect_col_is_character( tbl, columns = vars(method), threshold = 1 ) }) test_that("column `paper_id` is of type: character", { expect_col_is_character( tbl, columns = vars(paper_id), threshold = 1 ) }) test_that("column `n_experts` is of type: integer", { expect_col_is_integer( tbl, columns = vars(n_experts), threshold = 1 ) }) test_that("all values in `method` should not be NULL", { expect_col_vals_not_null( tbl, columns = vars(method), threshold = 1 ) }) test_that("all values in `paper_id` should not be NULL", { expect_col_vals_not_null( tbl, columns = vars(paper_id), threshold = 1 ) }) test_that("all values in `cs` should not be NULL", { expect_col_vals_not_null( tbl, columns = vars(cs), threshold = 1 ) }) test_that("all values in `n_experts` should not be NULL", { expect_col_vals_not_null( tbl, columns = vars(n_experts), threshold = 1 ) }) } # method_schema_bays(BayesianWAgg, priors = NULL, type = "BayTriVar", name = "BayTriVar") # method_schema_bays(BayesianWAgg, priors = data_supp_priors, type = "BayPRIORsAgg", name = "BayTriVar") # Extreme Wag ------------------------------------------------------------- method_schema_extreme <- function( method_to_test, type, name, cutoff_lower, cutoff_upper ) { tbl <- data_ratings %>% method_to_test( type = {{ type }}, name = {{ name }}, cutoff_lower = {{ cutoff_lower }}, cutoff_upper = {{ cutoff_upper }}, percent_toggle = TRUE ) test_that("column `method` exists", { expect_col_exists( tbl, columns = vars(method), threshold = 1 ) }) test_that("column `paper_id` exists", { expect_col_exists( tbl, columns = vars(paper_id), threshold = 1 ) }) test_that("column `cs` exists", { expect_col_exists( tbl, columns = vars(cs), threshold = 1 ) }) test_that("column `n_experts` exists", { expect_col_exists( tbl, columns = vars(n_experts), threshold = 1 ) }) test_that("values in `n_experts` should be between `0` and `25`", { expect_col_vals_between( tbl, columns = vars(n_experts), left = 0, right = 25, threshold = 1 ) }) test_that("values in `cs` should be between `0` and `1`", { expect_col_vals_between( tbl, columns = vars(cs), left = 0, right = 1, threshold = 1 ) }) test_that("column `method` is of type: character", { expect_col_is_character( tbl, columns = vars(method), threshold = 1 ) }) test_that("column `paper_id` is of type: character", { expect_col_is_character( tbl, columns = vars(paper_id), threshold = 1 ) }) test_that("column `n_experts` is of type: integer", { expect_col_is_integer( tbl, columns = vars(n_experts), threshold = 1 ) }) test_that("all values in `method` should not be NULL", { expect_col_vals_not_null( tbl, columns = vars(method), threshold = 1 ) }) test_that("all values in `paper_id` should not be NULL", { expect_col_vals_not_null( tbl, columns = vars(paper_id), threshold = 1 ) }) test_that("all values in `cs` should not be NULL", { expect_col_vals_not_null( tbl, columns = vars(cs), threshold = 1 ) }) test_that("all values in `n_experts` should not be NULL", { expect_col_vals_not_null( tbl, columns = vars(n_experts), threshold = 1 ) }) } method_schema_extreme( ExtremisationWAgg, type = "BetaArMean", name = "BetaArMean", cutoff_lower = NULL, cutoff_upper = NULL ) method_schema_extreme( ExtremisationWAgg, type = "BetaArMean2", name = "BetaArMean2", cutoff_lower = 0.4, cutoff_upper = 0.6 )