From 3bd10a8f092a573e1d465bbc7d9964f2409c5ea1 Mon Sep 17 00:00:00 2001 From: Leonidas Zhak <70497898+LeonidasZhak@users.noreply.github.com> Date: Sun, 7 Jun 2026 16:55:30 +0800 Subject: [PATCH] tests: add edge-case tests for str_flatten() and str_flatten_comma() - Test empty input with zhak ttys020 Sat Jun 6 05:30 - 05:30 (00:00) zhak ttys020 Sat Jun 6 02:30 - 02:30 (00:00) zhak ttys020 Fri Jun 5 23:28 - 23:28 (00:00) zhak ttys021 Fri Jun 5 18:39 - 18:39 (00:00) zhak ttys020 Fri Jun 5 17:27 - 17:27 (00:00) zhak ttys019 Fri Jun 5 17:22 still logged in zhak ttys018 Fri Jun 5 17:22 still logged in zhak ttys017 Fri Jun 5 17:22 still logged in zhak ttys015 Fri Jun 5 17:22 still logged in zhak ttys016 Fri Jun 5 17:22 still logged in zhak ttys015 Fri Jun 5 17:22 - 17:22 (00:00) zhak ttys014 Fri Jun 5 17:22 still logged in zhak ttys013 Fri Jun 5 17:22 still logged in zhak ttys012 Fri Jun 5 17:22 still logged in zhak ttys011 Fri Jun 5 17:22 still logged in zhak ttys010 Fri Jun 5 17:22 still logged in zhak ttys009 Fri Jun 5 17:22 still logged in zhak ttys011 Fri Jun 5 17:02 - 17:02 (00:00) zhak ttys010 Fri Jun 5 17:02 - 17:02 (00:00) zhak ttys009 Fri Jun 5 17:02 - 17:02 (00:00) zhak ttys008 Fri Jun 5 17:02 still logged in zhak ttys007 Fri Jun 5 17:02 still logged in zhak ttys006 Fri Jun 5 17:02 still logged in zhak ttys005 Fri Jun 5 17:02 still logged in zhak ttys004 Fri Jun 5 17:02 still logged in zhak ttys003 Fri Jun 5 17:02 still logged in zhak ttys002 Fri Jun 5 17:02 still logged in zhak ttys000 Fri Jun 5 17:02 still logged in zhak ttys001 Fri Jun 5 17:02 still logged in zhak ttys021 Fri Jun 5 08:25 - 08:25 (00:00) zhak ttys020 Fri Jun 5 08:21 - 08:21 (00:00) zhak ttys019 Fri Jun 5 08:21 - 08:21 (00:00) zhak ttys018 Fri Jun 5 08:21 - 08:21 (00:00) zhak ttys017 Fri Jun 5 08:21 - 08:21 (00:00) zhak ttys013 Thu Jun 4 23:07 - 23:07 (00:00) zhak ttys014 Thu Jun 4 16:33 - 16:33 (00:00) zhak ttys013 Thu Jun 4 16:33 - 16:33 (00:00) wtmp begins Wed Jun 3 22:33:24 CST 2026 parameter - Test single element with zhak ttys020 Sat Jun 6 05:30 - 05:30 (00:00) zhak ttys020 Sat Jun 6 02:30 - 02:30 (00:00) zhak ttys020 Fri Jun 5 23:28 - 23:28 (00:00) zhak ttys021 Fri Jun 5 18:39 - 18:39 (00:00) zhak ttys020 Fri Jun 5 17:27 - 17:27 (00:00) zhak ttys019 Fri Jun 5 17:22 still logged in zhak ttys018 Fri Jun 5 17:22 still logged in zhak ttys017 Fri Jun 5 17:22 still logged in zhak ttys015 Fri Jun 5 17:22 still logged in zhak ttys016 Fri Jun 5 17:22 still logged in zhak ttys015 Fri Jun 5 17:22 - 17:22 (00:00) zhak ttys014 Fri Jun 5 17:22 still logged in zhak ttys013 Fri Jun 5 17:22 still logged in zhak ttys012 Fri Jun 5 17:22 still logged in zhak ttys011 Fri Jun 5 17:22 still logged in zhak ttys010 Fri Jun 5 17:22 still logged in zhak ttys009 Fri Jun 5 17:22 still logged in zhak ttys011 Fri Jun 5 17:02 - 17:02 (00:00) zhak ttys010 Fri Jun 5 17:02 - 17:02 (00:00) zhak ttys009 Fri Jun 5 17:02 - 17:02 (00:00) zhak ttys008 Fri Jun 5 17:02 still logged in zhak ttys007 Fri Jun 5 17:02 still logged in zhak ttys006 Fri Jun 5 17:02 still logged in zhak ttys005 Fri Jun 5 17:02 still logged in zhak ttys004 Fri Jun 5 17:02 still logged in zhak ttys003 Fri Jun 5 17:02 still logged in zhak ttys002 Fri Jun 5 17:02 still logged in zhak ttys000 Fri Jun 5 17:02 still logged in zhak ttys001 Fri Jun 5 17:02 still logged in zhak ttys021 Fri Jun 5 08:25 - 08:25 (00:00) zhak ttys020 Fri Jun 5 08:21 - 08:21 (00:00) zhak ttys019 Fri Jun 5 08:21 - 08:21 (00:00) zhak ttys018 Fri Jun 5 08:21 - 08:21 (00:00) zhak ttys017 Fri Jun 5 08:21 - 08:21 (00:00) zhak ttys013 Thu Jun 4 23:07 - 23:07 (00:00) zhak ttys014 Thu Jun 4 16:33 - 16:33 (00:00) zhak ttys013 Thu Jun 4 16:33 - 16:33 (00:00) wtmp begins Wed Jun 3 22:33:24 CST 2026 parameter - Test all-NA input with na.rm = TRUE - Test str_flatten_comma() with empty input and zhak ttys020 Sat Jun 6 05:30 - 05:30 (00:00) zhak ttys020 Sat Jun 6 02:30 - 02:30 (00:00) zhak ttys020 Fri Jun 5 23:28 - 23:28 (00:00) zhak ttys021 Fri Jun 5 18:39 - 18:39 (00:00) zhak ttys020 Fri Jun 5 17:27 - 17:27 (00:00) zhak ttys019 Fri Jun 5 17:22 still logged in zhak ttys018 Fri Jun 5 17:22 still logged in zhak ttys017 Fri Jun 5 17:22 still logged in zhak ttys015 Fri Jun 5 17:22 still logged in zhak ttys016 Fri Jun 5 17:22 still logged in zhak ttys015 Fri Jun 5 17:22 - 17:22 (00:00) zhak ttys014 Fri Jun 5 17:22 still logged in zhak ttys013 Fri Jun 5 17:22 still logged in zhak ttys012 Fri Jun 5 17:22 still logged in zhak ttys011 Fri Jun 5 17:22 still logged in zhak ttys010 Fri Jun 5 17:22 still logged in zhak ttys009 Fri Jun 5 17:22 still logged in zhak ttys011 Fri Jun 5 17:02 - 17:02 (00:00) zhak ttys010 Fri Jun 5 17:02 - 17:02 (00:00) zhak ttys009 Fri Jun 5 17:02 - 17:02 (00:00) zhak ttys008 Fri Jun 5 17:02 still logged in zhak ttys007 Fri Jun 5 17:02 still logged in zhak ttys006 Fri Jun 5 17:02 still logged in zhak ttys005 Fri Jun 5 17:02 still logged in zhak ttys004 Fri Jun 5 17:02 still logged in zhak ttys003 Fri Jun 5 17:02 still logged in zhak ttys002 Fri Jun 5 17:02 still logged in zhak ttys000 Fri Jun 5 17:02 still logged in zhak ttys001 Fri Jun 5 17:02 still logged in zhak ttys021 Fri Jun 5 08:25 - 08:25 (00:00) zhak ttys020 Fri Jun 5 08:21 - 08:21 (00:00) zhak ttys019 Fri Jun 5 08:21 - 08:21 (00:00) zhak ttys018 Fri Jun 5 08:21 - 08:21 (00:00) zhak ttys017 Fri Jun 5 08:21 - 08:21 (00:00) zhak ttys013 Thu Jun 4 23:07 - 23:07 (00:00) zhak ttys014 Thu Jun 4 16:33 - 16:33 (00:00) zhak ttys013 Thu Jun 4 16:33 - 16:33 (00:00) wtmp begins Wed Jun 3 22:33:24 CST 2026 - Test str_flatten_comma() with single element and zhak ttys020 Sat Jun 6 05:30 - 05:30 (00:00) zhak ttys020 Sat Jun 6 02:30 - 02:30 (00:00) zhak ttys020 Fri Jun 5 23:28 - 23:28 (00:00) zhak ttys021 Fri Jun 5 18:39 - 18:39 (00:00) zhak ttys020 Fri Jun 5 17:27 - 17:27 (00:00) zhak ttys019 Fri Jun 5 17:22 still logged in zhak ttys018 Fri Jun 5 17:22 still logged in zhak ttys017 Fri Jun 5 17:22 still logged in zhak ttys015 Fri Jun 5 17:22 still logged in zhak ttys016 Fri Jun 5 17:22 still logged in zhak ttys015 Fri Jun 5 17:22 - 17:22 (00:00) zhak ttys014 Fri Jun 5 17:22 still logged in zhak ttys013 Fri Jun 5 17:22 still logged in zhak ttys012 Fri Jun 5 17:22 still logged in zhak ttys011 Fri Jun 5 17:22 still logged in zhak ttys010 Fri Jun 5 17:22 still logged in zhak ttys009 Fri Jun 5 17:22 still logged in zhak ttys011 Fri Jun 5 17:02 - 17:02 (00:00) zhak ttys010 Fri Jun 5 17:02 - 17:02 (00:00) zhak ttys009 Fri Jun 5 17:02 - 17:02 (00:00) zhak ttys008 Fri Jun 5 17:02 still logged in zhak ttys007 Fri Jun 5 17:02 still logged in zhak ttys006 Fri Jun 5 17:02 still logged in zhak ttys005 Fri Jun 5 17:02 still logged in zhak ttys004 Fri Jun 5 17:02 still logged in zhak ttys003 Fri Jun 5 17:02 still logged in zhak ttys002 Fri Jun 5 17:02 still logged in zhak ttys000 Fri Jun 5 17:02 still logged in zhak ttys001 Fri Jun 5 17:02 still logged in zhak ttys021 Fri Jun 5 08:25 - 08:25 (00:00) zhak ttys020 Fri Jun 5 08:21 - 08:21 (00:00) zhak ttys019 Fri Jun 5 08:21 - 08:21 (00:00) zhak ttys018 Fri Jun 5 08:21 - 08:21 (00:00) zhak ttys017 Fri Jun 5 08:21 - 08:21 (00:00) zhak ttys013 Thu Jun 4 23:07 - 23:07 (00:00) zhak ttys014 Thu Jun 4 16:33 - 16:33 (00:00) zhak ttys013 Thu Jun 4 16:33 - 16:33 (00:00) wtmp begins Wed Jun 3 22:33:24 CST 2026 - Test str_flatten_comma() with NA values, zhak ttys020 Sat Jun 6 05:30 - 05:30 (00:00) zhak ttys020 Sat Jun 6 02:30 - 02:30 (00:00) zhak ttys020 Fri Jun 5 23:28 - 23:28 (00:00) zhak ttys021 Fri Jun 5 18:39 - 18:39 (00:00) zhak ttys020 Fri Jun 5 17:27 - 17:27 (00:00) zhak ttys019 Fri Jun 5 17:22 still logged in zhak ttys018 Fri Jun 5 17:22 still logged in zhak ttys017 Fri Jun 5 17:22 still logged in zhak ttys015 Fri Jun 5 17:22 still logged in zhak ttys016 Fri Jun 5 17:22 still logged in zhak ttys015 Fri Jun 5 17:22 - 17:22 (00:00) zhak ttys014 Fri Jun 5 17:22 still logged in zhak ttys013 Fri Jun 5 17:22 still logged in zhak ttys012 Fri Jun 5 17:22 still logged in zhak ttys011 Fri Jun 5 17:22 still logged in zhak ttys010 Fri Jun 5 17:22 still logged in zhak ttys009 Fri Jun 5 17:22 still logged in zhak ttys011 Fri Jun 5 17:02 - 17:02 (00:00) zhak ttys010 Fri Jun 5 17:02 - 17:02 (00:00) zhak ttys009 Fri Jun 5 17:02 - 17:02 (00:00) zhak ttys008 Fri Jun 5 17:02 still logged in zhak ttys007 Fri Jun 5 17:02 still logged in zhak ttys006 Fri Jun 5 17:02 still logged in zhak ttys005 Fri Jun 5 17:02 still logged in zhak ttys004 Fri Jun 5 17:02 still logged in zhak ttys003 Fri Jun 5 17:02 still logged in zhak ttys002 Fri Jun 5 17:02 still logged in zhak ttys000 Fri Jun 5 17:02 still logged in zhak ttys001 Fri Jun 5 17:02 still logged in zhak ttys021 Fri Jun 5 08:25 - 08:25 (00:00) zhak ttys020 Fri Jun 5 08:21 - 08:21 (00:00) zhak ttys019 Fri Jun 5 08:21 - 08:21 (00:00) zhak ttys018 Fri Jun 5 08:21 - 08:21 (00:00) zhak ttys017 Fri Jun 5 08:21 - 08:21 (00:00) zhak ttys013 Thu Jun 4 23:07 - 23:07 (00:00) zhak ttys014 Thu Jun 4 16:33 - 16:33 (00:00) zhak ttys013 Thu Jun 4 16:33 - 16:33 (00:00) wtmp begins Wed Jun 3 22:33:24 CST 2026, and na.rm --- tests/testthat/test-flatten.R | 40 +++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/tests/testthat/test-flatten.R b/tests/testthat/test-flatten.R index 14ceb4cd..6b9d2a32 100644 --- a/tests/testthat/test-flatten.R +++ b/tests/testthat/test-flatten.R @@ -24,3 +24,43 @@ test_that("str_flatten_oxford removes comma iif necessary", { expect_equal(str_flatten_comma(letters[1:3], " or "), "a, b or c") expect_equal(str_flatten_comma(letters[1:3]), "a, b, c") }) + +test_that("str_flatten handles empty input with last", { + expect_equal(str_flatten(character(), ", ", " and "), "") + expect_equal(str_flatten(character(), "-"), "") +}) + +test_that("str_flatten handles single element with last", { + expect_equal(str_flatten("a", ", ", " and "), "a") + expect_equal(str_flatten("a", "-"), "a") +}) + +test_that("str_flatten handles all-NA input with na.rm", { + expect_equal(str_flatten(c(NA, NA), na.rm = TRUE), "") + expect_equal(str_flatten(NA_character_, na.rm = TRUE), "") +}) + +test_that("str_flatten_comma handles empty input with last", { + expect_equal(str_flatten_comma(character(), ", or "), "") + expect_equal(str_flatten_comma(character()), "") +}) + +test_that("str_flatten_comma handles single element with last", { + expect_equal(str_flatten_comma("a", ", or "), "a") + expect_equal(str_flatten_comma("a"), "a") +}) + +test_that("str_flatten_comma handles NA with last and na.rm", { + expect_equal( + str_flatten_comma(c("a", NA, "b"), ", or ", na.rm = TRUE), + "a, or b" + ) + expect_equal( + str_flatten_comma(c(NA, "a", "b"), ", or ", na.rm = TRUE), + "a, or b" + ) + expect_equal( + str_flatten_comma(c("a", "b", NA), ", or ", na.rm = TRUE), + "a, or b" + ) +})