def test_mopac_3(configuration): check_symbols = [ "Cu", "Cu", "Cu", "Cu", "Br", "Br", "Br", "Br", "Br", "Br", "Br", "Br", "Br", "Br", ] check_smiles = "Br[Cu]([Cu][Cu](Br)(Br)(Br)Br)(Br)Br.Br[Cu](Br)Br" file_name = build_filenames.build_data_filename("Cu(II)4Br10(2-) (CIVNAW10).mop") read_structure_step.read(file_name, configuration) if configuration.atoms.symbols != check_symbols: print(configuration.atoms.symbols) smiles = configuration.canonical_smiles if smiles != check_smiles: print(smiles) assert configuration.atoms.symbols == check_symbols assert smiles == check_smiles
def test_mopac_6(configuration): check_symbols = ["F", "K", "F", "K"] check_smiles = "F[K].F[K]" file_name = build_filenames.build_data_filename("potassium fluoride, dimer.mop") read_structure_step.read(file_name, configuration) if configuration.atoms.symbols != check_symbols: print(configuration.atoms.symbols) smiles = configuration.canonical_smiles if smiles != check_smiles: print(smiles) assert configuration.atoms.symbols == check_symbols assert smiles == check_smiles
def test_mopac_2(configuration): check_symbols = ["Li", "F", "Li", "F", "Li", "F"] check_smiles = "[Li]F.[Li]F.[Li]F" file_name = build_filenames.build_data_filename("lithium fluoride, trimer.mop") read_structure_step.read(file_name, configuration) if configuration.atoms.symbols != check_symbols: print(configuration.atoms.symbols) smiles = configuration.canonical_smiles if smiles != check_smiles: print(smiles) assert configuration.atoms.symbols == check_symbols assert smiles == check_smiles
def test_extensions(configuration, file_name, extension): xyz_file = build_filenames.build_data_filename(file_name) read_structure_step.read(xyz_file, configuration, extension=extension) assert configuration.n_atoms == 3 assert all(atom in ["O", "H", "H"] for atom in configuration.atoms.symbols) coordinates = configuration.atoms.coordinates assert len(coordinates) == 3 assert all(len(point) == 3 for point in coordinates) assert configuration.bonds.n_bonds == 2 if str(configuration.bonds) != bond_string: print(configuration.bonds) assert str(configuration.bonds) == bond_string
def test_mopac(configuration): file_name = build_filenames.build_data_filename("acetonitrile.mop") read_structure_step.read(file_name, configuration) assert configuration.n_atoms == 6 assert all( atom in ["H", "H", "H", "C", "C", "N"] for atom in configuration.atoms.symbols ) coordinates = configuration.atoms.coordinates assert len(coordinates) == 6 assert all(len(point) == 3 for point in coordinates) assert configuration.bonds.n_bonds == 5 if str(configuration.bonds) != acetonitrile_bonds: print(configuration.bonds) assert str(configuration.bonds) == acetonitrile_bonds
def test_mopac_8(configuration): check_symbols = [ "C", "H", ] check_smiles = "[CH]" file_name = build_filenames.build_data_filename("methylidyne.mop") read_structure_step.read(file_name, configuration) if configuration.atoms.symbols != check_symbols: print(configuration.atoms.symbols) smiles = configuration.canonical_smiles if smiles != check_smiles: print(smiles) assert configuration.atoms.symbols == check_symbols assert smiles == check_smiles
def test_format(configuration, structure): file_name = build_filenames.build_data_filename(structure) read_structure_step.read(file_name, configuration) assert configuration.n_atoms == 10 assert all( atom in ["N", "N", "N", "N", "C", "C", "H", "H", "H", "H"] for atom in configuration.atoms.symbols ) coordinates = configuration.atoms.coordinates assert len(coordinates) == 10 assert all(len(point) == 3 for point in coordinates) assert configuration.bonds.n_bonds == 10 if "xyz" in structure: if str(configuration.bonds) != xyz_bond_string: print(configuration.bonds) assert str(configuration.bonds) == xyz_bond_string else: if str(configuration.bonds) != bond_string: print(configuration.bonds) assert str(configuration.bonds) == bond_string
def test_sanitize_file_format_regex_validation(configuration): with pytest.raises(NameError): read_structure_step.read("spc.xyz", configuration, extension=".xy-z")
def test_mopac_7(configuration): check_symbols = [ "Cr", "O", "O", "O", "O", "O", "O", "C", "C", "C", "C", "C", "C", "Cr", "C", "C", "O", "O", "O", "O", "O", "C", "C", "C", "O", "C", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", ] check_smiles = "C[C](O[Cr]12(OC(=O)C)O[C](O[Cr]2(O[C](O)C)(OC(=O)C)O[C](O1)C)C)O" file_name = build_filenames.build_data_filename("Cr_ACETCR.mop") read_structure_step.read(file_name, configuration) if configuration.atoms.symbols != check_symbols: print(configuration.atoms.symbols) smiles = configuration.canonical_smiles if smiles != check_smiles: print(smiles) assert configuration.atoms.symbols == check_symbols assert smiles == check_smiles
def test_mopac_4(configuration): check_symbols = [ "Eu", "N", "N", "N", "N", "N", "N", "O", "O", "O", "O", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", "H", ] check_smiles = ( r"C[C]1c2cccc(n2)/C(=N/CC[N@]2[Eu]34([N@@]1CC/N=C(\C)/c1nc([C]2C)ccc1)" r"(O[C](O3)C)O[C](O4)C)/C" ) file_name = build_filenames.build_data_filename( "RM1 63 Europium, CCDC entry LAPJAN.mop" ) read_structure_step.read(file_name, configuration) if configuration.atoms.symbols != check_symbols: print(configuration.atoms.symbols) smiles = configuration.canonical_smiles if smiles != check_smiles: print(smiles) assert configuration.atoms.symbols == check_symbols assert smiles == check_smiles
def test_unregistered_reader(configuration): with pytest.raises(KeyError): xyz_file = build_filenames.build_data_filename("spc.xyz") read_structure_step.read(xyz_file, configuration, extension=".mp3")
def test_empty_filename(configuration): with pytest.raises(NameError): read_structure_step.read("", configuration)
def test_read_filename_type(configuration, file_name): with pytest.raises(TypeError): read_structure_step.read(file_name, configuration)