@@ -406,15 +406,13 @@ bool Test_IGFD_FilterManager_ParseFilters_Filters_Simple_Regex_5() {
406406 return true ;
407407}
408408
409- // last ) missing
409+ // last ) missing, so the last filters .h and .hpp are aprt of the regex.. so only one filter recognized
410410bool Test_IGFD_FilterManager_ParseFilters_Filters_Simple_Regex_6 () {
411411 IGFD::TestFilterManager mgr (" (([.][0-9]{3})),.cpp,(([.][0-9]{3},.h,.hpp" );
412412
413- if (mgr.getFiltersRef ().size () != 4U ) return false ;
413+ if (mgr.getFiltersRef ().size () != 2U ) return false ;
414414 if (mgr.getFiltersRef ()[0 ].getFirstFilter () != " (([.][0-9]{3}))" ) return false ;
415415 if (mgr.getFiltersRef ()[1 ].getFirstFilter () != " .cpp" ) return false ;
416- if (mgr.getFiltersRef ()[2 ].getFirstFilter () != " .h" ) return false ;
417- if (mgr.getFiltersRef ()[3 ].getFirstFilter () != " .hpp" ) return false ;
418416
419417 return true ;
420418}
@@ -480,13 +478,14 @@ bool Test_IGFD_FilterManager_ParseFilters_Filters_Regex_0() {
480478 return true ;
481479}
482480
483- // invalid regex
481+ // valid regex
484482bool Test_IGFD_FilterManager_ParseFilters_Filters_Regex_1 () {
485483 IGFD::TestFilterManager mgr (" frames files{((.001,.NNN)),.frames}" );
486484
487485 if (mgr.getFiltersRef ().size () != 1U ) return false ;
488486 if (mgr.getFiltersRef ()[0 ].title != " frames files" ) return false ;
489- if (mgr.getFiltersRef ()[0 ].filters .size () != 1U ) return false ;
487+ if (mgr.getFiltersRef ()[0 ].filters .size () != 2U ) return false ;
488+ if (!mgr.getFiltersRef ()[0 ].filters .exist (" ((.001,.NNN))" )) return false ;
490489 if (!mgr.getFiltersRef ()[0 ].filters .exist (" .frames" )) return false ;
491490
492491 return true ;
@@ -518,6 +517,30 @@ bool Test_IGFD_FilterManager_ParseFilters_Filters_Regex_3() {
518517 return true ;
519518}
520519
520+ // must be ok
521+ bool Test_IGFD_FilterManager_ParseFilters_Filters_Regex_4 () {
522+ IGFD::TestFilterManager mgr (R"( Dem files{((^[A-Za-z][0-9][0-9][A-Za-z][0-9]{3}(?:\.txt|\.hgt)?$))})" );
523+
524+ if (mgr.getFiltersRef ().size () != 1U ) return false ;
525+ if (mgr.getFiltersRef ()[0 ].title != " Dem files" ) return false ;
526+ if (mgr.getFiltersRef ()[0 ].filters .size () != 1U ) return false ;
527+ if (!mgr.getFiltersRef ()[0 ].filters .exist (R"( ((^[A-Za-z][0-9][0-9][A-Za-z][0-9]{3}(?:\.txt|\.hgt)?$)))" )) return false ;
528+
529+ return true ;
530+ }
531+
532+ // must be ok
533+ bool Test_IGFD_FilterManager_ParseFilters_Filters_Regex_5 () {
534+ IGFD::TestFilterManager mgr (R"( Dem files{((^[A-Za-z][0-9][0-9][A-Za-z][0-9]{2,3}(?:\.txt|\.hgt)?$))})" );
535+
536+ if (mgr.getFiltersRef ().size () != 1U ) return false ;
537+ if (mgr.getFiltersRef ()[0 ].title != " Dem files" ) return false ;
538+ if (mgr.getFiltersRef ()[0 ].filters .size () != 1U ) return false ;
539+ if (!mgr.getFiltersRef ()[0 ].filters .exist (R"( ((^[A-Za-z][0-9][0-9][A-Za-z][0-9]{2,3}(?:\.txt|\.hgt)?$)))" )) return false ;
540+
541+ return true ;
542+ }
543+
521544#pragma endregion
522545
523546#pragma region Filters Divers Tests
@@ -1104,6 +1127,8 @@ bool Test_FilterManager(const std::string& vTest) {
11041127 IfTestExist (Test_IGFD_FilterManager_ParseFilters_Filters_Regex_1);
11051128 IfTestExist (Test_IGFD_FilterManager_ParseFilters_Filters_Regex_2);
11061129 IfTestExist (Test_IGFD_FilterManager_ParseFilters_Filters_Regex_3);
1130+ IfTestExist (Test_IGFD_FilterManager_ParseFilters_Filters_Regex_4);
1131+ IfTestExist (Test_IGFD_FilterManager_ParseFilters_Filters_Regex_5);
11071132 IfTestExist (Test_IGFD_FilterManager_ParseFilters_Filters_Divers_0);
11081133 IfTestExist (Test_IGFD_FilterManager_ParseFilters_Filters_Divers_1);
11091134 IfTestExist (Test_IGFD_FilterManager_ParseFilters_Filters_Divers_2);
0 commit comments