diff --git a/bin/tadah_cli.cpp b/bin/tadah_cli.cpp index 252debb65ae5ccea7971ec38fa4be6490f8f5ef7..2c1a990d3b02bca7c469fa773b2338ad38e8fc7c 100644 --- a/bin/tadah_cli.cpp +++ b/bin/tadah_cli.cpp @@ -1629,6 +1629,7 @@ int TadahCLI::subsub_bf() { // TADAH_GNUPLOT if (verbose) std::cout << timer_tot.to_string() << std::endl; + if (fcut) delete fcut; return 0; } int TadahCLI::subsub_twobody() { @@ -1770,6 +1771,7 @@ int TadahCLI::subsub_cutoff() { outfile << std::endl; } outfile << std::endl << std::endl; + if (cut) delete cut; } outfile.flush(); diff --git a/tests/test_factory_models.cpp b/tests/test_factory_models.cpp index c11c7ea7b6ce27b98928f4437bf55d76e7ffc918..27471f205bfbe95c200dddadd3d13006a8c1a5e7 100644 --- a/tests/test_factory_models.cpp +++ b/tests/test_factory_models.cpp @@ -42,16 +42,23 @@ TEST_CASE( "Testing Factory: Models", "[factory_models]" ) { DM_Function_Base *fb = CONFIG::factory<DM_Function_Base,Config&>(b.first,config); for (auto c:CONFIG::Registry<M_Tadah_Base,DM_Function_Base&,Config&>::registry) { if (dynamic_cast<Kern_Base*>(fb) != nullptr && c.first=="M_KRR") { - REQUIRE(CONFIG::factory<M_Tadah_Base,DM_Function_Base&,Config&>(c.first,*fb,config)); + M_Tadah_Base *tdb=nullptr; + REQUIRE((tdb=CONFIG::factory<M_Tadah_Base,DM_Function_Base&,Config&>(c.first,*fb,config))); + if (tdb) delete tdb; } else if (dynamic_cast<BF_Base*>(fb) != nullptr && c.first=="M_BLR") { - REQUIRE(CONFIG::factory<M_Tadah_Base,DM_Function_Base&,Config&>(c.first,*fb,config)); + M_Tadah_Base *tdb=nullptr; + REQUIRE((tdb=CONFIG::factory<M_Tadah_Base,DM_Function_Base&,Config&>(c.first,*fb,config))); + if (tdb) delete tdb; } else { - REQUIRE_THROWS_AS((CONFIG::factory<M_Tadah_Base,DM_Function_Base&,Config&>(c.first,*fb,config)), + M_Tadah_Base *tdb=nullptr; + REQUIRE_THROWS_AS((tdb=CONFIG::factory<M_Tadah_Base,DM_Function_Base&,Config&>(c.first,*fb,config)), std::invalid_argument); + if (tdb) delete tdb; } } + if (fb) delete fb; } //config = Config("datasets/config");