1# We can't naively compare serializers using expect equal without losing codecov results.
2# codecov modifies the source of the functions so they are no longer comparable when
3# deparsed, which causes the tests to fail only for codecov.
4# Here we'll make our own comparison function.
5# covr adds lines to measure coverage but also adds brackets to capture expressions differently.
6# So we use this rough heuristic to just take the word characters without whitespace and compare
7# those. It's not perfect, but it would almost always fail if you were comparing to different
8# functions.
9expect_equal_functions <- function(object, expected){
10  do <- deparse(object)
11  de <- deparse(expected)
12
13  do <- gsub(".*covr:::count.*", NA, do)
14  do <- do[!is.na(do)]
15  do <- paste(do, collapse="")
16  do <- gsub("[^\\w]", "", do, perl=TRUE)
17
18  de <- gsub(".*covr:::count.*", NA, de)
19  de <- de[!is.na(de)]
20  de <- paste(de, collapse="")
21  de <- gsub("[^\\w]", "", de, perl=TRUE)
22
23  expect_equal(do, de)
24}
25