예제 #1
0
def test_atoms_load_lmpdat__atom_type_labels_are_loaded_from_elements_if_no_comments(
):
    with Path("tests/test_atoms_load_save/atomic-masses-no-comments.lmpdat"
              ).open() as f:
        atoms = Atoms.load_lmpdat(f, atom_format="full")
    assert np.array_equal(atoms.atom_type_masses, [12., 14.])
    assert np.array_equal(atoms.atom_type_labels, ["C", "N"])
예제 #2
0
def test_atoms_load_lmpdat__if_masses_are_nonatomic_then_elements_are_type_ids(
):
    with Path(
            "tests/test_atoms_load_save/nonatomic-masses.lmpdat").open() as f:
        atoms = Atoms.load_lmpdat(f, atom_format="full")
    assert np.array_equal(atoms.atom_type_masses, [12., 1000.])
    assert np.array_equal(atoms.atom_type_elements, ["1", "2"])
예제 #3
0
def test_atoms_save_lmpdat__outputs_file_identical_to_input_file():
    with Path("tests/uio66/uio66-linker-arb-terms.lmpdat").open() as f:
        sin = StringIO(f.read())
        uio66_linker_ld = Atoms.load_lmpdat(sin, atom_format="full")

    sout = io.StringIO("")
    uio66_linker_ld.save_lmpdat(sout,
                                file_comment="uio66-linker-arb-terms.lmpdat")

    # output file code, in case we need to update the lmpdat file because of new format changes
    # with open("uio66-linker-arb-terms.lmpdat", "w") as f:
    #     sout.seek(0)
    #     f.write(sout.read())

    sout.seek(0)
    sin.seek(0)
    assert sout.read() == sin.read()
예제 #4
0
def test_atoms_load_lmpdat__atomic_masses_are_guessed_correctly():
    with Path("tests/test_atoms_load_save/atomic-masses.lmpdat").open() as f:
        atoms = Atoms.load_lmpdat(f, atom_format="full")
    assert np.array_equal(atoms.atom_type_elements, ["C", "N"])
예제 #5
0
def test_atoms_load_lmpdat__has_arrays_of_right_size():
    with Path("tests/uio66/uio66-linker-arb-terms.lmpdat").open() as f:
        atoms = Atoms.load_lmpdat(f, atom_format="full")

    check_uio66_arb_terms_arrays(atoms)
예제 #6
0
def uio66_linker_some_bonds():
    # this was a modified UIO-66-F linker with bonds defined for the C-F bond. The F's have been
    # replaced by H's.
    with Path("tests/uio66/uio66-linker.lmpdat").open() as fd:
        yield Atoms.load_lmpdat(fd, atom_format="atomic")
예제 #7
0
def uio66_linker_no_bonds():
    with Path("tests/uio66/uio66-linker-no-bonds.lmpdat").open() as fd:
        yield Atoms.load_lmpdat(fd, atom_format="atomic")