diff --git a/unittest/formats/test_atom_styles.cpp b/unittest/formats/test_atom_styles.cpp index cf2d122cce..a409f3547c 100644 --- a/unittest/formats/test_atom_styles.cpp +++ b/unittest/formats/test_atom_styles.cpp @@ -350,33 +350,33 @@ TEST_F(AtomStyleTest, atomic) auto x = lmp->atom->x; auto v = lmp->atom->v; auto tag = lmp->atom->tag; - ASSERT_DOUBLE_EQ(x[GETIDX(1)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][2], 0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][2], -0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][2], -0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][2], 0.1); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][2], 0.0); + ASSERT_NEAR(x[GETIDX(1)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][2], 0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][2], -0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][2], -0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][2], 0.1, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][2], 0.0, 1.0e-14); - ASSERT_DOUBLE_EQ(lmp->atom->mass[1], 4.0); - ASSERT_DOUBLE_EQ(lmp->atom->mass[2], 2.4); + ASSERT_NEAR(lmp->atom->mass[1], 4.0, 1.0e-14); + ASSERT_NEAR(lmp->atom->mass[2], 2.4, 1.0e-14); ASSERT_EQ(lmp->atom->mass_setflag[1], 1); ASSERT_EQ(lmp->atom->mass_setflag[2], 1); ASSERT_EQ(lmp->atom->map_style, 1); @@ -405,21 +405,21 @@ TEST_F(AtomStyleTest, atomic) x = lmp->atom->x; v = lmp->atom->v; - ASSERT_DOUBLE_EQ(x[GETIDX(1)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][2], 0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][2], -0.1); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][2], 0.0); + ASSERT_NEAR(x[GETIDX(1)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][2], 0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][2], -0.1, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][2], 0.0, 1.0e-14); - ASSERT_DOUBLE_EQ(lmp->atom->mass[1], 4.0); - ASSERT_DOUBLE_EQ(lmp->atom->mass[2], 2.4); + ASSERT_NEAR(lmp->atom->mass[1], 4.0, 1.0e-14); + ASSERT_NEAR(lmp->atom->mass[2], 2.4, 1.0e-14); ASSERT_EQ(lmp->atom->mass_setflag[1], 1); ASSERT_EQ(lmp->atom->mass_setflag[2], 1); ASSERT_EQ(lmp->atom->map_style, 1); @@ -431,59 +431,61 @@ TEST_F(AtomStyleTest, atomic) ASSERT_EQ(lmp->atom->map_tag_max, 2); ASSERT_EQ(lmp->atom->tag_consecutive(), 1); if (!verbose) ::testing::internal::CaptureStdout(); + lmp->input->one("comm_style tiled"); + lmp->input->one("change_box all triclinic"); lmp->input->one("replicate 2 2 2"); if (!verbose) ::testing::internal::GetCapturedStdout(); ASSERT_EQ(lmp->atom->map_tag_max, 16); x = lmp->atom->x; tag = lmp->atom->tag; - ASSERT_DOUBLE_EQ(x[GETIDX(1)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][2], 0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][2], -0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][0], 6.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][2], 0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][0], 10.0); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][2], -0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][1], 10.0); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][2], 0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][1], 10.0); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][2], -0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(7)][0], 6.0); - ASSERT_DOUBLE_EQ(x[GETIDX(7)][1], 10.0); - ASSERT_DOUBLE_EQ(x[GETIDX(7)][2], 0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(8)][0], 10.0); - ASSERT_DOUBLE_EQ(x[GETIDX(8)][1], 10.0); - ASSERT_DOUBLE_EQ(x[GETIDX(8)][2], -0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(9)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(9)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(9)][2], 8.1); - ASSERT_DOUBLE_EQ(x[GETIDX(10)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(10)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(10)][2], 7.9); - ASSERT_DOUBLE_EQ(x[GETIDX(11)][0], 6.0); - ASSERT_DOUBLE_EQ(x[GETIDX(11)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(11)][2], 8.1); - ASSERT_DOUBLE_EQ(x[GETIDX(12)][0], 10.0); - ASSERT_DOUBLE_EQ(x[GETIDX(12)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(12)][2], 7.9); - ASSERT_DOUBLE_EQ(x[GETIDX(13)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(13)][1], 10.0); - ASSERT_DOUBLE_EQ(x[GETIDX(13)][2], 8.1); - ASSERT_DOUBLE_EQ(x[GETIDX(14)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(14)][1], 10.0); - ASSERT_DOUBLE_EQ(x[GETIDX(14)][2], 7.9); - ASSERT_DOUBLE_EQ(x[GETIDX(15)][0], 6.0); - ASSERT_DOUBLE_EQ(x[GETIDX(15)][1], 10.0); - ASSERT_DOUBLE_EQ(x[GETIDX(15)][2], 8.1); - ASSERT_DOUBLE_EQ(x[GETIDX(16)][0], 10.0); - ASSERT_DOUBLE_EQ(x[GETIDX(16)][1], 10.0); - ASSERT_DOUBLE_EQ(x[GETIDX(16)][2], 7.9); + ASSERT_NEAR(x[GETIDX(1)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][2], 0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][2], -0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][0], 6.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][2], 0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][0], 10.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][2], -0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][1], 10.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][2], 0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][1], 10.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][2], -0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(7)][0], 6.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(7)][1], 10.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(7)][2], 0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(8)][0], 10.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(8)][1], 10.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(8)][2], -0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(9)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(9)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(9)][2], 8.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(10)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(10)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(10)][2], 7.9, 1.0e-14); + ASSERT_NEAR(x[GETIDX(11)][0], 6.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(11)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(11)][2], 8.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(12)][0], 10.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(12)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(12)][2], 7.9, 1.0e-14); + ASSERT_NEAR(x[GETIDX(13)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(13)][1], 10.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(13)][2], 8.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(14)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(14)][1], 10.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(14)][2], 7.9, 1.0e-14); + ASSERT_NEAR(x[GETIDX(15)][0], 6.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(15)][1], 10.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(15)][2], 8.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(16)][0], 10.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(16)][1], 10.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(16)][2], 7.9, 1.0e-14); } TEST_F(AtomStyleTest, charge) @@ -734,37 +736,37 @@ TEST_F(AtomStyleTest, charge) auto x = lmp->atom->x; auto v = lmp->atom->v; auto q = lmp->atom->q; - ASSERT_DOUBLE_EQ(x[GETIDX(1)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][2], 0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][2], -0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][2], -0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][2], 0.1); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][2], 0.0); - ASSERT_DOUBLE_EQ(q[GETIDX(1)], -0.5); - ASSERT_DOUBLE_EQ(q[GETIDX(2)], 0.5); - ASSERT_DOUBLE_EQ(q[GETIDX(3)], -1.0); - ASSERT_DOUBLE_EQ(q[GETIDX(4)], 1.0); + ASSERT_NEAR(x[GETIDX(1)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][2], 0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][2], -0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][2], -0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][2], 0.1, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][2], 0.0, 1.0e-14); + ASSERT_NEAR(q[GETIDX(1)], -0.5, 1.0e-14); + ASSERT_NEAR(q[GETIDX(2)], 0.5, 1.0e-14); + ASSERT_NEAR(q[GETIDX(3)], -1.0, 1.0e-14); + ASSERT_NEAR(q[GETIDX(4)], 1.0, 1.0e-14); - ASSERT_DOUBLE_EQ(lmp->atom->mass[1], 4.0); - ASSERT_DOUBLE_EQ(lmp->atom->mass[2], 2.4); + ASSERT_NEAR(lmp->atom->mass[1], 4.0, 1.0e-14); + ASSERT_NEAR(lmp->atom->mass[2], 2.4, 1.0e-14); ASSERT_EQ(lmp->atom->mass_setflag[1], 1); ASSERT_EQ(lmp->atom->mass_setflag[2], 1); @@ -792,48 +794,49 @@ TEST_F(AtomStyleTest, charge) x = lmp->atom->x; v = lmp->atom->v; q = lmp->atom->q; - ASSERT_DOUBLE_EQ(x[GETIDX(1)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][2], 0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][2], -0.1); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][2], 0.0); - ASSERT_DOUBLE_EQ(q[GETIDX(1)], -0.5); - ASSERT_DOUBLE_EQ(q[GETIDX(3)], -1.0); + ASSERT_NEAR(x[GETIDX(1)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][2], 0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][2], -0.1, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][2], 0.0, 1.0e-14); + ASSERT_NEAR(q[GETIDX(1)], -0.5, 1.0e-14); + ASSERT_NEAR(q[GETIDX(3)], -1.0, 1.0e-14); - ASSERT_DOUBLE_EQ(lmp->atom->mass[1], 4.0); - ASSERT_DOUBLE_EQ(lmp->atom->mass[2], 2.4); + ASSERT_NEAR(lmp->atom->mass[1], 4.0, 1.0e-14); + ASSERT_NEAR(lmp->atom->mass[2], 2.4, 1.0e-14); ASSERT_EQ(lmp->atom->mass_setflag[1], 1); ASSERT_EQ(lmp->atom->mass_setflag[2], 1); if (!verbose) ::testing::internal::CaptureStdout(); lmp->input->one("reset_atom_ids"); + lmp->input->one("change_box all triclinic"); lmp->input->one("replicate 2 2 2 bbox"); if (!verbose) ::testing::internal::GetCapturedStdout(); ASSERT_EQ(lmp->atom->map_tag_max, 16); q = lmp->atom->q; - ASSERT_DOUBLE_EQ(q[GETIDX(1)], -0.5); - ASSERT_DOUBLE_EQ(q[GETIDX(2)], -1.0); - ASSERT_DOUBLE_EQ(q[GETIDX(3)], -0.5); - ASSERT_DOUBLE_EQ(q[GETIDX(4)], -1.0); - ASSERT_DOUBLE_EQ(q[GETIDX(5)], -0.5); - ASSERT_DOUBLE_EQ(q[GETIDX(6)], -1.0); - ASSERT_DOUBLE_EQ(q[GETIDX(7)], -0.5); - ASSERT_DOUBLE_EQ(q[GETIDX(8)], -1.0); - ASSERT_DOUBLE_EQ(q[GETIDX(9)], -0.5); - ASSERT_DOUBLE_EQ(q[GETIDX(10)], -1.0); - ASSERT_DOUBLE_EQ(q[GETIDX(11)], -0.5); - ASSERT_DOUBLE_EQ(q[GETIDX(12)], -1.0); - ASSERT_DOUBLE_EQ(q[GETIDX(13)], -0.5); - ASSERT_DOUBLE_EQ(q[GETIDX(14)], -1.0); - ASSERT_DOUBLE_EQ(q[GETIDX(15)], -0.5); - ASSERT_DOUBLE_EQ(q[GETIDX(16)], -1.0); + ASSERT_NEAR(q[GETIDX(1)], -0.5, 1.0e-14); + ASSERT_NEAR(q[GETIDX(2)], -1.0, 1.0e-14); + ASSERT_NEAR(q[GETIDX(3)], -0.5, 1.0e-14); + ASSERT_NEAR(q[GETIDX(4)], -1.0, 1.0e-14); + ASSERT_NEAR(q[GETIDX(5)], -0.5, 1.0e-14); + ASSERT_NEAR(q[GETIDX(6)], -1.0, 1.0e-14); + ASSERT_NEAR(q[GETIDX(7)], -0.5, 1.0e-14); + ASSERT_NEAR(q[GETIDX(8)], -1.0, 1.0e-14); + ASSERT_NEAR(q[GETIDX(9)], -0.5, 1.0e-14); + ASSERT_NEAR(q[GETIDX(10)], -1.0, 1.0e-14); + ASSERT_NEAR(q[GETIDX(11)], -0.5, 1.0e-14); + ASSERT_NEAR(q[GETIDX(12)], -1.0, 1.0e-14); + ASSERT_NEAR(q[GETIDX(13)], -0.5, 1.0e-14); + ASSERT_NEAR(q[GETIDX(14)], -1.0, 1.0e-14); + ASSERT_NEAR(q[GETIDX(15)], -0.5, 1.0e-14); + ASSERT_NEAR(q[GETIDX(16)], -1.0, 1.0e-14); } TEST_F(AtomStyleTest, sphere) @@ -1090,46 +1093,46 @@ TEST_F(AtomStyleTest, sphere) auto v = lmp->atom->v; auto rmass = lmp->atom->rmass; auto omega = lmp->atom->omega; - ASSERT_DOUBLE_EQ(x[GETIDX(1)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][2], 0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][2], -0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][2], -0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][2], 0.1); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][2], 0.0); - ASSERT_DOUBLE_EQ(rmass[GETIDX(1)], 4.0); - ASSERT_DOUBLE_EQ(rmass[GETIDX(2)], 4.0); - ASSERT_DOUBLE_EQ(rmass[GETIDX(3)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(4)], 2.4); - ASSERT_DOUBLE_EQ(omega[GETIDX(1)][0], -0.5); - ASSERT_DOUBLE_EQ(omega[GETIDX(1)][1], 0.1); - ASSERT_DOUBLE_EQ(omega[GETIDX(1)][2], 0.1); - ASSERT_DOUBLE_EQ(omega[GETIDX(2)][0], 0.5); - ASSERT_DOUBLE_EQ(omega[GETIDX(2)][1], -0.1); - ASSERT_DOUBLE_EQ(omega[GETIDX(2)][2], -0.1); - ASSERT_DOUBLE_EQ(omega[GETIDX(3)][0], -1.0); - ASSERT_DOUBLE_EQ(omega[GETIDX(3)][1], 0.0); - ASSERT_DOUBLE_EQ(omega[GETIDX(3)][2], 0.0); - ASSERT_DOUBLE_EQ(omega[GETIDX(4)][0], 0.0); - ASSERT_DOUBLE_EQ(omega[GETIDX(4)][1], 1.0); - ASSERT_DOUBLE_EQ(omega[GETIDX(4)][2], 0.0); + ASSERT_NEAR(x[GETIDX(1)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][2], 0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][2], -0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][2], -0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][2], 0.1, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][2], 0.0, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(1)], 4.0, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(2)], 4.0, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(3)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(4)], 2.4, 1.0e-14); + ASSERT_NEAR(omega[GETIDX(1)][0], -0.5, 1.0e-14); + ASSERT_NEAR(omega[GETIDX(1)][1], 0.1, 1.0e-14); + ASSERT_NEAR(omega[GETIDX(1)][2], 0.1, 1.0e-14); + ASSERT_NEAR(omega[GETIDX(2)][0], 0.5, 1.0e-14); + ASSERT_NEAR(omega[GETIDX(2)][1], -0.1, 1.0e-14); + ASSERT_NEAR(omega[GETIDX(2)][2], -0.1, 1.0e-14); + ASSERT_NEAR(omega[GETIDX(3)][0], -1.0, 1.0e-14); + ASSERT_NEAR(omega[GETIDX(3)][1], 0.0, 1.0e-14); + ASSERT_NEAR(omega[GETIDX(3)][2], 0.0, 1.0e-14); + ASSERT_NEAR(omega[GETIDX(4)][0], 0.0, 1.0e-14); + ASSERT_NEAR(omega[GETIDX(4)][1], 1.0, 1.0e-14); + ASSERT_NEAR(omega[GETIDX(4)][2], 0.0, 1.0e-14); if (!verbose) ::testing::internal::CaptureStdout(); lmp->input->one("pair_coeff * *"); @@ -1156,22 +1159,22 @@ TEST_F(AtomStyleTest, sphere) rmass = lmp->atom->rmass; omega = lmp->atom->omega; - ASSERT_DOUBLE_EQ(rmass[GETIDX(1)], 4.0); - ASSERT_DOUBLE_EQ(rmass[GETIDX(2)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(3)], 4.0); - ASSERT_DOUBLE_EQ(rmass[GETIDX(4)], 2.4); - ASSERT_DOUBLE_EQ(omega[GETIDX(1)][0], -0.5); - ASSERT_DOUBLE_EQ(omega[GETIDX(1)][1], 0.1); - ASSERT_DOUBLE_EQ(omega[GETIDX(1)][2], 0.1); - ASSERT_DOUBLE_EQ(omega[GETIDX(2)][0], -1.0); - ASSERT_DOUBLE_EQ(omega[GETIDX(2)][1], 0.0); - ASSERT_DOUBLE_EQ(omega[GETIDX(2)][2], 0.0); - ASSERT_DOUBLE_EQ(omega[GETIDX(3)][0], -0.5); - ASSERT_DOUBLE_EQ(omega[GETIDX(3)][1], 0.1); - ASSERT_DOUBLE_EQ(omega[GETIDX(3)][2], 0.1); - ASSERT_DOUBLE_EQ(omega[GETIDX(4)][0], -1.0); - ASSERT_DOUBLE_EQ(omega[GETIDX(4)][1], 0.0); - ASSERT_DOUBLE_EQ(omega[GETIDX(4)][2], 0.0); + ASSERT_NEAR(rmass[GETIDX(1)], 4.0, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(2)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(3)], 4.0, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(4)], 2.4, 1.0e-14); + ASSERT_NEAR(omega[GETIDX(1)][0], -0.5, 1.0e-14); + ASSERT_NEAR(omega[GETIDX(1)][1], 0.1, 1.0e-14); + ASSERT_NEAR(omega[GETIDX(1)][2], 0.1, 1.0e-14); + ASSERT_NEAR(omega[GETIDX(2)][0], -1.0, 1.0e-14); + ASSERT_NEAR(omega[GETIDX(2)][1], 0.0, 1.0e-14); + ASSERT_NEAR(omega[GETIDX(2)][2], 0.0, 1.0e-14); + ASSERT_NEAR(omega[GETIDX(3)][0], -0.5, 1.0e-14); + ASSERT_NEAR(omega[GETIDX(3)][1], 0.1, 1.0e-14); + ASSERT_NEAR(omega[GETIDX(3)][2], 0.1, 1.0e-14); + ASSERT_NEAR(omega[GETIDX(4)][0], -1.0, 1.0e-14); + ASSERT_NEAR(omega[GETIDX(4)][1], 0.0, 1.0e-14); + ASSERT_NEAR(omega[GETIDX(4)][2], 0.0, 1.0e-14); } TEST_F(AtomStyleTest, ellipsoid) @@ -1450,42 +1453,42 @@ TEST_F(AtomStyleTest, ellipsoid) auto rmass = lmp->atom->rmass; auto avec = (AtomVecEllipsoid *)lmp->atom->avec; auto bonus = avec->bonus; - ASSERT_DOUBLE_EQ(x[GETIDX(1)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][2], 0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][2], -0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][2], -0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][2], 0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][2], -2.1); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][2], 2.1); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(5)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(5)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(5)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(6)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(6)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(6)][2], 0.0); + ASSERT_NEAR(x[GETIDX(1)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][2], 0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][2], -0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][2], -0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][2], 0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][2], -2.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][2], 2.1, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(5)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(5)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(5)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(6)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(6)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(6)][2], 0.0, 1.0e-14); ASSERT_EQ(type[GETIDX(1)], 1); ASSERT_EQ(type[GETIDX(2)], 1); ASSERT_EQ(type[GETIDX(3)], 2); @@ -1498,41 +1501,41 @@ TEST_F(AtomStyleTest, ellipsoid) ASSERT_EQ(ellipsoid[GETIDX(4)], 3); ASSERT_EQ(ellipsoid[GETIDX(5)], -1); ASSERT_EQ(ellipsoid[GETIDX(6)], -1); - ASSERT_DOUBLE_EQ(rmass[GETIDX(1)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(2)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(3)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(4)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(5)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(6)], 4.4); + ASSERT_NEAR(rmass[GETIDX(1)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(2)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(3)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(4)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(5)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(6)], 4.4, 1.0e-14); - ASSERT_DOUBLE_EQ(bonus[0].shape[0], 0.5); - ASSERT_DOUBLE_EQ(bonus[0].shape[1], 0.5); - ASSERT_DOUBLE_EQ(bonus[0].shape[2], 0.5); - ASSERT_DOUBLE_EQ(bonus[1].shape[0], 0.5); - ASSERT_DOUBLE_EQ(bonus[1].shape[1], 0.5); - ASSERT_DOUBLE_EQ(bonus[1].shape[2], 0.5); - ASSERT_DOUBLE_EQ(bonus[2].shape[0], 1.5); - ASSERT_DOUBLE_EQ(bonus[2].shape[1], 0.4); - ASSERT_DOUBLE_EQ(bonus[2].shape[2], 0.55); - ASSERT_DOUBLE_EQ(bonus[3].shape[0], 1.5); - ASSERT_DOUBLE_EQ(bonus[3].shape[1], 0.4); - ASSERT_DOUBLE_EQ(bonus[3].shape[2], 0.55); - ASSERT_DOUBLE_EQ(bonus[0].quat[0], 1.0); - ASSERT_DOUBLE_EQ(bonus[0].quat[1], 0.0); - ASSERT_DOUBLE_EQ(bonus[0].quat[2], 0.0); - ASSERT_DOUBLE_EQ(bonus[0].quat[3], 0.0); - ASSERT_DOUBLE_EQ(bonus[1].quat[0], sqrt(0.5)); - ASSERT_DOUBLE_EQ(bonus[1].quat[1], 0.0); - ASSERT_DOUBLE_EQ(bonus[1].quat[2], sqrt(0.5)); - ASSERT_DOUBLE_EQ(bonus[1].quat[3], 0.0); - ASSERT_DOUBLE_EQ(bonus[2].quat[0], 0.9351131265310294); - ASSERT_DOUBLE_EQ(bonus[2].quat[1], 0.25056280708573159); - ASSERT_DOUBLE_EQ(bonus[2].quat[2], 0.0); - ASSERT_DOUBLE_EQ(bonus[2].quat[3], 0.25056280708573159); - ASSERT_DOUBLE_EQ(bonus[3].quat[0], sqrt(0.5)); - ASSERT_DOUBLE_EQ(bonus[3].quat[1], sqrt(5.0 / 30.0)); - ASSERT_DOUBLE_EQ(bonus[3].quat[2], sqrt(5.0 / 30.0)); - ASSERT_DOUBLE_EQ(bonus[3].quat[3], sqrt(5.0 / 30.0)); + ASSERT_NEAR(bonus[0].shape[0], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[0].shape[1], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[0].shape[2], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[1].shape[0], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[1].shape[1], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[1].shape[2], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[2].shape[0], 1.5, 1.0e-14); + ASSERT_NEAR(bonus[2].shape[1], 0.4, 1.0e-14); + ASSERT_NEAR(bonus[2].shape[2], 0.55, 1.0e-14); + ASSERT_NEAR(bonus[3].shape[0], 1.5, 1.0e-14); + ASSERT_NEAR(bonus[3].shape[1], 0.4, 1.0e-14); + ASSERT_NEAR(bonus[3].shape[2], 0.55, 1.0e-14); + ASSERT_NEAR(bonus[0].quat[0], 1.0, 1.0e-14); + ASSERT_NEAR(bonus[0].quat[1], 0.0, 1.0e-14); + ASSERT_NEAR(bonus[0].quat[2], 0.0, 1.0e-14); + ASSERT_NEAR(bonus[0].quat[3], 0.0, 1.0e-14); + ASSERT_NEAR(bonus[1].quat[0], sqrt(0.5), 1.0e-14); + ASSERT_NEAR(bonus[1].quat[1], 0.0, 1.0e-14); + ASSERT_NEAR(bonus[1].quat[2], sqrt(0.5), 1.0e-14); + ASSERT_NEAR(bonus[1].quat[3], 0.0, 1.0e-14); + ASSERT_NEAR(bonus[2].quat[0], 0.9351131265310294, 1.0e-14); + ASSERT_NEAR(bonus[2].quat[1], 0.25056280708573159, 1.0e-14); + ASSERT_NEAR(bonus[2].quat[2], 0.0, 1.0e-14); + ASSERT_NEAR(bonus[2].quat[3], 0.25056280708573159, 1.0e-14); + ASSERT_NEAR(bonus[3].quat[0], sqrt(0.5), 1.0e-14); + ASSERT_NEAR(bonus[3].quat[1], sqrt(5.0 / 30.0), 1.0e-14); + ASSERT_NEAR(bonus[3].quat[2], sqrt(5.0 / 30.0), 1.0e-14); + ASSERT_NEAR(bonus[3].quat[3], sqrt(5.0 / 30.0), 1.0e-14); if (!verbose) ::testing::internal::CaptureStdout(); lmp->input->one("group two id 2:4:2"); @@ -1540,6 +1543,7 @@ TEST_F(AtomStyleTest, ellipsoid) lmp->input->one("write_restart test_atom_styles.restart"); lmp->input->one("clear"); lmp->input->one("read_restart test_atom_styles.restart"); + lmp->input->one("comm_style tiled"); lmp->input->one("replicate 1 1 2 bbox"); if (!verbose) ::testing::internal::GetCapturedStdout(); ASSERT_THAT(std::string(lmp->atom->atom_style), Eq("ellipsoid")); @@ -1576,43 +1580,43 @@ TEST_F(AtomStyleTest, ellipsoid) ASSERT_EQ(ellipsoid[GETIDX(9)], 3); ASSERT_EQ(ellipsoid[GETIDX(11)], -1); ASSERT_EQ(ellipsoid[GETIDX(12)], -1); - ASSERT_DOUBLE_EQ(rmass[GETIDX(1)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(3)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(5)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(6)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(7)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(9)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(11)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(12)], 4.4); + ASSERT_NEAR(rmass[GETIDX(1)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(3)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(5)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(6)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(7)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(9)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(11)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(12)], 4.4, 1.0e-14); - ASSERT_DOUBLE_EQ(bonus[0].shape[0], 0.5); - ASSERT_DOUBLE_EQ(bonus[0].shape[1], 0.5); - ASSERT_DOUBLE_EQ(bonus[0].shape[2], 0.5); - ASSERT_DOUBLE_EQ(bonus[1].shape[0], 1.5); - ASSERT_DOUBLE_EQ(bonus[1].shape[1], 0.4); - ASSERT_DOUBLE_EQ(bonus[1].shape[2], 0.55); - ASSERT_DOUBLE_EQ(bonus[2].shape[0], 0.5); - ASSERT_DOUBLE_EQ(bonus[2].shape[1], 0.5); - ASSERT_DOUBLE_EQ(bonus[2].shape[2], 0.5); - ASSERT_DOUBLE_EQ(bonus[3].shape[0], 1.5); - ASSERT_DOUBLE_EQ(bonus[3].shape[1], 0.4); - ASSERT_DOUBLE_EQ(bonus[3].shape[2], 0.55); - ASSERT_DOUBLE_EQ(bonus[0].quat[0], 1.0); - ASSERT_DOUBLE_EQ(bonus[0].quat[1], 0.0); - ASSERT_DOUBLE_EQ(bonus[0].quat[2], 0.0); - ASSERT_DOUBLE_EQ(bonus[0].quat[3], 0.0); - ASSERT_DOUBLE_EQ(bonus[1].quat[0], 0.9351131265310294); - ASSERT_DOUBLE_EQ(bonus[1].quat[1], 0.25056280708573159); - ASSERT_DOUBLE_EQ(bonus[1].quat[2], 0.0); - ASSERT_DOUBLE_EQ(bonus[1].quat[3], 0.25056280708573159); - ASSERT_DOUBLE_EQ(bonus[2].quat[0], 1.0); - ASSERT_DOUBLE_EQ(bonus[2].quat[1], 0.0); - ASSERT_DOUBLE_EQ(bonus[2].quat[2], 0.0); - ASSERT_DOUBLE_EQ(bonus[2].quat[3], 0.0); - ASSERT_DOUBLE_EQ(bonus[3].quat[0], 0.9351131265310294); - ASSERT_DOUBLE_EQ(bonus[3].quat[1], 0.25056280708573159); - ASSERT_DOUBLE_EQ(bonus[3].quat[2], 0.0); - ASSERT_DOUBLE_EQ(bonus[3].quat[3], 0.25056280708573159); + ASSERT_NEAR(bonus[0].shape[0], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[0].shape[1], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[0].shape[2], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[1].shape[0], 1.5, 1.0e-14); + ASSERT_NEAR(bonus[1].shape[1], 0.4, 1.0e-14); + ASSERT_NEAR(bonus[1].shape[2], 0.55, 1.0e-14); + ASSERT_NEAR(bonus[2].shape[0], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[2].shape[1], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[2].shape[2], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[3].shape[0], 1.5, 1.0e-14); + ASSERT_NEAR(bonus[3].shape[1], 0.4, 1.0e-14); + ASSERT_NEAR(bonus[3].shape[2], 0.55, 1.0e-14); + ASSERT_NEAR(bonus[0].quat[0], 1.0, 1.0e-14); + ASSERT_NEAR(bonus[0].quat[1], 0.0, 1.0e-14); + ASSERT_NEAR(bonus[0].quat[2], 0.0, 1.0e-14); + ASSERT_NEAR(bonus[0].quat[3], 0.0, 1.0e-14); + ASSERT_NEAR(bonus[1].quat[0], 0.9351131265310294, 1.0e-14); + ASSERT_NEAR(bonus[1].quat[1], 0.25056280708573159, 1.0e-14); + ASSERT_NEAR(bonus[1].quat[2], 0.0, 1.0e-14); + ASSERT_NEAR(bonus[1].quat[3], 0.25056280708573159, 1.0e-14); + ASSERT_NEAR(bonus[2].quat[0], 1.0, 1.0e-14); + ASSERT_NEAR(bonus[2].quat[1], 0.0, 1.0e-14); + ASSERT_NEAR(bonus[2].quat[2], 0.0, 1.0e-14); + ASSERT_NEAR(bonus[2].quat[3], 0.0, 1.0e-14); + ASSERT_NEAR(bonus[3].quat[0], 0.9351131265310294, 1.0e-14); + ASSERT_NEAR(bonus[3].quat[1], 0.25056280708573159, 1.0e-14); + ASSERT_NEAR(bonus[3].quat[2], 0.0, 1.0e-14); + ASSERT_NEAR(bonus[3].quat[3], 0.25056280708573159, 1.0e-14); if (!verbose) ::testing::internal::CaptureStdout(); lmp->input->one("reset_atom_ids"); @@ -1641,43 +1645,43 @@ TEST_F(AtomStyleTest, ellipsoid) ASSERT_EQ(ellipsoid[GETIDX(6)], -1); ASSERT_EQ(ellipsoid[GETIDX(7)], 3); ASSERT_EQ(ellipsoid[GETIDX(8)], -1); - ASSERT_DOUBLE_EQ(rmass[GETIDX(1)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(2)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(3)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(4)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(5)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(6)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(7)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(8)], 4.4); + ASSERT_NEAR(rmass[GETIDX(1)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(2)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(3)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(4)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(5)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(6)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(7)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(8)], 4.4, 1.0e-14); - ASSERT_DOUBLE_EQ(bonus[0].shape[0], 0.5); - ASSERT_DOUBLE_EQ(bonus[0].shape[1], 0.5); - ASSERT_DOUBLE_EQ(bonus[0].shape[2], 0.5); - ASSERT_DOUBLE_EQ(bonus[1].shape[0], 1.5); - ASSERT_DOUBLE_EQ(bonus[1].shape[1], 0.4); - ASSERT_DOUBLE_EQ(bonus[1].shape[2], 0.55); - ASSERT_DOUBLE_EQ(bonus[2].shape[0], 0.5); - ASSERT_DOUBLE_EQ(bonus[2].shape[1], 0.5); - ASSERT_DOUBLE_EQ(bonus[2].shape[2], 0.5); - ASSERT_DOUBLE_EQ(bonus[3].shape[0], 1.5); - ASSERT_DOUBLE_EQ(bonus[3].shape[1], 0.4); - ASSERT_DOUBLE_EQ(bonus[3].shape[2], 0.55); - ASSERT_DOUBLE_EQ(bonus[0].quat[0], 1.0); - ASSERT_DOUBLE_EQ(bonus[0].quat[1], 0.0); - ASSERT_DOUBLE_EQ(bonus[0].quat[2], 0.0); - ASSERT_DOUBLE_EQ(bonus[0].quat[3], 0.0); - ASSERT_DOUBLE_EQ(bonus[1].quat[0], 0.9351131265310294); - ASSERT_DOUBLE_EQ(bonus[1].quat[1], 0.25056280708573159); - ASSERT_DOUBLE_EQ(bonus[1].quat[2], 0.0); - ASSERT_DOUBLE_EQ(bonus[1].quat[3], 0.25056280708573159); - ASSERT_DOUBLE_EQ(bonus[2].quat[0], 1.0); - ASSERT_DOUBLE_EQ(bonus[2].quat[1], 0.0); - ASSERT_DOUBLE_EQ(bonus[2].quat[2], 0.0); - ASSERT_DOUBLE_EQ(bonus[2].quat[3], 0.0); - ASSERT_DOUBLE_EQ(bonus[3].quat[0], 0.9351131265310294); - ASSERT_DOUBLE_EQ(bonus[3].quat[1], 0.25056280708573159); - ASSERT_DOUBLE_EQ(bonus[3].quat[2], 0.0); - ASSERT_DOUBLE_EQ(bonus[3].quat[3], 0.25056280708573159); + ASSERT_NEAR(bonus[0].shape[0], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[0].shape[1], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[0].shape[2], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[1].shape[0], 1.5, 1.0e-14); + ASSERT_NEAR(bonus[1].shape[1], 0.4, 1.0e-14); + ASSERT_NEAR(bonus[1].shape[2], 0.55, 1.0e-14); + ASSERT_NEAR(bonus[2].shape[0], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[2].shape[1], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[2].shape[2], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[3].shape[0], 1.5, 1.0e-14); + ASSERT_NEAR(bonus[3].shape[1], 0.4, 1.0e-14); + ASSERT_NEAR(bonus[3].shape[2], 0.55, 1.0e-14); + ASSERT_NEAR(bonus[0].quat[0], 1.0, 1.0e-14); + ASSERT_NEAR(bonus[0].quat[1], 0.0, 1.0e-14); + ASSERT_NEAR(bonus[0].quat[2], 0.0, 1.0e-14); + ASSERT_NEAR(bonus[0].quat[3], 0.0, 1.0e-14); + ASSERT_NEAR(bonus[1].quat[0], 0.9351131265310294, 1.0e-14); + ASSERT_NEAR(bonus[1].quat[1], 0.25056280708573159, 1.0e-14); + ASSERT_NEAR(bonus[1].quat[2], 0.0, 1.0e-14); + ASSERT_NEAR(bonus[1].quat[3], 0.25056280708573159, 1.0e-14); + ASSERT_NEAR(bonus[2].quat[0], 1.0, 1.0e-14); + ASSERT_NEAR(bonus[2].quat[1], 0.0, 1.0e-14); + ASSERT_NEAR(bonus[2].quat[2], 0.0, 1.0e-14); + ASSERT_NEAR(bonus[2].quat[3], 0.0, 1.0e-14); + ASSERT_NEAR(bonus[3].quat[0], 0.9351131265310294, 1.0e-14); + ASSERT_NEAR(bonus[3].quat[1], 0.25056280708573159, 1.0e-14); + ASSERT_NEAR(bonus[3].quat[2], 0.0, 1.0e-14); + ASSERT_NEAR(bonus[3].quat[3], 0.25056280708573159, 1.0e-14); } TEST_F(AtomStyleTest, line) @@ -1945,42 +1949,42 @@ TEST_F(AtomStyleTest, line) auto rmass = lmp->atom->rmass; auto avec = (AtomVecLine *)lmp->atom->avec; auto bonus = avec->bonus; - ASSERT_DOUBLE_EQ(x[GETIDX(1)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][2], 0.0); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][2], 0.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][2], 0.0); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][2], 0.0); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][0], 3.0); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][1], 0.0); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][2], 0.0); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][0], 0.0); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][1], -3.0); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(5)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(5)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(5)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(6)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(6)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(6)][2], 0.0); + ASSERT_NEAR(x[GETIDX(1)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][2], 0.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][2], 0.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][2], 0.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][2], 0.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][0], 3.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][1], 0.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][2], 0.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][0], 0.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][1], -3.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(5)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(5)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(5)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(6)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(6)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(6)][2], 0.0, 1.0e-14); ASSERT_EQ(type[GETIDX(1)], 1); ASSERT_EQ(type[GETIDX(2)], 1); ASSERT_EQ(type[GETIDX(3)], 2); @@ -1993,21 +1997,21 @@ TEST_F(AtomStyleTest, line) ASSERT_EQ(line[GETIDX(4)], 3); ASSERT_EQ(line[GETIDX(5)], -1); ASSERT_EQ(line[GETIDX(6)], -1); - ASSERT_DOUBLE_EQ(rmass[GETIDX(1)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(2)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(3)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(4)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(5)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(6)], 4.4); + ASSERT_NEAR(rmass[GETIDX(1)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(2)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(3)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(4)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(5)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(6)], 4.4, 1.0e-14); - ASSERT_DOUBLE_EQ(bonus[0].length, 2.0); - ASSERT_DOUBLE_EQ(bonus[0].theta, 0.0); - ASSERT_DOUBLE_EQ(bonus[1].length, 2.0); - ASSERT_DOUBLE_EQ(bonus[1].theta, MathConst::MY_PI * 0.5); - ASSERT_DOUBLE_EQ(bonus[2].length, 3.0); - ASSERT_DOUBLE_EQ(bonus[2].theta, MathConst::MY_PI / 6.0); - ASSERT_DOUBLE_EQ(bonus[3].length, 3.0); - ASSERT_DOUBLE_EQ(bonus[3].theta, MathConst::MY_PI / 3.0); + ASSERT_NEAR(bonus[0].length, 2.0, 1.0e-14); + ASSERT_NEAR(bonus[0].theta, 0.0, 1.0e-14); + ASSERT_NEAR(bonus[1].length, 2.0, 1.0e-14); + ASSERT_NEAR(bonus[1].theta, MathConst::MY_PI * 0.5, 1.0e-14); + ASSERT_NEAR(bonus[2].length, 3.0, 1.0e-14); + ASSERT_NEAR(bonus[2].theta, MathConst::MY_PI / 6.0, 1.0e-14); + ASSERT_NEAR(bonus[3].length, 3.0, 1.0e-14); + ASSERT_NEAR(bonus[3].theta, MathConst::MY_PI / 3.0, 1.0e-14); if (!verbose) ::testing::internal::CaptureStdout(); lmp->input->one("pair_coeff * *"); @@ -2016,7 +2020,9 @@ TEST_F(AtomStyleTest, line) lmp->input->one("write_restart test_atom_styles.restart"); lmp->input->one("clear"); lmp->input->one("read_restart test_atom_styles.restart"); - lmp->input->one("replicate 1 2 1"); + lmp->input->one("comm_style tiled"); + lmp->input->one("change_box all triclinic"); + lmp->input->one("replicate 1 2 1 bbox"); if (!verbose) ::testing::internal::GetCapturedStdout(); ASSERT_THAT(std::string(lmp->atom->atom_style), Eq("line")); ASSERT_NE(lmp->atom->avec, nullptr); @@ -2052,23 +2058,23 @@ TEST_F(AtomStyleTest, line) ASSERT_EQ(line[GETIDX(9)], 3); ASSERT_EQ(line[GETIDX(11)], -1); ASSERT_EQ(line[GETIDX(12)], -1); - ASSERT_DOUBLE_EQ(rmass[GETIDX(1)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(3)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(5)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(6)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(7)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(9)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(11)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(12)], 4.4); + ASSERT_NEAR(rmass[GETIDX(1)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(3)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(5)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(6)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(7)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(9)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(11)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(12)], 4.4, 1.0e-14); - ASSERT_DOUBLE_EQ(bonus[0].length, 2.0); - ASSERT_DOUBLE_EQ(bonus[0].theta, 0.0); - ASSERT_DOUBLE_EQ(bonus[1].length, 3.0); - ASSERT_DOUBLE_EQ(bonus[1].theta, MathConst::MY_PI / 6.0); - ASSERT_DOUBLE_EQ(bonus[2].length, 2.0); - ASSERT_DOUBLE_EQ(bonus[2].theta, 0.0); - ASSERT_DOUBLE_EQ(bonus[3].length, 3.0); - ASSERT_DOUBLE_EQ(bonus[3].theta, MathConst::MY_PI / 6.0); + ASSERT_NEAR(bonus[0].length, 2.0, 1.0e-14); + ASSERT_NEAR(bonus[0].theta, 0.0, 1.0e-14); + ASSERT_NEAR(bonus[1].length, 3.0, 1.0e-14); + ASSERT_NEAR(bonus[1].theta, MathConst::MY_PI / 6.0, 1.0e-14); + ASSERT_NEAR(bonus[2].length, 2.0, 1.0e-14); + ASSERT_NEAR(bonus[2].theta, 0.0, 1.0e-14); + ASSERT_NEAR(bonus[3].length, 3.0, 1.0e-14); + ASSERT_NEAR(bonus[3].theta, MathConst::MY_PI / 6.0, 1.0e-14); if (!verbose) ::testing::internal::CaptureStdout(); lmp->input->one("reset_atom_ids"); @@ -2097,23 +2103,23 @@ TEST_F(AtomStyleTest, line) ASSERT_EQ(line[GETIDX(6)], -1); ASSERT_EQ(line[GETIDX(7)], 3); ASSERT_EQ(line[GETIDX(8)], -1); - ASSERT_DOUBLE_EQ(rmass[GETIDX(1)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(2)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(3)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(4)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(5)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(6)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(7)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(8)], 4.4); + ASSERT_NEAR(rmass[GETIDX(1)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(2)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(3)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(4)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(5)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(6)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(7)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(8)], 4.4, 1.0e-14); - ASSERT_DOUBLE_EQ(bonus[0].length, 2.0); - ASSERT_DOUBLE_EQ(bonus[0].theta, 0.0); - ASSERT_DOUBLE_EQ(bonus[1].length, 3.0); - ASSERT_DOUBLE_EQ(bonus[1].theta, MathConst::MY_PI / 6.0); - ASSERT_DOUBLE_EQ(bonus[2].length, 2.0); - ASSERT_DOUBLE_EQ(bonus[2].theta, 0.0); - ASSERT_DOUBLE_EQ(bonus[3].length, 3.0); - ASSERT_DOUBLE_EQ(bonus[3].theta, MathConst::MY_PI / 6.0); + ASSERT_NEAR(bonus[0].length, 2.0, 1.0e-14); + ASSERT_NEAR(bonus[0].theta, 0.0, 1.0e-14); + ASSERT_NEAR(bonus[1].length, 3.0, 1.0e-14); + ASSERT_NEAR(bonus[1].theta, MathConst::MY_PI / 6.0, 1.0e-14); + ASSERT_NEAR(bonus[2].length, 2.0, 1.0e-14); + ASSERT_NEAR(bonus[2].theta, 0.0, 1.0e-14); + ASSERT_NEAR(bonus[3].length, 3.0, 1.0e-14); + ASSERT_NEAR(bonus[3].theta, MathConst::MY_PI / 6.0, 1.0e-14); } TEST_F(AtomStyleTest, tri) @@ -2393,42 +2399,42 @@ TEST_F(AtomStyleTest, tri) auto radius = lmp->atom->radius; auto avec = (AtomVecTri *)lmp->atom->avec; auto bonus = avec->bonus; - ASSERT_DOUBLE_EQ(x[GETIDX(1)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][2], 0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][2], -0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][2], -0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][2], 0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][2], -2.1); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][2], 2.1); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(5)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(5)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(5)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(6)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(6)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(6)][2], 0.0); + ASSERT_NEAR(x[GETIDX(1)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][2], 0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][2], -0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][2], -0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][2], 0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][2], -2.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][2], 2.1, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(5)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(5)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(5)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(6)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(6)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(6)][2], 0.0, 1.0e-14); ASSERT_EQ(type[GETIDX(1)], 1); ASSERT_EQ(type[GETIDX(2)], 1); ASSERT_EQ(type[GETIDX(3)], 2); @@ -2441,18 +2447,18 @@ TEST_F(AtomStyleTest, tri) ASSERT_EQ(tri[GETIDX(4)], 3); ASSERT_EQ(tri[GETIDX(5)], -1); ASSERT_EQ(tri[GETIDX(6)], -1); - ASSERT_DOUBLE_EQ(rmass[GETIDX(1)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(2)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(3)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(4)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(5)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(6)], 4.4); - ASSERT_DOUBLE_EQ(radius[GETIDX(1)], 0.5773502691896258); - ASSERT_DOUBLE_EQ(radius[GETIDX(2)], 0.5773502691896258); - ASSERT_DOUBLE_EQ(radius[GETIDX(3)], 0.8660254037844390); - ASSERT_DOUBLE_EQ(radius[GETIDX(4)], 0.8660254037844390); - ASSERT_DOUBLE_EQ(radius[GETIDX(5)], 0.5); - ASSERT_DOUBLE_EQ(radius[GETIDX(6)], 0.5); + ASSERT_NEAR(rmass[GETIDX(1)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(2)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(3)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(4)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(5)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(6)], 4.4, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(1)], 0.5773502691896258, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(2)], 0.5773502691896258, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(3)], 0.8660254037844390, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(4)], 0.8660254037844390, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(5)], 0.5, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(6)], 0.5, 1.0e-14); ASSERT_NEAR(bonus[0].inertia[0], 0.072258416330334363, 1.0e-14); ASSERT_NEAR(bonus[0].inertia[1], 13.94589575227541, 1.0e-14); @@ -2525,7 +2531,8 @@ TEST_F(AtomStyleTest, tri) lmp->input->one("write_restart test_atom_styles.restart"); lmp->input->one("clear"); lmp->input->one("read_restart test_atom_styles.restart"); - lmp->input->one("replicate 1 1 2 bbox"); + lmp->input->one("change_box all triclinic"); + lmp->input->one("replicate 1 1 2"); if (!verbose) ::testing::internal::GetCapturedStdout(); ASSERT_THAT(std::string(lmp->atom->atom_style), Eq("tri")); ASSERT_NE(lmp->atom->avec, nullptr); @@ -2562,22 +2569,22 @@ TEST_F(AtomStyleTest, tri) ASSERT_EQ(tri[GETIDX(9)], 3); ASSERT_EQ(tri[GETIDX(11)], -1); ASSERT_EQ(tri[GETIDX(12)], -1); - ASSERT_DOUBLE_EQ(rmass[GETIDX(1)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(3)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(5)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(6)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(7)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(9)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(11)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(12)], 4.4); - ASSERT_DOUBLE_EQ(radius[GETIDX(1)], 0.5773502691896258); - ASSERT_DOUBLE_EQ(radius[GETIDX(3)], 0.8660254037844390); - ASSERT_DOUBLE_EQ(radius[GETIDX(5)], 0.5); - ASSERT_DOUBLE_EQ(radius[GETIDX(6)], 0.5); - ASSERT_DOUBLE_EQ(radius[GETIDX(7)], 0.5773502691896258); - ASSERT_DOUBLE_EQ(radius[GETIDX(9)], 0.8660254037844390); - ASSERT_DOUBLE_EQ(radius[GETIDX(11)], 0.5); - ASSERT_DOUBLE_EQ(radius[GETIDX(12)], 0.5); + ASSERT_NEAR(rmass[GETIDX(1)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(3)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(5)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(6)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(7)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(9)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(11)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(12)], 4.4, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(1)], 0.5773502691896258, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(3)], 0.8660254037844390, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(5)], 0.5, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(6)], 0.5, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(7)], 0.5773502691896258, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(9)], 0.8660254037844390, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(11)], 0.5, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(12)], 0.5, 1.0e-14); ASSERT_NEAR(bonus[0].inertia[0], 0.072258416330334363, 1.0e-14); ASSERT_NEAR(bonus[0].inertia[1], 13.94589575227541, 1.0e-14); @@ -2973,60 +2980,60 @@ TEST_F(AtomStyleTest, body_nparticle) auto radius = lmp->atom->radius; auto angmom = lmp->atom->angmom; auto bonus = avec->bonus; - ASSERT_DOUBLE_EQ(x[GETIDX(1)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][2], 0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][2], -0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][2], -0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][2], 0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][2], -2.1); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][2], 2.1); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(5)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(5)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(5)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(6)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(6)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(6)][2], 0.0); + ASSERT_NEAR(x[GETIDX(1)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][2], 0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][2], -0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][2], -0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][2], 0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][2], -2.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][2], 2.1, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(5)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(5)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(5)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(6)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(6)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(6)][2], 0.0, 1.0e-14); ASSERT_EQ(type[GETIDX(1)], 1); ASSERT_EQ(type[GETIDX(2)], 1); ASSERT_EQ(type[GETIDX(3)], 2); ASSERT_EQ(type[GETIDX(4)], 2); ASSERT_EQ(type[GETIDX(5)], 3); ASSERT_EQ(type[GETIDX(6)], 3); - ASSERT_DOUBLE_EQ(angmom[GETIDX(1)][0], 0.0); - ASSERT_DOUBLE_EQ(angmom[GETIDX(1)][1], 0.0); - ASSERT_DOUBLE_EQ(angmom[GETIDX(1)][2], 0.0); - ASSERT_DOUBLE_EQ(angmom[GETIDX(2)][0], 0.0); - ASSERT_DOUBLE_EQ(angmom[GETIDX(2)][1], 0.0); - ASSERT_DOUBLE_EQ(angmom[GETIDX(2)][2], 0.0); - ASSERT_DOUBLE_EQ(angmom[GETIDX(3)][0], 0.0); - ASSERT_DOUBLE_EQ(angmom[GETIDX(3)][1], 0.0); - ASSERT_DOUBLE_EQ(angmom[GETIDX(3)][2], 0.0); - ASSERT_DOUBLE_EQ(angmom[GETIDX(4)][0], 0.0); - ASSERT_DOUBLE_EQ(angmom[GETIDX(4)][1], 0.0); - ASSERT_DOUBLE_EQ(angmom[GETIDX(4)][2], 0.0); + ASSERT_NEAR(angmom[GETIDX(1)][0], 0.0, 1.0e-14); + ASSERT_NEAR(angmom[GETIDX(1)][1], 0.0, 1.0e-14); + ASSERT_NEAR(angmom[GETIDX(1)][2], 0.0, 1.0e-14); + ASSERT_NEAR(angmom[GETIDX(2)][0], 0.0, 1.0e-14); + ASSERT_NEAR(angmom[GETIDX(2)][1], 0.0, 1.0e-14); + ASSERT_NEAR(angmom[GETIDX(2)][2], 0.0, 1.0e-14); + ASSERT_NEAR(angmom[GETIDX(3)][0], 0.0, 1.0e-14); + ASSERT_NEAR(angmom[GETIDX(3)][1], 0.0, 1.0e-14); + ASSERT_NEAR(angmom[GETIDX(3)][2], 0.0, 1.0e-14); + ASSERT_NEAR(angmom[GETIDX(4)][0], 0.0, 1.0e-14); + ASSERT_NEAR(angmom[GETIDX(4)][1], 0.0, 1.0e-14); + ASSERT_NEAR(angmom[GETIDX(4)][2], 0.0, 1.0e-14); ASSERT_EQ(body[GETIDX(1)], 0); ASSERT_EQ(body[GETIDX(2)], 1); @@ -3034,18 +3041,18 @@ TEST_F(AtomStyleTest, body_nparticle) ASSERT_EQ(body[GETIDX(4)], 3); ASSERT_EQ(body[GETIDX(5)], -1); ASSERT_EQ(body[GETIDX(6)], -1); - ASSERT_DOUBLE_EQ(rmass[GETIDX(1)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(2)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(3)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(4)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(5)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(6)], 4.4); - ASSERT_DOUBLE_EQ(radius[GETIDX(1)], 0.5); - ASSERT_DOUBLE_EQ(radius[GETIDX(2)], 0.5); - ASSERT_DOUBLE_EQ(radius[GETIDX(3)], 0.5); - ASSERT_DOUBLE_EQ(radius[GETIDX(4)], 0.5); - ASSERT_DOUBLE_EQ(radius[GETIDX(5)], 0.5); - ASSERT_DOUBLE_EQ(radius[GETIDX(6)], 0.5); + ASSERT_NEAR(rmass[GETIDX(1)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(2)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(3)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(4)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(5)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(6)], 4.4, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(1)], 0.5, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(2)], 0.5, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(3)], 0.5, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(4)], 0.5, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(5)], 0.5, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(6)], 0.5, 1.0e-14); ASSERT_NEAR(bonus[0].inertia[0], 2.0, 1.0e-14); ASSERT_NEAR(bonus[0].inertia[1], 2.0, 1.0e-14); @@ -3145,60 +3152,60 @@ TEST_F(AtomStyleTest, body_nparticle) angmom = lmp->atom->angmom; avec = (AtomVecBody *)lmp->atom->avec; bonus = avec->bonus; - ASSERT_DOUBLE_EQ(x[GETIDX(1)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][2], 0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][2], -0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][2], -0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][2], 0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][2], -2.1); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][2], 2.1); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(5)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(5)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(5)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(6)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(6)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(6)][2], 0.0); + ASSERT_NEAR(x[GETIDX(1)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][2], 0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][2], -0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][2], -0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][2], 0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][2], -2.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][2], 2.1, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(5)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(5)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(5)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(6)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(6)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(6)][2], 0.0, 1.0e-14); ASSERT_EQ(type[GETIDX(1)], 1); ASSERT_EQ(type[GETIDX(2)], 1); ASSERT_EQ(type[GETIDX(3)], 2); ASSERT_EQ(type[GETIDX(4)], 2); ASSERT_EQ(type[GETIDX(5)], 3); ASSERT_EQ(type[GETIDX(6)], 3); - ASSERT_DOUBLE_EQ(angmom[GETIDX(1)][0], 0.0); - ASSERT_DOUBLE_EQ(angmom[GETIDX(1)][1], 0.0); - ASSERT_DOUBLE_EQ(angmom[GETIDX(1)][2], 0.0); - ASSERT_DOUBLE_EQ(angmom[GETIDX(2)][0], 0.0); - ASSERT_DOUBLE_EQ(angmom[GETIDX(2)][1], 0.0); - ASSERT_DOUBLE_EQ(angmom[GETIDX(2)][2], 0.0); - ASSERT_DOUBLE_EQ(angmom[GETIDX(3)][0], 0.0); - ASSERT_DOUBLE_EQ(angmom[GETIDX(3)][1], 0.0); - ASSERT_DOUBLE_EQ(angmom[GETIDX(3)][2], 0.0); - ASSERT_DOUBLE_EQ(angmom[GETIDX(4)][0], 0.0); - ASSERT_DOUBLE_EQ(angmom[GETIDX(4)][1], 0.0); - ASSERT_DOUBLE_EQ(angmom[GETIDX(4)][2], 0.0); + ASSERT_NEAR(angmom[GETIDX(1)][0], 0.0, 1.0e-14); + ASSERT_NEAR(angmom[GETIDX(1)][1], 0.0, 1.0e-14); + ASSERT_NEAR(angmom[GETIDX(1)][2], 0.0, 1.0e-14); + ASSERT_NEAR(angmom[GETIDX(2)][0], 0.0, 1.0e-14); + ASSERT_NEAR(angmom[GETIDX(2)][1], 0.0, 1.0e-14); + ASSERT_NEAR(angmom[GETIDX(2)][2], 0.0, 1.0e-14); + ASSERT_NEAR(angmom[GETIDX(3)][0], 0.0, 1.0e-14); + ASSERT_NEAR(angmom[GETIDX(3)][1], 0.0, 1.0e-14); + ASSERT_NEAR(angmom[GETIDX(3)][2], 0.0, 1.0e-14); + ASSERT_NEAR(angmom[GETIDX(4)][0], 0.0, 1.0e-14); + ASSERT_NEAR(angmom[GETIDX(4)][1], 0.0, 1.0e-14); + ASSERT_NEAR(angmom[GETIDX(4)][2], 0.0, 1.0e-14); ASSERT_EQ(body[GETIDX(1)], 0); ASSERT_EQ(body[GETIDX(2)], 1); @@ -3206,18 +3213,18 @@ TEST_F(AtomStyleTest, body_nparticle) ASSERT_EQ(body[GETIDX(4)], 3); ASSERT_EQ(body[GETIDX(5)], -1); ASSERT_EQ(body[GETIDX(6)], -1); - ASSERT_DOUBLE_EQ(rmass[GETIDX(1)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(2)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(3)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(4)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(5)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(6)], 4.4); - ASSERT_DOUBLE_EQ(radius[GETIDX(1)], 0.5); - ASSERT_DOUBLE_EQ(radius[GETIDX(2)], 0.5); - ASSERT_DOUBLE_EQ(radius[GETIDX(3)], 0.5); - ASSERT_DOUBLE_EQ(radius[GETIDX(4)], 0.5); - ASSERT_DOUBLE_EQ(radius[GETIDX(5)], 0.5); - ASSERT_DOUBLE_EQ(radius[GETIDX(6)], 0.5); + ASSERT_NEAR(rmass[GETIDX(1)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(2)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(3)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(4)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(5)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(6)], 4.4, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(1)], 0.5, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(2)], 0.5, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(3)], 0.5, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(4)], 0.5, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(5)], 0.5, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(6)], 0.5, 1.0e-14); ASSERT_NEAR(bonus[0].inertia[0], 2.0, 1.0e-14); ASSERT_NEAR(bonus[0].inertia[1], 2.0, 1.0e-14); @@ -3279,6 +3286,7 @@ TEST_F(AtomStyleTest, body_nparticle) lmp->input->one("write_restart test_atom_styles.restart"); lmp->input->one("clear"); lmp->input->one("read_restart test_atom_styles.restart"); + lmp->input->one("comm_style tiled"); lmp->input->one("replicate 1 1 2"); if (!verbose) ::testing::internal::GetCapturedStdout(); ASSERT_THAT(std::string(lmp->atom->atom_style), Eq("body")); @@ -3317,22 +3325,22 @@ TEST_F(AtomStyleTest, body_nparticle) ASSERT_EQ(body[GETIDX(9)], 3); ASSERT_EQ(body[GETIDX(11)], -1); ASSERT_EQ(body[GETIDX(12)], -1); - ASSERT_DOUBLE_EQ(rmass[GETIDX(1)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(3)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(5)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(6)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(7)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(9)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(11)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(12)], 4.4); - ASSERT_DOUBLE_EQ(radius[GETIDX(1)], 0.5); - ASSERT_DOUBLE_EQ(radius[GETIDX(3)], 0.5); - ASSERT_DOUBLE_EQ(radius[GETIDX(5)], 0.5); - ASSERT_DOUBLE_EQ(radius[GETIDX(6)], 0.5); - ASSERT_DOUBLE_EQ(radius[GETIDX(7)], 0.5); - ASSERT_DOUBLE_EQ(radius[GETIDX(9)], 0.5); - ASSERT_DOUBLE_EQ(radius[GETIDX(11)], 0.5); - ASSERT_DOUBLE_EQ(radius[GETIDX(12)], 0.5); + ASSERT_NEAR(rmass[GETIDX(1)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(3)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(5)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(6)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(7)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(9)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(11)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(12)], 4.4, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(1)], 0.5, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(3)], 0.5, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(5)], 0.5, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(6)], 0.5, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(7)], 0.5, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(9)], 0.5, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(11)], 0.5, 1.0e-14); + ASSERT_NEAR(radius[GETIDX(12)], 0.5, 1.0e-14); ASSERT_NEAR(bonus[0].inertia[0], 2.0, 1.0e-14); ASSERT_NEAR(bonus[0].inertia[1], 2.0, 1.0e-14); ASSERT_NEAR(bonus[0].inertia[2], 0.0, 1.0e-14); @@ -3766,42 +3774,42 @@ TEST_F(AtomStyleTest, bond) bond_type = lmp->atom->bond_type; bond_atom = lmp->atom->bond_atom; - ASSERT_DOUBLE_EQ(x[GETIDX(1)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][2], 0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][2], -0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][2], -0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][2], 0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][2], -2.1); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][2], 2.1); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(5)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(5)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(5)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(6)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(6)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(6)][2], 0.0); + ASSERT_NEAR(x[GETIDX(1)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][2], 0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][2], -0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][2], -0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][2], 0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][2], -2.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][2], 2.1, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(5)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(5)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(5)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(6)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(6)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(6)][2], 0.0, 1.0e-14); ASSERT_EQ(type[GETIDX(1)], 1); ASSERT_EQ(type[GETIDX(2)], 1); ASSERT_EQ(type[GETIDX(3)], 2); @@ -4328,42 +4336,42 @@ TEST_F(AtomStyleTest, angle) num_angle = lmp->atom->num_angle; angle_type = lmp->atom->angle_type; - ASSERT_DOUBLE_EQ(x[GETIDX(1)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][2], 0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][2], -0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][2], -0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][2], 0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][2], -2.1); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][2], 2.1); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(5)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(5)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(5)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(6)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(6)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(6)][2], 0.0); + ASSERT_NEAR(x[GETIDX(1)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][2], 0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][2], -0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][2], -0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][2], 0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][2], -2.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][2], 2.1, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(5)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(5)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(5)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(6)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(6)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(6)][2], 0.0, 1.0e-14); ASSERT_EQ(type[GETIDX(1)], 1); ASSERT_EQ(type[GETIDX(2)], 1); ASSERT_EQ(type[GETIDX(3)], 2); @@ -4779,83 +4787,83 @@ TEST_F(AtomStyleTest, full_ellipsoid) auto avec = (AtomVecEllipsoid *)hybrid->styles[1]; auto bonus = avec->bonus; - ASSERT_DOUBLE_EQ(x[GETIDX(1)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(1)][2], 0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][0], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(2)][2], -0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(3)][2], -0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(4)][2], 0.1); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][1], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(5)][2], -2.1); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][0], 2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][1], -2.0); - ASSERT_DOUBLE_EQ(x[GETIDX(6)][2], 2.1); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(1)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(2)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(3)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(4)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(5)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(5)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(5)][2], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(6)][0], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(6)][1], 0.0); - ASSERT_DOUBLE_EQ(v[GETIDX(6)][2], 0.0); + ASSERT_NEAR(x[GETIDX(1)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(1)][2], 0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][0], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(2)][2], -0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(3)][2], -0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(4)][2], 0.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][1], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(5)][2], -2.1, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][0], 2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][1], -2.0, 1.0e-14); + ASSERT_NEAR(x[GETIDX(6)][2], 2.1, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(1)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(2)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(3)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(4)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(5)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(5)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(5)][2], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(6)][0], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(6)][1], 0.0, 1.0e-14); + ASSERT_NEAR(v[GETIDX(6)][2], 0.0, 1.0e-14); ASSERT_EQ(type[GETIDX(1)], 1); ASSERT_EQ(type[GETIDX(2)], 1); ASSERT_EQ(type[GETIDX(3)], 2); ASSERT_EQ(type[GETIDX(4)], 2); ASSERT_EQ(type[GETIDX(5)], 3); ASSERT_EQ(type[GETIDX(6)], 3); - ASSERT_DOUBLE_EQ(q[GETIDX(1)], -0.5); - ASSERT_DOUBLE_EQ(q[GETIDX(2)], 0.5); - ASSERT_DOUBLE_EQ(q[GETIDX(3)], -1.0); - ASSERT_DOUBLE_EQ(q[GETIDX(4)], 1.0); - ASSERT_DOUBLE_EQ(q[GETIDX(5)], 2.0); - ASSERT_DOUBLE_EQ(q[GETIDX(6)], -2.0); + ASSERT_NEAR(q[GETIDX(1)], -0.5, 1.0e-14); + ASSERT_NEAR(q[GETIDX(2)], 0.5, 1.0e-14); + ASSERT_NEAR(q[GETIDX(3)], -1.0, 1.0e-14); + ASSERT_NEAR(q[GETIDX(4)], 1.0, 1.0e-14); + ASSERT_NEAR(q[GETIDX(5)], 2.0, 1.0e-14); + ASSERT_NEAR(q[GETIDX(6)], -2.0, 1.0e-14); ASSERT_EQ(ellipsoid[GETIDX(1)], 0); ASSERT_EQ(ellipsoid[GETIDX(2)], 1); ASSERT_EQ(ellipsoid[GETIDX(3)], 2); ASSERT_EQ(ellipsoid[GETIDX(4)], 3); ASSERT_EQ(ellipsoid[GETIDX(5)], -1); ASSERT_EQ(ellipsoid[GETIDX(6)], -1); - ASSERT_DOUBLE_EQ(rmass[GETIDX(1)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(2)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(3)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(4)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(5)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(6)], 4.4); + ASSERT_NEAR(rmass[GETIDX(1)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(2)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(3)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(4)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(5)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(6)], 4.4, 1.0e-14); - ASSERT_DOUBLE_EQ(bonus[0].shape[0], 0.5); - ASSERT_DOUBLE_EQ(bonus[0].shape[1], 0.5); - ASSERT_DOUBLE_EQ(bonus[0].shape[2], 0.5); - ASSERT_DOUBLE_EQ(bonus[1].shape[0], 0.5); - ASSERT_DOUBLE_EQ(bonus[1].shape[1], 0.5); - ASSERT_DOUBLE_EQ(bonus[1].shape[2], 0.5); - ASSERT_DOUBLE_EQ(bonus[2].shape[0], 1.5); - ASSERT_DOUBLE_EQ(bonus[2].shape[1], 0.4); - ASSERT_DOUBLE_EQ(bonus[2].shape[2], 0.55); - ASSERT_DOUBLE_EQ(bonus[3].shape[0], 1.5); - ASSERT_DOUBLE_EQ(bonus[3].shape[1], 0.4); - ASSERT_DOUBLE_EQ(bonus[3].shape[2], 0.55); - ASSERT_DOUBLE_EQ(bonus[0].quat[0], 1.0); - ASSERT_DOUBLE_EQ(bonus[0].quat[1], 0.0); - ASSERT_DOUBLE_EQ(bonus[0].quat[2], 0.0); - ASSERT_DOUBLE_EQ(bonus[0].quat[3], 0.0); + ASSERT_NEAR(bonus[0].shape[0], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[0].shape[1], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[0].shape[2], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[1].shape[0], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[1].shape[1], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[1].shape[2], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[2].shape[0], 1.5, 1.0e-14); + ASSERT_NEAR(bonus[2].shape[1], 0.4, 1.0e-14); + ASSERT_NEAR(bonus[2].shape[2], 0.55, 1.0e-14); + ASSERT_NEAR(bonus[3].shape[0], 1.5, 1.0e-14); + ASSERT_NEAR(bonus[3].shape[1], 0.4, 1.0e-14); + ASSERT_NEAR(bonus[3].shape[2], 0.55, 1.0e-14); + ASSERT_NEAR(bonus[0].quat[0], 1.0, 1.0e-14); + ASSERT_NEAR(bonus[0].quat[1], 0.0, 1.0e-14); + ASSERT_NEAR(bonus[0].quat[2], 0.0, 1.0e-14); + ASSERT_NEAR(bonus[0].quat[3], 0.0, 1.0e-14); ASSERT_NEAR(bonus[1].quat[0], sqrt(0.5), 1.0e-14); ASSERT_NEAR(bonus[1].quat[1], 0.0, 1.0e-14); ASSERT_NEAR(bonus[1].quat[2], sqrt(0.5), 1.0e-14); @@ -4918,27 +4926,27 @@ TEST_F(AtomStyleTest, full_ellipsoid) ASSERT_EQ(ellipsoid[GETIDX(9)], 3); ASSERT_EQ(ellipsoid[GETIDX(11)], -1); ASSERT_EQ(ellipsoid[GETIDX(12)], -1); - ASSERT_DOUBLE_EQ(rmass[GETIDX(1)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(3)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(5)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(6)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(7)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(9)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(11)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(12)], 4.4); + ASSERT_NEAR(rmass[GETIDX(1)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(3)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(5)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(6)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(7)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(9)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(11)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(12)], 4.4, 1.0e-14); - ASSERT_DOUBLE_EQ(bonus[0].shape[0], 0.5); - ASSERT_DOUBLE_EQ(bonus[0].shape[1], 0.5); - ASSERT_DOUBLE_EQ(bonus[0].shape[2], 0.5); - ASSERT_DOUBLE_EQ(bonus[1].shape[0], 1.5); - ASSERT_DOUBLE_EQ(bonus[1].shape[1], 0.4); - ASSERT_DOUBLE_EQ(bonus[1].shape[2], 0.55); - ASSERT_DOUBLE_EQ(bonus[2].shape[0], 0.5); - ASSERT_DOUBLE_EQ(bonus[2].shape[1], 0.5); - ASSERT_DOUBLE_EQ(bonus[2].shape[2], 0.5); - ASSERT_DOUBLE_EQ(bonus[3].shape[0], 1.5); - ASSERT_DOUBLE_EQ(bonus[3].shape[1], 0.4); - ASSERT_DOUBLE_EQ(bonus[3].shape[2], 0.55); + ASSERT_NEAR(bonus[0].shape[0], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[0].shape[1], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[0].shape[2], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[1].shape[0], 1.5, 1.0e-14); + ASSERT_NEAR(bonus[1].shape[1], 0.4, 1.0e-14); + ASSERT_NEAR(bonus[1].shape[2], 0.55, 1.0e-14); + ASSERT_NEAR(bonus[2].shape[0], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[2].shape[1], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[2].shape[2], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[3].shape[0], 1.5, 1.0e-14); + ASSERT_NEAR(bonus[3].shape[1], 0.4, 1.0e-14); + ASSERT_NEAR(bonus[3].shape[2], 0.55, 1.0e-14); ASSERT_NEAR(bonus[0].quat[0], 1.0, 1.0e-14); ASSERT_NEAR(bonus[0].quat[1], 0.0, 1.0e-14); ASSERT_NEAR(bonus[0].quat[2], 0.0, 1.0e-14); @@ -4984,27 +4992,27 @@ TEST_F(AtomStyleTest, full_ellipsoid) ASSERT_EQ(ellipsoid[GETIDX(6)], -1); ASSERT_EQ(ellipsoid[GETIDX(7)], 3); ASSERT_EQ(ellipsoid[GETIDX(8)], -1); - ASSERT_DOUBLE_EQ(rmass[GETIDX(1)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(2)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(3)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(4)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(5)], 4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(6)], 4.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(7)], 2.4); - ASSERT_DOUBLE_EQ(rmass[GETIDX(8)], 4.4); + ASSERT_NEAR(rmass[GETIDX(1)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(2)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(3)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(4)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(5)], 4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(6)], 4.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(7)], 2.4, 1.0e-14); + ASSERT_NEAR(rmass[GETIDX(8)], 4.4, 1.0e-14); - ASSERT_DOUBLE_EQ(bonus[0].shape[0], 0.5); - ASSERT_DOUBLE_EQ(bonus[0].shape[1], 0.5); - ASSERT_DOUBLE_EQ(bonus[0].shape[2], 0.5); - ASSERT_DOUBLE_EQ(bonus[1].shape[0], 1.5); - ASSERT_DOUBLE_EQ(bonus[1].shape[1], 0.4); - ASSERT_DOUBLE_EQ(bonus[1].shape[2], 0.55); - ASSERT_DOUBLE_EQ(bonus[2].shape[0], 0.5); - ASSERT_DOUBLE_EQ(bonus[2].shape[1], 0.5); - ASSERT_DOUBLE_EQ(bonus[2].shape[2], 0.5); - ASSERT_DOUBLE_EQ(bonus[3].shape[0], 1.5); - ASSERT_DOUBLE_EQ(bonus[3].shape[1], 0.4); - ASSERT_DOUBLE_EQ(bonus[3].shape[2], 0.55); + ASSERT_NEAR(bonus[0].shape[0], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[0].shape[1], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[0].shape[2], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[1].shape[0], 1.5, 1.0e-14); + ASSERT_NEAR(bonus[1].shape[1], 0.4, 1.0e-14); + ASSERT_NEAR(bonus[1].shape[2], 0.55, 1.0e-14); + ASSERT_NEAR(bonus[2].shape[0], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[2].shape[1], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[2].shape[2], 0.5, 1.0e-14); + ASSERT_NEAR(bonus[3].shape[0], 1.5, 1.0e-14); + ASSERT_NEAR(bonus[3].shape[1], 0.4, 1.0e-14); + ASSERT_NEAR(bonus[3].shape[2], 0.55, 1.0e-14); ASSERT_NEAR(bonus[0].quat[0], 1.0, 1.0e-14); ASSERT_NEAR(bonus[0].quat[1], 0.0, 1.0e-14); ASSERT_NEAR(bonus[0].quat[2], 0.0, 1.0e-14);