99#include " dos_test.h"
1010
1111/* ***********************************************
12- * unit test of calculate_dos
12+ * unit test of ca_dos
1313 ***********************************************/
1414
1515/* *
1616 * - Tested Functions:
17- * - calculate_dos ()
17+ * - cal_dos ()
1818 * - the function to calculate and print out
1919 * - density of states
2020 */
@@ -28,13 +28,13 @@ class DosTest : public ::testing::Test
2828
2929TEST_F (DosTest,Dos)
3030{
31- // is,fa,fa1,de_ev,emax_ev,emin_ev,bcoeff,nks,nkstot,nbands
32- DosPrepare dosp = DosPrepare (0 ," DOS1" ," DOS1_smearing .dat" ,0.005 ,18 ,-6 ,0.07 ,36 ,36 ,8 );
31+ // is,fa,fa1,de_ev,emax_ev,emin_ev,bcoeff,nks,nkstot,nbands
32+ DosPrepare dosp = DosPrepare (0 ," DOS1.dat " ," DOS1_smear .dat" ,0.005 ,18 ,-6 ,0.07 ,36 ,36 ,8 );
3333 dosp.set_isk ();
3434 dosp.read_wk ();
3535 dosp.read_istate_info ();
3636 EXPECT_EQ (dosp.is ,0 );
37- ModuleIO::calculate_dos (dosp.is ,
37+ ModuleIO::cal_dos (dosp.is ,
3838 dosp.fa ,
3939 dosp.fa1 ,
4040 dosp.de_ev ,
@@ -48,37 +48,43 @@ TEST_F(DosTest,Dos)
4848 dosp.nbands ,
4949 dosp.ekb ,
5050 dosp.wg );
51+
5152#ifdef __MPI
5253 if (GlobalV::MY_RANK==0 )
5354 {
5455#endif
5556 std::ifstream ifs;
56- ifs.open (" DOS1_smearing .dat" );
57+ ifs.open (" DOS1_smear .dat" );
5758 std::string str ((std::istreambuf_iterator<char >(ifs)),std::istreambuf_iterator<char >());
58- EXPECT_THAT (str, testing::HasSubstr (" 3200" )); // number of electrons is 32
59+ EXPECT_THAT (str, testing::HasSubstr (" 4801 # number of points" ));
60+ EXPECT_THAT (str, testing::HasSubstr (" -5.53 0.0241031 0.000772634" ));
61+ EXPECT_THAT (str, testing::HasSubstr (" 17.19 0.0952359 15.9976" ));
5962 ifs.close ();
60- ifs.open (" DOS1" );
63+ remove (" DOS1_smear.dat" );
64+
65+ ifs.open (" DOS1.dat" );
6166 std::string str1 ((std::istreambuf_iterator<char >(ifs)),std::istreambuf_iterator<char >());
62- EXPECT_THAT (str1, testing::HasSubstr (" 4800" )); // number of energy points is (18-(-6))/0.005
67+ EXPECT_THAT (str1, testing::HasSubstr (" 4801 # number of points" ));
68+ EXPECT_THAT (str1, testing::HasSubstr (" -5.39 0.03125 0.03125" ));
69+ EXPECT_THAT (str1, testing::HasSubstr (" -1.25 0.1875 1.90625" ));
6370 ifs.close ();
64- remove (" DOS1_smearing.dat" );
65- remove (" DOS1" );
71+ remove (" DOS1.dat" );
6672#ifdef __MPI
6773 }
6874#endif
6975}
7076
7177TEST_F (DosTest,DosW1)
7278{
73- // is,fa,fa1,de_ev,emax_ev,emin_ev,bcoeff,nks,nkstot,nbands
74- DosPrepare dosp = DosPrepare (0 ," DOS1" ," DOS1_smearing .dat" ,-0.005 ,18 ,-6 ,0.07 ,36 ,36 ,8 );
79+ // is,fa,fa1,de_ev,emax_ev,emin_ev,bcoeff,nks,nkstot,nbands
80+ DosPrepare dosp = DosPrepare (0 ," DOS1.dat " ," DOS1_smear .dat" ,-0.005 ,18 ,-6 ,0.07 ,36 ,36 ,8 );
7581 dosp.set_isk ();
7682 dosp.read_wk ();
7783 dosp.read_istate_info ();
7884 EXPECT_EQ (dosp.is ,0 );
7985 EXPECT_LE (dosp.de_ev ,0 );
80- GlobalV::ofs_warning.open (" warninglog1 " );
81- EXPECT_NO_THROW (ModuleIO::calculate_dos (dosp.is ,
86+ GlobalV::ofs_warning.open (" warning1.log " );
87+ EXPECT_NO_THROW (ModuleIO::cal_dos (dosp.is ,
8288 dosp.fa ,
8389 dosp.fa1 ,
8490 dosp.de_ev ,
@@ -98,28 +104,28 @@ TEST_F(DosTest,DosW1)
98104 {
99105#endif
100106 std::ifstream ifs;
101- ifs.open (" warninglog1 " );
107+ ifs.open (" warning1.log " );
102108 std::string str ((std::istreambuf_iterator<char >(ifs)),std::istreambuf_iterator<char >());
103- EXPECT_THAT (str, testing::HasSubstr (" ModuleIO::calculate_dos warning : de <= 0" ));
109+ EXPECT_THAT (str, testing::HasSubstr (" ModuleIO::cal_dos warning : de <= 0" ));
104110 ifs.close ();
105- remove (" warninglog1 " );
106- remove (" DOS1_smearing .dat" );
107- remove (" DOS1" );
111+ remove (" warning1.log " );
112+ remove (" DOS1_smear .dat" );
113+ remove (" DOS1.dat " );
108114#ifdef __MPI
109115 }
110116#endif
111117}
112118
113119TEST_F (DosTest,DosW2)
114120{
115- // is,fa,fa1,de_ev,emax_ev,emin_ev,bcoeff,nks,nkstot,nbands
116- DosPrepare dosp = DosPrepare (0 ," DOS1" ," DOS1_smearing .dat" ,0.005 ,-6 ,18 ,0.07 ,36 ,36 ,8 );
121+ // is,fa,fa1,de_ev,emax_ev,emin_ev,bcoeff,nks,nkstot,nbands
122+ DosPrepare dosp = DosPrepare (0 ," DOS1.dat " ," DOS1_smear .dat" ,0.005 ,-6 ,18 ,0.07 ,36 ,36 ,8 );
117123 dosp.set_isk ();
118124 dosp.read_wk ();
119125 dosp.read_istate_info ();
120126 EXPECT_EQ (dosp.is ,0 );
121- GlobalV::ofs_warning.open (" warninglog2 " );
122- EXPECT_NO_THROW (ModuleIO::calculate_dos (dosp.is ,
127+ GlobalV::ofs_warning.open (" warning2.log " );
128+ EXPECT_NO_THROW (ModuleIO::cal_dos (dosp.is ,
123129 dosp.fa ,
124130 dosp.fa1 ,
125131 dosp.de_ev ,
@@ -139,54 +145,13 @@ TEST_F(DosTest,DosW2)
139145 {
140146#endif
141147 std::ifstream ifs;
142- ifs.open (" warninglog2 " );
148+ ifs.open (" warning2.log " );
143149 std::string str ((std::istreambuf_iterator<char >(ifs)),std::istreambuf_iterator<char >());
144- EXPECT_THAT (str, testing::HasSubstr (" ModuleIO::calculate_dos warning : emax_ev < emin_ev" ));
150+ EXPECT_THAT (str, testing::HasSubstr (" ModuleIO::cal_dos warning : emax_ev < emin_ev" ));
145151 ifs.close ();
146- remove (" warninglog2" );
147- remove (" DOS1_smearing.dat" );
148- remove (" DOS1" );
149- #ifdef __MPI
150- }
151- #endif
152- }
153-
154- TEST_F (DosTest,DosW3)
155- {
156- // is,fa,fa1,de_ev,emax_ev,emin_ev,bcoeff,nks,nkstot,nbands
157- DosPrepare dosp = DosPrepare (0 ," DOS1" ," DOS1_smearing.dat" ,0.005 ,18 ,18 ,0.07 ,36 ,36 ,8 );
158- dosp.set_isk ();
159- dosp.read_wk ();
160- dosp.read_istate_info ();
161- EXPECT_EQ (dosp.is ,0 );
162- GlobalV::ofs_warning.open (" warninglog3" );
163- EXPECT_NO_THROW (ModuleIO::calculate_dos (dosp.is ,
164- dosp.fa ,
165- dosp.fa1 ,
166- dosp.de_ev ,
167- dosp.emax_ev ,
168- dosp.emin_ev ,
169- dosp.bcoeff ,
170- dosp.nks ,
171- dosp.nkstot ,
172- dosp.wk ,
173- dosp.isk ,
174- dosp.nbands ,
175- dosp.ekb ,
176- dosp.wg ));
177- GlobalV::ofs_warning.close ();
178- #ifdef __MPI
179- if (GlobalV::MY_RANK==0 )
180- {
181- #endif
182- std::ifstream ifs;
183- ifs.open (" warninglog3" );
184- std::string str ((std::istreambuf_iterator<char >(ifs)),std::istreambuf_iterator<char >());
185- EXPECT_THAT (str, testing::HasSubstr (" ModuleIO::calculate_dos warning : npoints <= 0" ));
186- ifs.close ();
187- remove (" warninglog3" );
188- remove (" DOS1_smearing.dat" );
189- remove (" DOS1" );
152+ remove (" warning2.log" );
153+ remove (" DOS1_smear.dat" );
154+ remove (" DOS1.dat" );
190155#ifdef __MPI
191156 }
192157#endif
@@ -200,6 +165,10 @@ int main(int argc, char **argv)
200165 testing::InitGoogleTest (&argc,argv);
201166 MPI_Comm_size (MPI_COMM_WORLD,&GlobalV::NPROC);
202167 MPI_Comm_rank (MPI_COMM_WORLD,&GlobalV::MY_RANK);
168+
169+ // only test a certain one
170+ // ::testing::GTEST_FLAG(filter) = "DosTest.DosW1";
171+
203172 int result = RUN_ALL_TESTS ();
204173
205174 MPI_Finalize ();
0 commit comments