diff --git a/unittest/c-library/test_library_properties.cpp b/unittest/c-library/test_library_properties.cpp index a29feb6988..1dfbc99f19 100644 --- a/unittest/c-library/test_library_properties.cpp +++ b/unittest/c-library/test_library_properties.cpp @@ -112,8 +112,51 @@ TEST_F(LibraryProperties, box) EXPECT_EQ(pflags[1], 1); EXPECT_EQ(pflags[2], 1); EXPECT_EQ(boxflag, 0); - EXPECT_DOUBLE_EQ(lammps_get_thermo(lmp, "vol"), 3375.0); EXPECT_DOUBLE_EQ(lammps_get_thermo(lmp, "density"), 0.12211250945013695); EXPECT_DOUBLE_EQ(lammps_get_thermo(lmp, "cellalpha"), 90.0); + if (!verbose) ::testing::internal::CaptureStdout(); + lammps_command(lmp, "change_box all boundary p p f triclinic xy final 0.5"); + lammps_command(lmp, "fix box all box/relax x 0.0 y 0.0"); + if (!verbose) ::testing::internal::GetCapturedStdout(); + lammps_extract_box(lmp, boxlo, boxhi, &xy, &yz, &xz, pflags, &boxflag); + EXPECT_DOUBLE_EQ(boxlo[0], -6.024572); + EXPECT_DOUBLE_EQ(boxlo[1], -7.692866); + EXPECT_DOUBLE_EQ(boxlo[2], -8.086924); + EXPECT_DOUBLE_EQ(boxhi[0], 8.975428); + EXPECT_DOUBLE_EQ(boxhi[1], 7.307134); + EXPECT_DOUBLE_EQ(boxhi[2], 6.913076); + EXPECT_DOUBLE_EQ(xy, 0.5); + EXPECT_DOUBLE_EQ(yz, 0.0); + EXPECT_DOUBLE_EQ(xz, 0.0); + EXPECT_EQ(pflags[0], 1); + EXPECT_EQ(pflags[1], 1); + EXPECT_EQ(pflags[2], 0); + EXPECT_EQ(boxflag, 1); + EXPECT_DOUBLE_EQ(lammps_get_thermo(lmp, "vol"), 3375.0); + EXPECT_DOUBLE_EQ(lammps_get_thermo(lmp, "density"), 0.12211250945013695); + EXPECT_DOUBLE_EQ(lammps_get_thermo(lmp, "cellalpha"), 90.0); + EXPECT_DOUBLE_EQ(lammps_get_thermo(lmp, "cellbeta"), 90.0); + EXPECT_DOUBLE_EQ(lammps_get_thermo(lmp, "cellgamma"), 88.090847567003621); + + boxlo[0] = -6.1; + boxhi[1] = 7.3; + xy = 0.1; + lammps_reset_box(lmp, boxlo, boxhi, xy, yz, xz); + lammps_extract_box(lmp, boxlo, boxhi, &xy, &yz, &xz, pflags, &boxflag); + EXPECT_DOUBLE_EQ(boxlo[0], -6.1); + EXPECT_DOUBLE_EQ(boxlo[1], -7.692866); + EXPECT_DOUBLE_EQ(boxlo[2], -8.086924); + EXPECT_DOUBLE_EQ(boxhi[0], 8.975428); + EXPECT_DOUBLE_EQ(boxhi[1], 7.3); + EXPECT_DOUBLE_EQ(boxhi[2], 6.913076); + EXPECT_DOUBLE_EQ(xy, 0.1); + EXPECT_DOUBLE_EQ(yz, 0.0); + EXPECT_DOUBLE_EQ(xz, 0.0); + EXPECT_EQ(pflags[0], 1); + EXPECT_EQ(pflags[1], 1); + EXPECT_EQ(pflags[2], 0); + EXPECT_EQ(boxflag, 1); + EXPECT_DOUBLE_EQ(lammps_get_thermo(lmp, "vol"), 3390.3580784497199); + EXPECT_DOUBLE_EQ(lammps_get_thermo(lmp, "cellgamma"), 89.61785205109274); };