From d3392dba45365a87e3480365611bce1981c36a97 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 14 Jul 2020 13:59:55 -0400 Subject: [PATCH] update tester some more --- unittest/formats/test_atom_styles.cpp | 207 +++++++++++++++++++------- 1 file changed, 152 insertions(+), 55 deletions(-) diff --git a/unittest/formats/test_atom_styles.cpp b/unittest/formats/test_atom_styles.cpp index f2395ee035..49471a95cf 100644 --- a/unittest/formats/test_atom_styles.cpp +++ b/unittest/formats/test_atom_styles.cpp @@ -3088,6 +3088,10 @@ TEST_F(AtomStyleTest, body_nparticle) ASSERT_NE(bonus[1].ivalue, nullptr); ASSERT_NE(bonus[2].ivalue, nullptr); ASSERT_NE(bonus[3].ivalue, nullptr); + ASSERT_EQ(bonus[0].ivalue[0], 2); + ASSERT_EQ(bonus[1].ivalue[0], 3); + ASSERT_EQ(bonus[2].ivalue[0], 4); + ASSERT_EQ(bonus[3].ivalue[0], 2); ASSERT_NE(bonus[0].dvalue, nullptr); ASSERT_NE(bonus[1].dvalue, nullptr); ASSERT_NE(bonus[2].dvalue, nullptr); @@ -3103,11 +3107,11 @@ TEST_F(AtomStyleTest, body_nparticle) lmp->input->one("read_data test_atom_styles.data"); lmp->input->one("pair_coeff * *"); if (!verbose) ::testing::internal::GetCapturedStdout(); - EXPECT_THAT(std::string(lmp->atom->atom_style), Eq("tri")); + EXPECT_THAT(std::string(lmp->atom->atom_style), Eq("body")); EXPECT_NE(lmp->atom->avec, nullptr); EXPECT_EQ(lmp->atom->natoms, 6); EXPECT_EQ(lmp->atom->nlocal, 6); - EXPECT_EQ(lmp->atom->ntris, 4); + EXPECT_EQ(lmp->atom->nbodies, 4); EXPECT_EQ(lmp->atom->nghost, 0); EXPECT_NE(lmp->atom->nmax, -1); EXPECT_EQ(lmp->atom->tag_enable, 1); @@ -3121,6 +3125,151 @@ TEST_F(AtomStyleTest, body_nparticle) EXPECT_EQ(lmp->atom->map_user, 1); EXPECT_EQ(lmp->atom->map_tag_max, 6); + EXPECT_EQ(lmp->atom->mass, nullptr); + EXPECT_NE(lmp->atom->rmass, nullptr); + EXPECT_NE(lmp->atom->body, nullptr); + EXPECT_NE(lmp->atom->angmom, nullptr); + EXPECT_NE(lmp->atom->torque, nullptr); + EXPECT_NE(lmp->atom->radius, nullptr); + EXPECT_EQ(lmp->atom->mass_setflag, nullptr); + + x = lmp->atom->x; + v = lmp->atom->v; + type = lmp->atom->type; + body = lmp->atom->body; + rmass = lmp->atom->rmass; + radius = lmp->atom->radius; + angmom = lmp->atom->angmom; + avec = (AtomVecBody *)lmp->atom->avec; + bonus = avec->bonus; + EXPECT_DOUBLE_EQ(x[GETIDX(1)][0], -2.0); + EXPECT_DOUBLE_EQ(x[GETIDX(1)][1], 2.0); + EXPECT_DOUBLE_EQ(x[GETIDX(1)][2], 0.1); + EXPECT_DOUBLE_EQ(x[GETIDX(2)][0], -2.0); + EXPECT_DOUBLE_EQ(x[GETIDX(2)][1], -2.0); + EXPECT_DOUBLE_EQ(x[GETIDX(2)][2], -0.1); + EXPECT_DOUBLE_EQ(x[GETIDX(3)][0], 2.0); + EXPECT_DOUBLE_EQ(x[GETIDX(3)][1], 2.0); + EXPECT_DOUBLE_EQ(x[GETIDX(3)][2], -0.1); + EXPECT_DOUBLE_EQ(x[GETIDX(4)][0], 2.0); + EXPECT_DOUBLE_EQ(x[GETIDX(4)][1], -2.0); + EXPECT_DOUBLE_EQ(x[GETIDX(4)][2], 0.1); + EXPECT_DOUBLE_EQ(x[GETIDX(5)][0], 2.0); + EXPECT_DOUBLE_EQ(x[GETIDX(5)][1], 2.0); + EXPECT_DOUBLE_EQ(x[GETIDX(5)][2], -2.1); + EXPECT_DOUBLE_EQ(x[GETIDX(6)][0], 2.0); + EXPECT_DOUBLE_EQ(x[GETIDX(6)][1], -2.0); + EXPECT_DOUBLE_EQ(x[GETIDX(6)][2], 2.1); + EXPECT_DOUBLE_EQ(v[GETIDX(1)][0], 0.0); + EXPECT_DOUBLE_EQ(v[GETIDX(1)][1], 0.0); + EXPECT_DOUBLE_EQ(v[GETIDX(1)][2], 0.0); + EXPECT_DOUBLE_EQ(v[GETIDX(2)][0], 0.0); + EXPECT_DOUBLE_EQ(v[GETIDX(2)][1], 0.0); + EXPECT_DOUBLE_EQ(v[GETIDX(2)][2], 0.0); + EXPECT_DOUBLE_EQ(v[GETIDX(3)][0], 0.0); + EXPECT_DOUBLE_EQ(v[GETIDX(3)][1], 0.0); + EXPECT_DOUBLE_EQ(v[GETIDX(3)][2], 0.0); + EXPECT_DOUBLE_EQ(v[GETIDX(4)][0], 0.0); + EXPECT_DOUBLE_EQ(v[GETIDX(4)][1], 0.0); + EXPECT_DOUBLE_EQ(v[GETIDX(4)][2], 0.0); + EXPECT_DOUBLE_EQ(v[GETIDX(5)][0], 0.0); + EXPECT_DOUBLE_EQ(v[GETIDX(5)][1], 0.0); + EXPECT_DOUBLE_EQ(v[GETIDX(5)][2], 0.0); + EXPECT_DOUBLE_EQ(v[GETIDX(6)][0], 0.0); + EXPECT_DOUBLE_EQ(v[GETIDX(6)][1], 0.0); + EXPECT_DOUBLE_EQ(v[GETIDX(6)][2], 0.0); + EXPECT_EQ(type[GETIDX(1)], 1); + EXPECT_EQ(type[GETIDX(2)], 1); + EXPECT_EQ(type[GETIDX(3)], 2); + EXPECT_EQ(type[GETIDX(4)], 2); + EXPECT_EQ(type[GETIDX(5)], 3); + EXPECT_EQ(type[GETIDX(6)], 3); + EXPECT_DOUBLE_EQ(angmom[GETIDX(1)][0], 0.0); + EXPECT_DOUBLE_EQ(angmom[GETIDX(1)][1], 0.0); + EXPECT_DOUBLE_EQ(angmom[GETIDX(1)][2], 0.0); + EXPECT_DOUBLE_EQ(angmom[GETIDX(2)][0], 0.0); + EXPECT_DOUBLE_EQ(angmom[GETIDX(2)][1], 0.0); + EXPECT_DOUBLE_EQ(angmom[GETIDX(2)][2], 0.0); + EXPECT_DOUBLE_EQ(angmom[GETIDX(3)][0], 0.0); + EXPECT_DOUBLE_EQ(angmom[GETIDX(3)][1], 0.0); + EXPECT_DOUBLE_EQ(angmom[GETIDX(3)][2], 0.0); + EXPECT_DOUBLE_EQ(angmom[GETIDX(4)][0], 0.0); + EXPECT_DOUBLE_EQ(angmom[GETIDX(4)][1], 0.0); + EXPECT_DOUBLE_EQ(angmom[GETIDX(4)][2], 0.0); + + EXPECT_EQ(body[GETIDX(1)], 0); + EXPECT_EQ(body[GETIDX(2)], 1); + EXPECT_EQ(body[GETIDX(3)], 2); + EXPECT_EQ(body[GETIDX(4)], 3); + EXPECT_EQ(body[GETIDX(5)], -1); + EXPECT_EQ(body[GETIDX(6)], -1); + EXPECT_DOUBLE_EQ(rmass[GETIDX(1)], 4); + EXPECT_DOUBLE_EQ(rmass[GETIDX(2)], 4); + EXPECT_DOUBLE_EQ(rmass[GETIDX(3)], 2.4); + EXPECT_DOUBLE_EQ(rmass[GETIDX(4)], 2.4); + EXPECT_DOUBLE_EQ(rmass[GETIDX(5)], 4.4); + EXPECT_DOUBLE_EQ(rmass[GETIDX(6)], 4.4); + EXPECT_DOUBLE_EQ(radius[GETIDX(1)], 0.5); + EXPECT_DOUBLE_EQ(radius[GETIDX(2)], 0.5); + EXPECT_DOUBLE_EQ(radius[GETIDX(3)], 0.5); + EXPECT_DOUBLE_EQ(radius[GETIDX(4)], 0.5); + EXPECT_DOUBLE_EQ(radius[GETIDX(5)], 0.5); + EXPECT_DOUBLE_EQ(radius[GETIDX(6)], 0.5); + + EXPECT_DOUBLE_EQ(bonus[0].inertia[0], 2.0); + EXPECT_DOUBLE_EQ(bonus[0].inertia[1], 2.0); + EXPECT_DOUBLE_EQ(bonus[0].inertia[2], 0.0); + EXPECT_DOUBLE_EQ(bonus[1].inertia[0], 4.5); + EXPECT_DOUBLE_EQ(bonus[1].inertia[1], 4.0); + EXPECT_DOUBLE_EQ(bonus[1].inertia[2], 0.5); + EXPECT_DOUBLE_EQ(bonus[2].inertia[0], 1.67188); + EXPECT_DOUBLE_EQ(bonus[2].inertia[1], 1.7746273249544022); + EXPECT_DOUBLE_EQ(bonus[2].inertia[2], 0.49099767504559777); + EXPECT_DOUBLE_EQ(bonus[3].inertia[0], 12.0); + EXPECT_DOUBLE_EQ(bonus[3].inertia[1], 12.0); + EXPECT_DOUBLE_EQ(bonus[3].inertia[2], 0.0); + EXPECT_DOUBLE_EQ(bonus[0].quat[0], 1.0); + EXPECT_DOUBLE_EQ(bonus[0].quat[1], 0.0); + EXPECT_DOUBLE_EQ(bonus[0].quat[2], 0.0); + EXPECT_DOUBLE_EQ(bonus[0].quat[3], 0.0); + EXPECT_DOUBLE_EQ(bonus[1].quat[0], 1.0); + EXPECT_DOUBLE_EQ(bonus[1].quat[1], 0.0); + EXPECT_DOUBLE_EQ(bonus[1].quat[2], 0.0); + EXPECT_DOUBLE_EQ(bonus[1].quat[3], 0.0); + EXPECT_DOUBLE_EQ(bonus[2].quat[0], 0.9351131265310294); + EXPECT_DOUBLE_EQ(bonus[2].quat[1], 0.25056280708573159); + EXPECT_DOUBLE_EQ(bonus[2].quat[2], 0.0); + EXPECT_DOUBLE_EQ(bonus[2].quat[3], 0.0); + EXPECT_DOUBLE_EQ(bonus[3].quat[0], 0.94328772332207422); + EXPECT_DOUBLE_EQ(bonus[3].quat[1], -0.19726148412050853); + EXPECT_DOUBLE_EQ(bonus[3].quat[2], -0.075803071317030998); + EXPECT_DOUBLE_EQ(bonus[3].quat[3], 0.25056280708573148); + EXPECT_EQ(bonus[0].ilocal, 0); + EXPECT_EQ(bonus[1].ilocal, 1); + EXPECT_EQ(bonus[2].ilocal, 2); + EXPECT_EQ(bonus[3].ilocal, 3); + EXPECT_EQ(bonus[0].ninteger, 1); + EXPECT_EQ(bonus[1].ninteger, 1); + EXPECT_EQ(bonus[2].ninteger, 1); + EXPECT_EQ(bonus[3].ninteger, 1); + EXPECT_EQ(bonus[0].ndouble, 6); + EXPECT_EQ(bonus[1].ndouble, 9); + EXPECT_EQ(bonus[2].ndouble, 12); + EXPECT_EQ(bonus[3].ndouble, 6); + EXPECT_NE(bonus[0].ivalue, nullptr); + EXPECT_NE(bonus[0].ivalue, nullptr); + EXPECT_NE(bonus[1].ivalue, nullptr); + EXPECT_NE(bonus[2].ivalue, nullptr); + EXPECT_NE(bonus[3].ivalue, nullptr); + EXPECT_EQ(bonus[0].ivalue[0], 2); + EXPECT_EQ(bonus[1].ivalue[0], 3); + EXPECT_EQ(bonus[2].ivalue[0], 4); + EXPECT_EQ(bonus[3].ivalue[0], 2); + EXPECT_NE(bonus[0].dvalue, nullptr); + EXPECT_NE(bonus[1].dvalue, nullptr); + EXPECT_NE(bonus[2].dvalue, nullptr); + EXPECT_NE(bonus[3].dvalue, nullptr); + if (!verbose) ::testing::internal::CaptureStdout(); lmp->input->one("group two id 2:4:2"); lmp->input->one("delete_atoms group two compress no"); @@ -3130,7 +3279,7 @@ TEST_F(AtomStyleTest, body_nparticle) lmp->input->one("replicate 1 1 2"); if (!verbose) ::testing::internal::GetCapturedStdout(); EXPECT_THAT(std::string(lmp->atom->atom_style), Eq("body")); - avec = (AtomVecBody *)lmp->atom->avec; + avec = (AtomVecBody *)lmp->atom->avec; EXPECT_THAT(std::string(avec->bptr->style), Eq("nparticle")); EXPECT_NE(lmp->atom->avec, nullptr); EXPECT_EQ(lmp->atom->natoms, 8); @@ -3182,46 +3331,6 @@ TEST_F(AtomStyleTest, body_nparticle) EXPECT_DOUBLE_EQ(radius[GETIDX(11)], 0.5); EXPECT_DOUBLE_EQ(radius[GETIDX(12)], 0.5); - EXPECT_DOUBLE_EQ(bonus[0].inertia[0], 0.072258416330334363); - EXPECT_DOUBLE_EQ(bonus[0].inertia[1], 13.94589575227541); - EXPECT_DOUBLE_EQ(bonus[0].inertia[2], 14.017974903242481); - EXPECT_DOUBLE_EQ(bonus[1].inertia[0], 0.23541253382609079); - EXPECT_DOUBLE_EQ(bonus[1].inertia[1], 18.948744087979005); - EXPECT_DOUBLE_EQ(bonus[1].inertia[2], 19.15175691481879); - EXPECT_DOUBLE_EQ(bonus[2].inertia[0], 0.072258416330334363); - EXPECT_DOUBLE_EQ(bonus[2].inertia[1], 13.94589575227541); - EXPECT_DOUBLE_EQ(bonus[2].inertia[2], 14.017974903242481); - EXPECT_DOUBLE_EQ(bonus[3].inertia[0], 0.23541253382609079); - EXPECT_DOUBLE_EQ(bonus[3].inertia[1], 18.948744087979005); - EXPECT_DOUBLE_EQ(bonus[3].inertia[2], 19.15175691481879); - EXPECT_DOUBLE_EQ(bonus[0].quat[0], 0.92373678792937974); - EXPECT_DOUBLE_EQ(bonus[0].quat[1], 0.0067268233964605153); - EXPECT_DOUBLE_EQ(bonus[0].quat[2], 0.016239988275423625); - EXPECT_DOUBLE_EQ(bonus[0].quat[3], -0.38262430562330857); - EXPECT_DOUBLE_EQ(bonus[1].quat[0], 0.90191325590647364); - EXPECT_DOUBLE_EQ(bonus[1].quat[1], 0.20096813128512517); - EXPECT_DOUBLE_EQ(bonus[1].quat[2], 0.10027584751231088); - EXPECT_DOUBLE_EQ(bonus[1].quat[3], 0.36892959143125964); - EXPECT_DOUBLE_EQ(bonus[2].quat[0], 0.92373678792937974); - EXPECT_DOUBLE_EQ(bonus[2].quat[1], 0.0067268233964605153); - EXPECT_DOUBLE_EQ(bonus[2].quat[2], 0.016239988275423625); - EXPECT_DOUBLE_EQ(bonus[2].quat[3], -0.38262430562330857); - EXPECT_DOUBLE_EQ(bonus[3].quat[0], 0.90191325590647364); - EXPECT_DOUBLE_EQ(bonus[3].quat[1], 0.20096813128512517); - EXPECT_DOUBLE_EQ(bonus[3].quat[2], 0.10027584751231088); - EXPECT_DOUBLE_EQ(bonus[3].quat[3], 0.36892959143125964); - EXPECT_DOUBLE_EQ(bonus[0].ilocal, 1); - EXPECT_DOUBLE_EQ(bonus[1].ilocal, 1); - EXPECT_DOUBLE_EQ(bonus[2].ilocal, 1); - EXPECT_DOUBLE_EQ(bonus[3].ilocal, 1); - EXPECT_DOUBLE_EQ(bonus[0].ninteger, 1); - EXPECT_DOUBLE_EQ(bonus[1].ninteger, 1); - EXPECT_DOUBLE_EQ(bonus[2].ninteger, 1); - EXPECT_DOUBLE_EQ(bonus[3].ninteger, 1); - EXPECT_DOUBLE_EQ(bonus[0].ndouble, 1); - EXPECT_DOUBLE_EQ(bonus[1].ndouble, 1); - EXPECT_DOUBLE_EQ(bonus[2].ndouble, 1); - EXPECT_DOUBLE_EQ(bonus[3].ndouble, 1); if (!verbose) ::testing::internal::CaptureStdout(); lmp->input->one("reset_atom_ids"); @@ -3251,18 +3360,6 @@ TEST_F(AtomStyleTest, body_nparticle) EXPECT_EQ(body[GETIDX(6)], -1); EXPECT_EQ(body[GETIDX(7)], 3); EXPECT_EQ(body[GETIDX(8)], -1); - EXPECT_DOUBLE_EQ(bonus[0].inertia[0], 0.072258416330334363); - EXPECT_DOUBLE_EQ(bonus[0].inertia[1], 13.94589575227541); - EXPECT_DOUBLE_EQ(bonus[0].inertia[2], 14.017974903242481); - EXPECT_DOUBLE_EQ(bonus[1].inertia[0], 0.23541253382609079); - EXPECT_DOUBLE_EQ(bonus[1].inertia[1], 18.948744087979005); - EXPECT_DOUBLE_EQ(bonus[1].inertia[2], 19.15175691481879); - EXPECT_DOUBLE_EQ(bonus[2].inertia[0], 0.072258416330334363); - EXPECT_DOUBLE_EQ(bonus[2].inertia[1], 13.94589575227541); - EXPECT_DOUBLE_EQ(bonus[2].inertia[2], 14.017974903242481); - EXPECT_DOUBLE_EQ(bonus[3].inertia[0], 0.23541253382609079); - EXPECT_DOUBLE_EQ(bonus[3].inertia[1], 18.948744087979005); - ASSERT_DOUBLE_EQ(bonus[3].inertia[2], 19.15175691481879); } TEST_F(AtomStyleTest, bond)