Skip to content

Commit

Permalink
tag-register DynamicObjectArray's array
Browse files Browse the repository at this point in the history
to make ::equals work
  • Loading branch information
karlnapf committed Jan 22, 2018
1 parent dc886f7 commit d15e887
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 44 deletions.
2 changes: 2 additions & 0 deletions src/shogun/lib/DynamicObjectArray.h
Expand Up @@ -459,6 +459,8 @@ class CDynamicObjectArray : public CSGObject
{
m_parameters->add_vector(&m_array.array, &m_array.current_num_elements, "array",
"Memory for dynamic array.");
watch_param("array", &m_array.array, &m_array.current_num_elements);

SG_ADD(&m_array.resize_granularity,
"resize_granularity",
"shrink/grow step size.", MS_NOT_AVAILABLE);
Expand Down
32 changes: 32 additions & 0 deletions tests/unit/base/DynamicObjectArray_unittest.cc
Expand Up @@ -55,3 +55,35 @@ TEST(DynamicObjectArray,clone)
SG_UNREF(orig_array);
SG_UNREF(cloned_array);
}

TEST(DynamicObjectArray, equals_after_resize)
{
CDynamicObjectArray* array1 = new CDynamicObjectArray();
CDynamicObjectArray* array2 = new CDynamicObjectArray();

/* enforce a resize */
for (index_t i = 0; i < 1000; ++i)
array1->append_element(new CDynamicObjectArray());

array1->reset_array();

EXPECT_TRUE(array1->equals(array2));
EXPECT_TRUE(array2->equals(array1));

SG_UNREF(array1);
SG_UNREF(array2);
}

TEST(DynamicObjectArray, equals_different)
{
CDynamicObjectArray* array1 = new CDynamicObjectArray();
CDynamicObjectArray* array2 = new CDynamicObjectArray();

array1->append_element(new CDynamicObjectArray());

EXPECT_FALSE(array1->equals(array2));
EXPECT_FALSE(array2->equals(array1));

SG_UNREF(array1);
SG_UNREF(array2);
}
44 changes: 0 additions & 44 deletions tests/unit/base/SGObject_unittest.cc
Expand Up @@ -266,50 +266,6 @@ TEST(SGObject,ref_unref_simple)
EXPECT_TRUE(labs == NULL);
}

TEST(SGObject, DISABLED_equals_DynamicObjectArray_equal)
{
CDynamicObjectArray* array1=new CDynamicObjectArray();
CDynamicObjectArray* array2=new CDynamicObjectArray();

EXPECT_TRUE(array1->equals(array2));
EXPECT_TRUE(array2->equals(array1));

SG_UNREF(array1);
SG_UNREF(array2);
}

TEST(SGObject, DISABLED_equals_DynamicObjectArray_equal_after_resize)
{
CDynamicObjectArray* array1=new CDynamicObjectArray();
CDynamicObjectArray* array2=new CDynamicObjectArray();

/* enforce a resize */
for (index_t i=0; i<1000; ++i)
array1->append_element(new CGaussianKernel());

array1->reset_array();

EXPECT_TRUE(array1->equals(array2));
EXPECT_TRUE(array2->equals(array1));

SG_UNREF(array1);
SG_UNREF(array2);
}

TEST(SGObject, DISABLED_equals_DynamicObjectArray_different)
{
CDynamicObjectArray* array1=new CDynamicObjectArray();
CDynamicObjectArray* array2=new CDynamicObjectArray();

array1->append_element(new CGaussianKernel());

EXPECT_FALSE(array1->equals(array2));
EXPECT_FALSE(array2->equals(array1));

SG_UNREF(array1);
SG_UNREF(array2);
}

#ifdef USE_GPL_SHOGUN
TEST(SGObject,equals_complex_equal)
{
Expand Down

0 comments on commit d15e887

Please sign in to comment.