Я использую test_that для модульного тестирования и пытаюсь сравнить два объекта.В некоторых случаях, независимо от содержимого, кажется, что эти два объекта никогда не бывают идентичными (expect_identical
), но могут быть равны (expect_equal
), если они принадлежат к одному и тому же классу.Я уверен, что это связано с тем, как создается класс (я использую R.oo)
Итак ... возможно ли изменить форму / сплющить / реструктурировать объект (возможно, в список?) чтобы исходные данные были извлечены, что делает два объекта сопоставимыми?Я понимаю, что это может быть невыполнимой задачей.Я не знаю достаточно о средах в R, чтобы сказать наверняка.
Редактировать
Вот пример:
library(R.oo)
library(testthat)
setConstructorS3( "MyClass" , function( )
{
extend( Object() , "MyClass" ,
.param1 = rnorm(10)
)
} )
test1 = MyClass()
test2 = MyClass()
expect_identical(test1, test2) # error: Objects equal but not identical
expect_equal( test1, test2) # no error reported