diff --git a/src/shogun/features/StringFeatures.cpp b/src/shogun/features/StringFeatures.cpp index 1c409d742f9..77d3fb4bd99 100644 --- a/src/shogun/features/StringFeatures.cpp +++ b/src/shogun/features/StringFeatures.cpp @@ -1730,12 +1730,17 @@ template void CStringFeatures::init() original_num_symbols=0; m_parameters->add((CSGObject**) &alphabet, "alphabet"); + m_parameters->add_vector(&features, &num_vectors, "features", "This contains the array of features."); + watch_param("features", &features, &num_vectors); + m_parameters->add_vector(&single_string, &length_of_single_string, "single_string", "Created by sliding window."); + watch_param("single_string", &single_string, &length_of_single_string); + m_parameters->add(&max_string_length, "max_string_length", "Length of longest string."); m_parameters->add(&num_symbols, "num_symbols", @@ -1748,6 +1753,7 @@ template void CStringFeatures::init() "Preprocess on-the-fly?"); m_parameters->add_vector(&symbol_mask_table, &symbol_mask_table_len, "mask_table", "Symbol mask table - using in higher order mapping"); + watch_param("mask_table", &symbol_mask_table, &symbol_mask_table_len); } /** get feature type the char feature can deal with diff --git a/src/shogun/lib/DynamicObjectArray.h b/src/shogun/lib/DynamicObjectArray.h index d3dbb5e6d38..4f2020310ff 100644 --- a/src/shogun/lib/DynamicObjectArray.h +++ b/src/shogun/lib/DynamicObjectArray.h @@ -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); diff --git a/tests/unit/base/DynamicObjectArray_unittest.cc b/tests/unit/base/DynamicObjectArray_unittest.cc index a9245b0d3a5..5454b3867cc 100644 --- a/tests/unit/base/DynamicObjectArray_unittest.cc +++ b/tests/unit/base/DynamicObjectArray_unittest.cc @@ -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); +} diff --git a/tests/unit/base/SGObject_unittest.cc b/tests/unit/base/SGObject_unittest.cc index 8a6455f9082..724cb999bf6 100644 --- a/tests/unit/base/SGObject_unittest.cc +++ b/tests/unit/base/SGObject_unittest.cc @@ -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) {