test a variety of dump output frequency and starting timesteps and run lengths
This commit is contained in:
@ -699,6 +699,66 @@ TEST_F(DumpAtomTest, binary_write_dump)
|
||||
delete_file(dump_file);
|
||||
}
|
||||
|
||||
TEST_F(DumpAtomTest, frequency)
|
||||
{
|
||||
auto dump_file = dump_filename("frequency");
|
||||
BEGIN_HIDE_OUTPUT();
|
||||
command("dump id all atom 5 " + dump_file);
|
||||
command("run 15 post no");
|
||||
command("run 12 post no");
|
||||
END_HIDE_OUTPUT();
|
||||
|
||||
// NOTE: must reset to current timestep (27) to avoid unexpected issues with following
|
||||
TEST_FAILURE(".*ERROR: Cannot reset timestep with active dump - must undump first.*",
|
||||
command("reset_timestep 27"););
|
||||
|
||||
BEGIN_HIDE_OUTPUT();
|
||||
command("run 3 post no");
|
||||
command("undump id");
|
||||
command("reset_timestep 5");
|
||||
command("dump id all atom 10 " + dump_file);
|
||||
command("dump_modify id append yes");
|
||||
command("run 20 post no");
|
||||
command("undump id");
|
||||
END_HIDE_OUTPUT();
|
||||
|
||||
std::vector<std::string> expected, values;
|
||||
values = extract_items(dump_file, "TIMESTEP");
|
||||
expected = {"0", "5", "10", "15", "20", "25", "30", "10", "20"};
|
||||
ASSERT_EQ(values.size(), expected.size());
|
||||
for (int i = 0; i < expected.size(); ++i)
|
||||
ASSERT_THAT(values[i], Eq(expected[i]));
|
||||
|
||||
BEGIN_HIDE_OUTPUT();
|
||||
command("reset_timestep 10");
|
||||
command("dump id all atom 10 " + dump_file);
|
||||
command("run 20 post no");
|
||||
command("undump id");
|
||||
END_HIDE_OUTPUT();
|
||||
|
||||
values = extract_items(dump_file, "TIMESTEP");
|
||||
expected = {"10", "20", "30"};
|
||||
ASSERT_EQ(values.size(), expected.size());
|
||||
for (int i = 0; i < expected.size(); ++i)
|
||||
ASSERT_THAT(values[i], Eq(expected[i]));
|
||||
|
||||
BEGIN_HIDE_OUTPUT();
|
||||
command("reset_timestep 0");
|
||||
command("dump id all atom 10 " + dump_file);
|
||||
command("minimize 0.0 0.0 15 30");
|
||||
command("run 20 post no");
|
||||
command("undump id");
|
||||
END_HIDE_OUTPUT();
|
||||
|
||||
values = extract_items(dump_file, "TIMESTEP");
|
||||
expected = {"0", "10", "15", "20", "30"};
|
||||
ASSERT_EQ(values.size(), expected.size());
|
||||
for (int i = 0; i < expected.size(); ++i)
|
||||
ASSERT_THAT(values[i], Eq(expected[i]));
|
||||
|
||||
delete_file(dump_file);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
// dump_modify
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user