test_that("same_number works with simple number lists", { nums1 <- list(0.95, 1, 0.60) nums2 <- list(1, 1, 0.65) nums3 <- list(0.90, 1, 0.55) result_num <- same_number(nums1, nums2, nums3) expect_true(inherits(result_num, "samesies::similar_number")) expect_true(inherits(result_num, "samesies::similar")) expect_true(is.list(result_num@scores)) expect_true("normalized" %in% result_num@methods) }) test_that("same_number print method works", { nums1 <- list(0.95, 1, 0.60) nums2 <- list(1, 1, 0.65) result <- same_number(nums1, nums2) expect_error(print(result), NA) }) test_that("same_number summary method works", { nums1 <- list(0.95, 1, 0.60) nums2 <- list(1, 1, 0.65) result <- same_number(nums1, nums2) expect_error(summary(result), NA) }) test_that("same_number works with multiple methods", { nums1 <- list(0.95, 1, 0.60) nums2 <- list(1, 1, 0.65) result <- same_number(nums1, nums2, method = c("normalized", "fuzzy", "pct_diff") ) expect_true(inherits(result, "samesies::similar_number")) expect_true(all(c("normalized", "fuzzy", "pct_diff") %in% result@methods)) }) test_that("same_number handles nested structures", { nested_nums1 <- list( weights = list(1.2, 2.5, 3.7), heights = list(160, 170, 180) ) nested_nums2 <- list( weights = list(1.25, 2.45, 3.65), heights = list(162, 172, 178) ) result <- same_number(nested_nums1, nested_nums2) expect_true(inherits(result, "samesies::similar_number")) expect_true("weights_nested_nums1_nested_nums2" %in% names(result@scores$normalized)) expect_true("heights_nested_nums1_nested_nums2" %in% names(result@scores$normalized)) }) test_that("same_number utility functions work", { nums1 <- list(0.95, 1, 0.60) nums2 <- list(1, 1, 0.65) nums3 <- list(0.90, 1, 0.55) result <- same_number(nums1, nums2, nums3) avg_sim <- average_similarity(result) expect_type(avg_sim, "double") expect_true(all(avg_sim >= 0 & avg_sim <= 1)) pairs <- pair_averages(result) expect_s3_class(pairs, "data.frame") expect_named(pairs, c("method", "pair", "avg_score")) expect_true(all(pairs$pair %in% c("nums1_nums2", "nums1_nums3", "nums2_nums3"))) expect_true(all(pairs$avg_score >= 0 & pairs$avg_score <= 1)) })