testthat Ожидает, что FALSE пока не будет упакована в as.data.table - PullRequest
0 голосов
/ 06 июня 2018

Я прочитал о различиях между ожидаемым и ожидаемым.

При этом у меня есть функция, которая создает таблицу данных, которая выглядит следующим образом:

       Thing1 Thing2 Thing3
Thing1   34.6   23.4   54.2
Thing2   34.7   33.2   32.1
Thing3   32.7   33.5   33.8

 structure(list(` ` = c("Thing1", "Thing2", "Thing3"), `Thing1` = c(34.6,
 34.7, 32.7), `Thing2` = c(32.4, 33.2, 33.5), `Thing3` = c(33,
 32.1, 33.8)), .Names = c(" ", "Thing1", "Thing2", "Thing3"), row.names = c(NA,
 -3L), class = c("data.table", "data.frame"))

Давайте назовем этостол output.Я сохраняю этот data.table в .rds, затем перезагружаю его с помощью readRDS.Эта новая таблица называется test.Структура неизменна, и отличаются только указатели.Несмотря на это, выполнение identical(test, output) дает false.Опять же, структуры идентичны ожидаемому для указателя.Все классы одинаковы.

Однако, это: identical(as.data.table(test), output) дает TRUE.Кто-нибудь знает, что здесь происходит?Это не простая проблема класса.Я в растерянности.

Вы можете воссоздать эту проблему самостоятельно, выполнив что-то вроде:

x <- as.data.table(mtcars)
saveRDS(x, "~/test.rds")
y <- readRDS("~/test.rds")
str(x)
str(y)
identical(x, y)

ОБНОВЛЕНИЕ

Я проверил mem_change() на обоих объектах, и это разные.Однако object.size() - это то же самое.

...