@@ -306,6 +306,36 @@ TEST_F(InputTest, ValidateBandParallelization)
306306 " bndpar can not exceed the number of MPI processes" );
307307}
308308
309+ TEST_F (InputTest, ValidateDeepksOutputFrequency)
310+ {
311+ Parameter default_param;
312+ EXPECT_NO_THROW (read_parameters (" deepks_freq_default_INPUT" , " " , default_param));
313+ EXPECT_EQ (default_param.inp .deepks_out_freq_elec , 0 );
314+
315+ Parameter disabled_param;
316+ EXPECT_NO_THROW (read_parameters (" deepks_freq_disabled_INPUT" , " deepks_out_freq_elec 0\n " , disabled_param));
317+ EXPECT_EQ (disabled_param.inp .deepks_out_freq_elec , 0 );
318+
319+ expect_invalid_input (" deepks_freq_negative_INPUT" ,
320+ " deepks_out_freq_elec -1\n " ,
321+ " deepks_out_freq_elec must not be negative" );
322+ expect_invalid_input (" deepks_freq_missing_base_INPUT" ,
323+ " deepks_out_freq_elec 2\n " ,
324+ " to use deepks_out_freq_elec, please set deepks_out_base" );
325+
326+ Parameter enabled_param;
327+ testing::internal::CaptureStdout ();
328+ EXPECT_THROW (read_parameters (" deepks_freq_enabled_INPUT" ,
329+ " deepks_out_freq_elec 2\n "
330+ " deepks_out_base pbe\n "
331+ " deepks_out_labels 1\n " ,
332+ enabled_param),
333+ std::runtime_error);
334+ const std::string output = testing::internal::GetCapturedStdout ();
335+ EXPECT_THAT (output, testing::HasSubstr (" please compile with DeePKS" ));
336+ EXPECT_EQ (enabled_param.inp .deepks_out_freq_elec , 2 );
337+ }
338+
309339TEST_F (InputTest, Check)
310340{
311341 ModuleIO::ReadInput readinput (0 );
0 commit comments