add tests for read_data add, and read_data with fix property/atom

This commit is contained in:
Axel Kohlmeyer
2022-11-19 21:19:20 -05:00
parent 442eeb9f52
commit 045afe00d8

View File

@ -469,6 +469,8 @@ TEST_F(FileOperationsTest, write_data)
TEST_FAILURE(".*ERROR: Cannot open file noexist.data: No such file or directory.*",
command("read_data noexist.data"););
TEST_FAILURE(".*ERROR: Unknown read_data keyword xxx.*",
command("read_data noexist.data xxx"););
BEGIN_HIDE_OUTPUT();
command("pair_style zero 1.0");
@ -501,6 +503,116 @@ TEST_F(FileOperationsTest, write_data)
delete_file("triclinic.data");
}
#define GETIDX(i) lmp->atom->map(i)
TEST_F(FileOperationsTest, read_data_fix)
{
ASSERT_EQ(lmp->restart_ver, -1);
BEGIN_HIDE_OUTPUT();
command("echo none");
command("atom_modify map array");
command("fix MoleculeIDs all property/atom mol");
command("region box block -2 2 -2 2 -2 2");
command("create_box 1 box");
command("create_atoms 1 single 1.0 0.0 0.0");
command("create_atoms 1 single 0.0 1.0 0.0");
command("create_atoms 1 single 1.0 0.0 1.0");
command("create_atoms 1 single 0.0 1.0 1.0");
command("mass 1 1.0");
command("set atom 1*2 mol 1");
command("set atom 3*4 mol 2");
command("write_data test_mol_id.data");
lmp->atom->molecule[0] = 5;
lmp->atom->molecule[1] = 6;
lmp->atom->molecule[2] = 5;
lmp->atom->molecule[3] = 6;
lmp->atom->tag[0] = 9;
lmp->atom->tag[1] = 6;
lmp->atom->tag[2] = 7;
lmp->atom->tag[3] = 8;
lmp->atom->map_init(1);
lmp->atom->map_set();
command("write_data test_mol_id_merge.data");
command("clear");
END_HIDE_OUTPUT();
TEST_FAILURE(".*ERROR: Cannot use read_data add before simulation box is defined.*",
command("read_data test_mol_id.data add append"););
BEGIN_HIDE_OUTPUT();
command("atom_modify map array");
command("fix MoleculeIDs all property/atom mol");
command("read_data test_mol_id.data fix MoleculeIDs NULL Molecules");
command("read_data test_mol_id_merge.data add merge fix MoleculeIDs NULL Molecules");
END_HIDE_OUTPUT();
EXPECT_EQ(lmp->atom->natoms, 8);
EXPECT_EQ(lmp->atom->molecule[GETIDX(1)], 1);
EXPECT_EQ(lmp->atom->molecule[GETIDX(2)], 1);
EXPECT_EQ(lmp->atom->molecule[GETIDX(3)], 2);
EXPECT_EQ(lmp->atom->molecule[GETIDX(4)], 2);
EXPECT_EQ(lmp->atom->molecule[GETIDX(6)], 6);
EXPECT_EQ(lmp->atom->molecule[GETIDX(7)], 5);
EXPECT_EQ(lmp->atom->molecule[GETIDX(8)], 6);
EXPECT_EQ(lmp->atom->molecule[GETIDX(9)], 5);
EXPECT_EQ(lmp->atom->tag[GETIDX(1)], 1);
EXPECT_EQ(lmp->atom->tag[GETIDX(2)], 2);
EXPECT_EQ(lmp->atom->tag[GETIDX(3)], 3);
EXPECT_EQ(lmp->atom->tag[GETIDX(4)], 4);
EXPECT_EQ(lmp->atom->tag[GETIDX(6)], 6);
EXPECT_EQ(lmp->atom->tag[GETIDX(7)], 7);
EXPECT_EQ(lmp->atom->tag[GETIDX(8)], 8);
EXPECT_EQ(lmp->atom->tag[GETIDX(9)], 9);
BEGIN_HIDE_OUTPUT();
command("clear");
command("atom_modify map array");
command("fix MoleculeIDs all property/atom mol");
command("read_data test_mol_id.data fix MoleculeIDs NULL Molecules");
command("read_data test_mol_id.data add append fix MoleculeIDs NULL Molecules");
END_HIDE_OUTPUT();
EXPECT_EQ(lmp->atom->natoms, 8);
EXPECT_EQ(lmp->atom->molecule[GETIDX(1)], 1);
EXPECT_EQ(lmp->atom->molecule[GETIDX(2)], 1);
EXPECT_EQ(lmp->atom->molecule[GETIDX(3)], 2);
EXPECT_EQ(lmp->atom->molecule[GETIDX(4)], 2);
EXPECT_EQ(lmp->atom->molecule[GETIDX(5)], 1);
EXPECT_EQ(lmp->atom->molecule[GETIDX(6)], 1);
EXPECT_EQ(lmp->atom->molecule[GETIDX(7)], 2);
EXPECT_EQ(lmp->atom->molecule[GETIDX(8)], 2);
EXPECT_EQ(lmp->atom->tag[GETIDX(1)], 1);
EXPECT_EQ(lmp->atom->tag[GETIDX(2)], 2);
EXPECT_EQ(lmp->atom->tag[GETIDX(3)], 3);
EXPECT_EQ(lmp->atom->tag[GETIDX(4)], 4);
EXPECT_EQ(lmp->atom->tag[GETIDX(5)], 5);
EXPECT_EQ(lmp->atom->tag[GETIDX(6)], 6);
EXPECT_EQ(lmp->atom->tag[GETIDX(7)], 7);
EXPECT_EQ(lmp->atom->tag[GETIDX(8)], 8);
BEGIN_HIDE_OUTPUT();
command("clear");
command("atom_modify map array");
command("fix MoleculeIDs all property/atom mol");
command("read_data test_mol_id.data fix MoleculeIDs NULL Molecules");
command("read_data test_mol_id.data add 6 4 fix MoleculeIDs NULL Molecules");
END_HIDE_OUTPUT();
EXPECT_EQ(lmp->atom->natoms, 8);
EXPECT_EQ(lmp->atom->molecule[GETIDX(1)], 1);
EXPECT_EQ(lmp->atom->molecule[GETIDX(2)], 1);
EXPECT_EQ(lmp->atom->molecule[GETIDX(3)], 2);
EXPECT_EQ(lmp->atom->molecule[GETIDX(4)], 2);
EXPECT_EQ(lmp->atom->molecule[GETIDX(7)], 1);
EXPECT_EQ(lmp->atom->molecule[GETIDX(8)], 1);
EXPECT_EQ(lmp->atom->molecule[GETIDX(9)], 2);
EXPECT_EQ(lmp->atom->molecule[GETIDX(10)], 2);
EXPECT_EQ(lmp->atom->tag[GETIDX(1)], 1);
EXPECT_EQ(lmp->atom->tag[GETIDX(2)], 2);
EXPECT_EQ(lmp->atom->tag[GETIDX(3)], 3);
EXPECT_EQ(lmp->atom->tag[GETIDX(4)], 4);
EXPECT_EQ(lmp->atom->tag[GETIDX(7)], 7);
EXPECT_EQ(lmp->atom->tag[GETIDX(8)], 8);
EXPECT_EQ(lmp->atom->tag[GETIDX(9)], 9);
EXPECT_EQ(lmp->atom->tag[GETIDX(10)], 10);
}
int main(int argc, char **argv)
{
MPI_Init(&argc, &argv);