Esempio n. 1
0
def test_centering_benzene_molecule_to_given_coordinates():
    """Tests molecule center for benzene"""
    benzene = Molecule(read=benzene_xyz)
    benzene.center([5, 0, -5])
    assert np.allclose(benzene.get_center(), [5, 0, -5])
    benzene.center()
    assert np.allclose(benzene.get_center(), [0, 0, 0])
    benzene.translate([0, 0, 7])
    assert np.allclose(benzene.get_center(), [0, 0, 7])
    benzene.rotate(([0, 0, 0], [0, 1, 0]), np.pi / 2)
    assert np.allclose(benzene.get_center(), [7, 0, 0])
    benzene.rotate(([0, 0, 0], [0, 1, 0]), np.pi / 2, center=True)
    assert np.allclose(benzene.get_center(), [7, 0, 0])
Esempio n. 2
0
def test_piyzaz_replication_2_2_2_with_centering():
    """Tests replicating PIYZAZ (CCDC) 2x2x2 with centering.
    Reference structure is generated using Mercury software."""
    piyzaz = Molecule(read=piyzaz111_xyz)
    piyzaz.set_cell(piyzaz_cell_parameters)
    piyzaz222 = piyzaz.replicate([2, 2, 2], center=True)

    # Move the reference structure so that it's centered to original cell position
    piyzaz222_ref = Molecule(read=piyzaz222_xyz)
    transvec = np.sum(piyzaz.cell.vectors, axis=0) * -1 / 2
    piyzaz222_ref.translate(transvec)
    assert np.allclose(piyzaz222.coordinates, piyzaz222_ref.coordinates)
    assert set(piyzaz222.atoms) == set(piyzaz222_ref.atoms)
    assert piyzaz222.cell.a == piyzaz.cell.a * 2
    assert piyzaz222.cell.b == piyzaz.cell.b * 2
    assert piyzaz222.cell.c == piyzaz.cell.c * 2
    assert piyzaz222.cell.alpha == piyzaz.cell.alpha
    assert piyzaz222.cell.beta == piyzaz.cell.beta
    assert piyzaz222.cell.gamma == piyzaz.cell.gamma