void Crystal::toggleUnitCell() { if (m_molecule->unitCell()) { m_molecule->setUnitCell(NULL); m_molecule->emitChanged(Molecule::UnitCell | Molecule::Removed); } else { UnitCell *cell = new UnitCell; cell->setCellParameters(static_cast<Real>(3.0), static_cast<Real>(3.0), static_cast<Real>(3.0), static_cast<Real>(90.0) * DEG_TO_RAD, static_cast<Real>(90.0) * DEG_TO_RAD, static_cast<Real>(90.0) * DEG_TO_RAD); m_molecule->setUnitCell(cell); m_molecule->emitChanged(Molecule::UnitCell | Molecule::Added); editUnitCell(); } }
TEST(UnitCellTest, cellParameters) { Real a = static_cast<Real>(2.0); Real b = static_cast<Real>(3.0); Real c = static_cast<Real>(4.0); Real alpha = static_cast<Real>(70 * DEG_TO_RAD); Real beta = static_cast<Real>(120 * DEG_TO_RAD); Real gamma = static_cast<Real>(85 * DEG_TO_RAD); UnitCell unitCell; unitCell.setCellParameters(a, b, c, alpha, beta, gamma); EXPECT_FLOAT_EQ(static_cast<float>(a), static_cast<float>(unitCell.a())); EXPECT_FLOAT_EQ(static_cast<float>(b), static_cast<float>(unitCell.b())); EXPECT_FLOAT_EQ(static_cast<float>(c), static_cast<float>(unitCell.c())); EXPECT_FLOAT_EQ(static_cast<float>(alpha), static_cast<float>(unitCell.alpha())); EXPECT_FLOAT_EQ(static_cast<float>(beta), static_cast<float>(unitCell.beta())); EXPECT_FLOAT_EQ(static_cast<float>(gamma), static_cast<float>(unitCell.gamma())); }