@@ -859,6 +859,35 @@ namespace
859859 CHECK_EQUAL (sorted_data.size (), size_t (std::distance (data1.begin (), data1.end ())));
860860 }
861861
862+ // *************************************************************************
863+ TEST_FIXTURE (SetupFixture, test_remove_by_pointer)
864+ {
865+ std::forward_list<ItemNDCNode> compare_data (sorted_data.begin (), sorted_data.end ());
866+ DataNDC0 data0 (sorted_data.begin (), sorted_data.end ());
867+ DataNDC1 data1 (sorted_data.begin (), sorted_data.end ());
868+
869+ auto it = data0.begin ();
870+ for (int i = 0 ; i < 7 ; ++i)
871+ {
872+ it++;
873+ }
874+ ItemNDCNode* element = ⁢
875+
876+ compare_data.remove (ItemNDCNode (" 7" ));
877+ data0.remove (*element);
878+
879+ bool are_equal = std::equal (data0.begin (), data0.end (), compare_data.begin ());
880+
881+ CHECK (are_equal);
882+ CHECK_EQUAL (size_t (std::distance (compare_data.begin (), compare_data.end ())), data0.size ());
883+ CHECK_EQUAL (std::distance (compare_data.begin (), compare_data.end ()), std::distance (data0.begin (), data0.end ()));
884+
885+ are_equal = std::equal (data1.begin (), data1.end (), sorted_data.begin ());
886+ CHECK (are_equal);
887+ CHECK_EQUAL (sorted_data.size (), data1.size ());
888+ CHECK_EQUAL (sorted_data.size (), size_t (std::distance (data1.begin (), data1.end ())));
889+ }
890+
862891 // *************************************************************************
863892 TEST_FIXTURE (SetupFixture, test_remove_if)
864893 {
0 commit comments