make tests more complex and add vector variable expansion
This commit is contained in:
@ -125,55 +125,98 @@ TEST_F(Advanced_utils, expand_args)
|
||||
|
||||
char **args, **earg;
|
||||
constexpr int oarg = 9;
|
||||
args = new char *[oarg];
|
||||
args[0] = utils::strdup("v_step");
|
||||
args[1] = utils::strdup("c_temp");
|
||||
args[2] = utils::strdup("f_1[2*]");
|
||||
args[3] = utils::strdup("c_temp[2*4]");
|
||||
args[4] = utils::strdup("v_temp[*4]");
|
||||
args[5] = utils::strdup("c_rdf[*]");
|
||||
args[6] = utils::strdup("c_rdf[1][*]");
|
||||
args[7] = utils::strdup("c_rdf[*][2]");
|
||||
args[8] = utils::strdup("c_rdf[*][*]");
|
||||
args = new char *[oarg];
|
||||
args[0] = utils::strdup("v_step");
|
||||
args[1] = utils::strdup("c_temp");
|
||||
args[2] = utils::strdup("f_1[*]");
|
||||
args[3] = utils::strdup("c_temp[2*4]");
|
||||
args[4] = utils::strdup("v_temp[*4]");
|
||||
args[5] = utils::strdup("c_gofr[3*]");
|
||||
args[6] = utils::strdup("c_gofr[1][*]");
|
||||
args[7] = utils::strdup("c_gofr[*2][2]");
|
||||
args[8] = utils::strdup("c_gofr[*][*]");
|
||||
|
||||
auto narg = utils::expand_args(FLERR, oarg, args, 0, earg, lmp);
|
||||
EXPECT_EQ(narg, 12);
|
||||
EXPECT_EQ(narg, 16);
|
||||
EXPECT_STREQ(earg[0], "v_step");
|
||||
EXPECT_STREQ(earg[1], "c_temp");
|
||||
EXPECT_STREQ(earg[2], "f_1[2]");
|
||||
EXPECT_STREQ(earg[3], "f_1[3]");
|
||||
EXPECT_STREQ(earg[4], "c_temp[2]");
|
||||
EXPECT_STREQ(earg[5], "c_temp[3]");
|
||||
EXPECT_STREQ(earg[6], "c_temp[4]");
|
||||
EXPECT_STREQ(earg[7], "v_temp[*4]");
|
||||
EXPECT_STREQ(earg[8], "c_rdf[*]");
|
||||
EXPECT_STREQ(earg[9], "c_rdf[1][*]");
|
||||
EXPECT_STREQ(earg[10], "c_rdf[*][2]");
|
||||
EXPECT_STREQ(earg[11], "c_rdf[*][*]");
|
||||
EXPECT_STREQ(earg[2], "f_1[1]");
|
||||
EXPECT_STREQ(earg[3], "f_1[2]");
|
||||
EXPECT_STREQ(earg[4], "f_1[3]");
|
||||
EXPECT_STREQ(earg[5], "c_temp[2]");
|
||||
EXPECT_STREQ(earg[6], "c_temp[3]");
|
||||
EXPECT_STREQ(earg[7], "c_temp[4]");
|
||||
EXPECT_STREQ(earg[8], "v_temp[1]");
|
||||
EXPECT_STREQ(earg[9], "v_temp[2]");
|
||||
EXPECT_STREQ(earg[10], "v_temp[3]");
|
||||
EXPECT_STREQ(earg[11], "v_temp[4]");
|
||||
EXPECT_STREQ(earg[12], "c_gofr[3*]");
|
||||
EXPECT_STREQ(earg[13], "c_gofr[1][*]");
|
||||
EXPECT_STREQ(earg[14], "c_gofr[*2][2]");
|
||||
EXPECT_STREQ(earg[15], "c_gofr[*][*]");
|
||||
|
||||
for (int i = 0; i < narg; ++i)
|
||||
delete[] earg[i];
|
||||
lmp->memory->sfree(earg);
|
||||
|
||||
narg = utils::expand_args(FLERR, oarg, args, 1, earg, lmp);
|
||||
EXPECT_EQ(narg, oarg);
|
||||
EXPECT_EQ(narg, 16);
|
||||
EXPECT_NE(args, earg);
|
||||
EXPECT_STREQ(earg[0], "v_step");
|
||||
EXPECT_STREQ(earg[1], "c_temp");
|
||||
EXPECT_STREQ(earg[2], "f_1[2*]");
|
||||
EXPECT_STREQ(earg[2], "f_1[*]");
|
||||
EXPECT_STREQ(earg[3], "c_temp[2*4]");
|
||||
EXPECT_STREQ(earg[4], "v_temp[*4]");
|
||||
EXPECT_STREQ(earg[5], "c_rdf[*]");
|
||||
EXPECT_STREQ(earg[6], "c_rdf[1][*]");
|
||||
EXPECT_STREQ(earg[7], "c_rdf[*][2]");
|
||||
EXPECT_STREQ(earg[8], "c_rdf[*][*]");
|
||||
EXPECT_STREQ(earg[5], "c_gofr[3]");
|
||||
EXPECT_STREQ(earg[6], "c_gofr[4]");
|
||||
EXPECT_STREQ(earg[7], "c_gofr[5]");
|
||||
EXPECT_STREQ(earg[8], "c_gofr[1][*]");
|
||||
EXPECT_STREQ(earg[9], "c_gofr[1][2]");
|
||||
EXPECT_STREQ(earg[10], "c_gofr[2][2]");
|
||||
EXPECT_STREQ(earg[11], "c_gofr[1][*]");
|
||||
EXPECT_STREQ(earg[12], "c_gofr[2][*]");
|
||||
EXPECT_STREQ(earg[13], "c_gofr[3][*]");
|
||||
EXPECT_STREQ(earg[14], "c_gofr[4][*]");
|
||||
EXPECT_STREQ(earg[15], "c_gofr[5][*]");
|
||||
|
||||
for (int i = 0; i < oarg; ++i)
|
||||
delete[] args[i];
|
||||
delete[] args;
|
||||
for (int i = 0; i < narg; ++i)
|
||||
delete[] earg[i];
|
||||
lmp->memory->sfree(earg);
|
||||
|
||||
args[3][9] = '9';
|
||||
TEST_FAILURE("ERROR: Numeric index 9 is out of bounds \\(1-6\\).*",
|
||||
utils::expand_args(FLERR, oarg, args, 0, earg, lmp););
|
||||
|
||||
args[3][9] = '4';
|
||||
args[5][7] = '9';
|
||||
TEST_FAILURE("ERROR: Numeric index 9 is out of bounds \\(1-5\\).*",
|
||||
utils::expand_args(FLERR, oarg, args, 1, earg, lmp););
|
||||
|
||||
args[5][7] = '3';
|
||||
delete[] args[4];
|
||||
args[4] = utils::strdup("v_temp[2*]");
|
||||
narg = utils::expand_args(FLERR, oarg, args, 0, earg, lmp);
|
||||
EXPECT_EQ(narg, 13);
|
||||
EXPECT_STREQ(earg[0], "v_step");
|
||||
EXPECT_STREQ(earg[1], "c_temp");
|
||||
EXPECT_STREQ(earg[2], "f_1[1]");
|
||||
EXPECT_STREQ(earg[3], "f_1[2]");
|
||||
EXPECT_STREQ(earg[4], "f_1[3]");
|
||||
EXPECT_STREQ(earg[5], "c_temp[2]");
|
||||
EXPECT_STREQ(earg[6], "c_temp[3]");
|
||||
EXPECT_STREQ(earg[7], "c_temp[4]");
|
||||
EXPECT_STREQ(earg[8], "v_temp[2*]");
|
||||
EXPECT_STREQ(earg[9], "c_gofr[3*]");
|
||||
EXPECT_STREQ(earg[10], "c_gofr[1][*]");
|
||||
EXPECT_STREQ(earg[11], "c_gofr[*2][2]");
|
||||
EXPECT_STREQ(earg[12], "c_gofr[*][*]");
|
||||
|
||||
for (int i = 0; i < narg; ++i)
|
||||
delete[] earg[i];
|
||||
lmp->memory->sfree(earg);
|
||||
for (int i = 0; i < oarg; ++i)
|
||||
delete[] args[i];
|
||||
delete[] args;
|
||||
}
|
||||
|
||||
} // namespace LAMMPS_NS
|
||||
|
||||
Reference in New Issue
Block a user