Add triclinic tests for dump atom

This commit is contained in:
Richard Berger 2020-08-11 16:17:36 -04:00
parent 83f81c42b9
commit b08751d65a
No known key found for this signature in database
GPG Key ID: A9E83994E0BA0CAB
2 changed files with 46 additions and 0 deletions

View File

@ -197,6 +197,11 @@ void DumpAtom::header_binary(bigint ndump)
void DumpAtom::header_binary_triclinic(bigint ndump)
{
// use negative ntimestep as marker for new format
bigint fmtlen = strlen("DUMPATOM");
bigint marker = -fmtlen;
fwrite(&marker,sizeof(bigint),1,fp);
fwrite("DUMPATOM",sizeof(char),fmtlen,fp);
fwrite(&update->ntimestep,sizeof(bigint),1,fp);
fwrite(&ndump,sizeof(bigint),1,fp);
fwrite(&domain->triclinic,sizeof(int),1,fp);
@ -211,6 +216,11 @@ void DumpAtom::header_binary_triclinic(bigint ndump)
fwrite(&boxxz,sizeof(double),1,fp);
fwrite(&boxyz,sizeof(double),1,fp);
fwrite(&size_one,sizeof(int),1,fp);
int len = strlen(columns);
fwrite(&len, sizeof(int), 1, fp);
fwrite(columns, sizeof(char), len, fp);
if (multiproc) fwrite(&nclusterprocs,sizeof(int),1,fp);
else fwrite(&nprocs,sizeof(int),1,fp);
}

View File

@ -141,6 +141,20 @@ TEST_F(DumpAtomTest, run0)
delete_file("dump_run0.melt");
}
TEST_F(DumpAtomTest, tricilinic_run0)
{
if (!verbose) ::testing::internal::CaptureStdout();
command("change_box all triclinic");
command("dump id all atom 1 dump_triclinic_run0.melt");
command("run 0");
if (!verbose) ::testing::internal::GetCapturedStdout();
ASSERT_FILE_EXISTS("dump_triclinic_run0.melt");
ASSERT_EQ(count_lines("dump_triclinic_run0.melt"), 41);
delete_file("dump_triclinic_run0.melt");
}
TEST_F(DumpAtomTest, binary_run0)
{
if(!BINARY2TXT_BINARY) GTEST_SKIP();
@ -162,6 +176,28 @@ TEST_F(DumpAtomTest, binary_run0)
delete_file("dump_binary_run0.melt.bin.txt");
}
TEST_F(DumpAtomTest, binary_triclinic_run0)
{
if(!BINARY2TXT_BINARY) GTEST_SKIP();
if (!verbose) ::testing::internal::CaptureStdout();
command("change_box all triclinic");
command("dump id0 all atom 1 dump_text_tri_run0.melt");
command("dump id1 all atom 1 dump_binary_tri_run0.melt.bin");
command("run 0");
if (!verbose) ::testing::internal::GetCapturedStdout();
ASSERT_FILE_EXISTS("dump_text_tri_run0.melt");
ASSERT_FILE_EXISTS("dump_binary_tri_run0.melt.bin");
std::string cmdline = fmt::format("{} dump_binary_tri_run0.melt.bin", BINARY2TXT_BINARY);
system(cmdline.c_str());
ASSERT_FILE_EXISTS("dump_binary_tri_run0.melt.bin.txt");
ASSERT_FILE_EQUAL("dump_text_tri_run0.melt", "dump_binary_tri_run0.melt.bin.txt");
delete_file("dump_text_tri_run0.melt");
delete_file("dump_binary_tri_run0.melt.bin");
delete_file("dump_binary_tri_run0.melt.bin.txt");
}
TEST_F(DumpAtomTest, run1)
{
if (!verbose) ::testing::internal::CaptureStdout();