From 36b035b28bedb634e33f62f638140c9cdeec3b72 Mon Sep 17 00:00:00 2001 From: alecbuetow <97068347+alecbuetow@users.noreply.github.com> Date: Mon, 23 Sep 2024 16:19:47 -0400 Subject: [PATCH] Added 2 Tests for Untangle.R (#123) * untangle_best_k_to_rotate_by_1side test added * untangle_best_k_to_rotate_by_2side_backNforth test added --- tests/testthat/test-untangle.R | 44 ++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/tests/testthat/test-untangle.R b/tests/testthat/test-untangle.R index 4aa8c2a2..1a553ec4 100644 --- a/tests/testthat/test-untangle.R +++ b/tests/testthat/test-untangle.R @@ -215,3 +215,47 @@ test_that("untangle (main function) works for 2 step", { out2 <- untangle_step_rotate_2side(dend1, dend2) expect_identical(out1, out2) }) + + + + +test_that("untangle_best_k_to_rotate_by_1side works", { + suppressWarnings(RNGversion("3.5.0")) + set.seed(226) + + dend1 <- USArrests[1:10, ] %>% + dist() %>% + hclust() %>% + as.dendrogram() + dend2 <- shuffle(dend1) + original_entanglement <- entanglement(dend1, dend2) + expect_identical(round(original_entanglement, 3), 0.248) + # resolve entanglement + dend1_corrected <- untangle_best_k_to_rotate_by_1side(dend1, dend2) + corrected_entanglement <- entanglement(dend1_corrected, dend2) + + # reduces entanglement from 0.248 to 0 + expect_identical(round(corrected_entanglement, 3), 0) +}) + + + + +test_that("untangle_best_k_to_rotate_by_2side_backNforth works", { + suppressWarnings(RNGversion("3.5.0")) + set.seed(30) + + dend1 <- USArrests[1:10, ] %>% + dist() %>% + hclust() %>% + as.dendrogram() + dend2 <- shuffle(dend1) + original_entanglement <- entanglement(dend1, dend2) + expect_identical(round(original_entanglement, 3), 0.251) + # resolve entanglement + dends_corrected <- untangle_best_k_to_rotate_by_2side_backNforth(dend1, dend2, L = 1, print_times = F) + corrected_entanglement <- entanglement(dends_corrected[[1]], dends_corrected[[2]]) + + # reduces entanglement from 0.251 to 0 + expect_identical(round(corrected_entanglement, 3), 0) +}) \ No newline at end of file