def test__set_coordinates(): """ test geom.set_coordinates """ ref_geo = (('F', (0., 0., 0.)), ('C', (1.170155936996, 0.359360756989, -0.513323178859)), ('C', (-1.201356763194, -0.347546894407, -0.3408392500119)), ('Cl', (1., 1., 1.)), ('H', (1.731596406235, 2.324260256203, -0.4292070203467)), ('H', (-1.66730598121, -2.31375855306, -0.433949091252))) geo = geom.set_coordinates(C2H2CLF_GEO, {0: [0., 0., 0.], 3: [1., 1., 1.]}) assert geom.almost_equal(geo, ref_geo)
def test__argunique_coulomb_spectrum(): """ test geom.argunique_coulomb_spectrum """ ref_idxs = (0, 3, 5, 8) geo = C2H2CLF_GEO natms = len(geom.symbols(geo)) geos = [] for idx in range(10): axis = numpy.random.rand(3) angle = numpy.random.rand() geo = geom.rotate(geo, axis, angle) if idx in ref_idxs and idx != 0: idx_to_change = numpy.random.randint(0, natms) new_xyz = numpy.random.rand(3) geo = geom.set_coordinates(geo, {idx_to_change: new_xyz}) geos.append(geo) idxs = geom.argunique_coulomb_spectrum(geos) assert idxs == ref_idxs