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])
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