diff --git a/tests/unit/base/MockObject.h b/tests/unit/base/MockObject.h index 7f44cafccd7..d043850f695 100644 --- a/tests/unit/base/MockObject.h +++ b/tests/unit/base/MockObject.h @@ -83,6 +83,9 @@ namespace shogun watch_param("object", &m_object); m_parameters->add( (CSGObject**)&m_object, "object", "The object (tm)"); + + m_string = "Shogun rocks!"; + watch_param("string", &m_string); } void free_single() @@ -246,6 +249,8 @@ namespace shogun T* m_raw_matrix_basic; index_t m_raw_matrix_basic_rows; index_t m_raw_matrix_basic_cols; + + std::string m_string; }; /** @brief Used to test the tags-parameter framework diff --git a/tests/unit/base/SGObject_unittest.cc b/tests/unit/base/SGObject_unittest.cc index 787c34f9d1d..32d80f7dec4 100644 --- a/tests/unit/base/SGObject_unittest.cc +++ b/tests/unit/base/SGObject_unittest.cc @@ -78,6 +78,16 @@ TYPED_TEST(SGObjectEquals, different_basic) EXPECT_FALSE(obj2->equals(obj1)); } +TYPED_TEST(SGObjectEquals, different_string) +{ + auto obj1 = some>(); + auto obj2 = some>(); + + obj1->m_string = "Oh no!"; + EXPECT_FALSE(obj1->equals(obj2)); + EXPECT_FALSE(obj2->equals(obj1)); +} + TYPED_TEST(SGObjectEquals, different_object) { auto obj1 = some>(); @@ -221,6 +231,7 @@ TYPED_TEST(SGObjectClone, equals_non_empty) { auto obj = some>(); obj->m_basic -= 1; + obj->m_string = "Non empty string"; obj->m_object->m_some_value -= 1; obj->m_sg_vector[0] -= 1; obj->m_sg_matrix(0, 0) = 0;