openforcefield / cmiles

Generate canonical molecule identifiers for quantum chemistry database
https://cmiles.readthedocs.io
MIT License
23 stars 7 forks source link

Assorted maintenance updates #38

Closed mattwthompson closed 4 years ago

mattwthompson commented 4 years ago

Hmm, this is going to take some more nurturing than just updating the URL; enough time has passed since the last successful CI build that some other things seem to have changed.

mattwthompson commented 4 years ago

Here are the local errors in a slightly abbreviated form:

Click me!
cmiles/tests/test_cmiles.py::test_drug_bank_rd[C/N=C(\\c1cccc(c1)C[N@]2[C@@H]([C@@H]([C@H]([C@H]([N@](S2(=O)=O)Cc3ccccc3)COc4ccccc4)O)O)COc5ccccc5)/O-[O:1]=[S:45]1(=[O:2])[N@:34]([C:37]([c:32]2[c:25]([H:64])[c:17]([H:56])[c:12]([H:51])[c:18]([H:57])[c:26]2[H:65])([H:71])[H:72])[C@@:43]([C:39]([O:5][c:29]2[c:20]([H:59])[c:13]([H:52])[c:10]([H:49])[c:14]([H:53])[c:21]2[H:60])([H:75])[H:76])([H:81])[C@@:41]([O:7][H:47])([H:79])[C@:42]([O:8][H:48])([H:80])[C@:44]([C:40]([O:6][c:30]2[c:22]([H:61])[c:15]([H:54])[c:11]([H:50])[c:16]([H:55])[c:23]2[H:62])([H:77])[H:78])([H:82])[N@:35]1[C:38]([c:33]1[c:27]([H:66])[c:19]([H:58])[c:24]([H:63])[c:31](/[C:9](=[N:3]\\[C:36]([H:68])([H:69])[H:70])[O:4][H:46])[c:28]1[H:67])([H:73])[H:74]] FAILED [ 16%]
cmiles/tests/test_cmiles.py::test_drug_bank_rd[CO[C@@H](c1ccc(cc1)C[N@]2[C@@H]([C@@H]([C@H]([C@H]([N@@](S2(=O)=O)Cc3ccc(cc3)CO)COc4ccccc4)O)O)COc5ccccc5)O-[O:1]=[S:47]1(=[O:2])[N@:34]([C:38]([c:31]2[c:22]([H:64])[c:20]([H:62])[c:30]([C:37]([O:3][H:48])([H:73])[H:74])[c:21]([H:63])[c:23]2[H:65])([H:75])[H:76])[C@@:45]([C:40]([O:4][c:28]2[c:16]([H:58])[c:12]([H:54])[c:10]([H:52])[c:13]([H:55])[c:17]2[H:59])([H:79])[H:80])([H:86])[C@@:43]([O:8][H:50])([H:84])[C@:44]([O:9][H:51])([H:85])[C@:46]([C:41]([O:5][c:29]2[c:18]([H:60])[c:14]([H:56])[c:11]([H:53])[c:15]([H:57])[c:19]2[H:61])([H:81])[H:82])([H:87])[N@@:35]1[C:39]([c:32]1[c:24]([H:66])[c:26]([H:68])[c:33]([C@@:42]([O:6][H:49])([O:7][C:36]([H:70])([H:71])[H:72])[H:83])[c:27]([H:69])[c:25]1[H:67])([H:77])[H:78]] FAILED [ 33%]
cmiles/tests/test_cmiles.py::test_drug_bank_rd[C[C@@H]1C[N@@](CC[N@]1S(=O)(=O)c2ccc(cc2)[C@@](C)(C(F)(F)F)O)CC3(CC3)C(=O)N-[O:1]=[C:8]([N:15]([H:36])[H:37])[C:23]1([C:20]([N@:16]2[C:18]([H:38])([H:39])[C:19]([H:40])([H:41])[N@@:17]([S:30](=[O:2])(=[O:3])[c:14]3[c:11]([H:34])[c:9]([H:32])[c:13]([C@@:28]([O:7][H:31])([C:24]([H:48])([H:49])[H:50])[C:25]([F:4])([F:5])[F:6])[c:10]([H:33])[c:12]3[H:35])[C@@:29]([C:26]([H:51])([H:52])[H:53])([H:56])[C:27]2([H:54])[H:55])([H:42])[H:43])[C:21]([H:44])([H:45])[C:22]1([H:46])[H:47]] FAILED [ 50%]
cmiles/tests/test_cmiles.py::test_drug_bank_rd[CC1(C[N@@](CC[N@@]1C)[C@@H]2C[C@H](c3c2cc(cc3)Cl)c4ccccc4)C-[Cl:1][c:10]1[c:5]([H:29])[c:8]([H:32])[c:12]2[c:13]([c:9]1[H:33])[C@@:25]([N@:15]1[C:20]([H:45])([H:46])[C:19]([H:43])([H:44])[N@:14]([C:16]([H:34])([H:35])[H:36])[C:22]([C:17]([H:37])([H:38])[H:39])([C:18]([H:40])([H:41])[H:42])[C:21]1([H:47])[H:48])([H:52])[C:23]([H:49])([H:50])[C@:24]2([c:11]1[c:6]([H:30])[c:3]([H:27])[c:2]([H:26])[c:4]([H:28])[c:7]1[H:31])[H:51]] FAILED [ 66%]
cmiles/tests/test_cmiles.py::test_drug_bank_rd[c1cc(ccc1C[C@H]2C[N@@](CC[N@@](CC[N@@](CC[N@]2CC(=O)O)CC(=O)O)CC(=O)O)CC(=O)O)NC(=S)NCCCC[C@@H](C(=O)O)N-[O:1]=[C:12]([O:7][H:49])[C:31]([N@:27]1[C:36]([H:72])([H:73])[C:37]([H:74])([H:75])[N@@:28]([C:32]([C:13](=[O:2])[O:8][H:50])([H:64])[H:65])[C:39]([H:78])([H:79])[C:41]([H:82])([H:83])[N@@:30]([C:34]([C:15](=[O:4])[O:10][H:52])([H:68])[H:69])[C@:48]([C:45]([c:23]2[c:20]([H:56])[c:18]([H:54])[c:22]([N:24]([C:17](=[S:6])[N:25]([C:35]([C:42]([C:43]([C:44]([C@@:47]([C:16](=[O:5])[O:11][H:53])([N:26]([H:60])[H:61])[H:94])([H:88])[H:89])([H:86])[H:87])([H:84])[H:85])([H:70])[H:71])[H:59])[H:58])[c:19]([H:55])[c:21]2[H:57])([H:90])[H:91])([H:95])[C:46]([H:92])([H:93])[N@@:29]([C:33]([C:14](=[O:3])[O:9][H:51])([H:66])[H:67])[C:40]([H:80])([H:81])[C:38]1([H:76])[H:77])([H:62])[H:63]] FAILED [ 83%]
cmiles/tests/test_cmiles.py::test_drug_bank_rd[CCO[C@@H]1Cc2cc(ccc2[C@H]1[N@]3CC[N@](C[C@@H]3C)C4(CCN(CC4)C(=O)c5c(ncnc5C)C)C)C(F)(F)F-[O:1]=[C:8]([c:15]1[c:10]([C:22]([H:45])([H:46])[H:47])[n:5][c:9]([H:41])[n:6][c:11]1[C:23]([H:48])([H:49])[H:50])[N:19]1[C:28]([H:59])([H:60])[C:32]([H:67])([H:68])[C:34]([N@:20]2[C:30]([H:63])([H:64])[C:31]([H:65])([H:66])[N@:21]([C@:39]3([H:79])[c:18]4[c:14]([H:44])[c:12]([H:42])[c:16]([C:24]([F:2])([F:3])[F:4])[c:13]([H:43])[c:17]4[C:37]([H:76])([H:77])[C@:40]3([O:7][C:27]([C:25]([H:51])([H:52])[H:53])([H:57])[H:58])[H:80])[C@:38]([C:35]([H:71])([H:72])[H:73])([H:78])[C:36]2([H:74])[H:75])([C:26]([H:54])([H:55])[H:56])[C:33]([H:69])([H:70])[C:29]1([H:61])[H:62]] FAILED [100%]

=================================== FAILURES ===================================
_ test_drug_bank_rd[C/N=C(\\c1cccc(c1)C[N@]2[C@@H]([C@@H]([C@H]([C@H]([N@](S2(=O)=O)Cc3ccccc3)COc4ccccc4)O)O)COc5ccccc5)/O-[O:1]=[S:45]1(=[O:2])[N@:34]([C:37]([c:32]2[c:25]([H:64])[c:17]([H:56])[c:12]([H:51])[c:18]([H:57])[c:26]2[H:65])([H:71])[H:72])[C@@:43]([C:39]([O:5][c:29]2[c:20]([H:59])[c:13]([H:52])[c:10]([H:49])[c:14]([H:53])[c:21]2[H:60])([H:75])[H:76])([H:81])[C@@:41]([O:7][H:47])([H:79])[C@:42]([O:8][H:48])([H:80])[C@:44]([C:40]([O:6][c:30]2[c:22]([H:61])[c:15]([H:54])[c:11]([H:50])[c:16]([H:55])[c:23]2[H:62])([H:77])[H:78])([H:82])[N@:35]1[C:38]([c:33]1[c:27]([H:66])[c:19]([H:58])[c:24]([H:63])[c:31](/[C:9](=[N:3]\\[C:36]([H:68])([H:69])[H:70])[O:4][H:46])[c:28]1[H:67])([H:73])[H:74]] _

input = 'C/N=C(\\c1cccc(c1)C[N@]2[C@@H]([C@@H]([C@H]([C@H]([N@](S2(=O)=O)Cc3ccccc3)COc4ccccc4)O)O)COc5ccccc5)/O'
output = '[O:1]=[S:45]1(=[O:2])[N@:34]([C:37]([c:32]2[c:25]([H:64])[c:17]([H:56])[c:12]([H:51])[c:18]([H:57])[c:26]2[H:65])([H:...c:19]([H:58])[c:24]([H:63])[c:31](/[C:9](=[N:3]\\[C:36]([H:68])([H:69])[H:70])[O:4][H:46])[c:28]1[H:67])([H:73])[H:74]'

    @using_rdkit
    @pytest.mark.parametrize("input, output", get_smiles_lists(get_fn('drug_bank_stereo.smi'), get_fn('drug_bank_mapped_smi_rd_2019.03.2.smi')))
    def test_drug_bank_rd(input, output):
        """

        Parameters
        ----------
        input
        output

        Returns
        -------

        """

        mol = Chem.MolFromSmiles(input)
>       assert cmiles.utils.mol_to_smiles(mol, mapped=True, isomeric=True, explicit_hydrogen=True) == output
E       AssertionError: assert '[O:1]=[S:45]1(=[O:2])[N@:34]([C:37]([c:32]2[c:25]([H:64])[c:17]([H:56])[c:12]([H:51])[c:18]([H:57])[c:26]2[H:65])([H:71])[H:72])[C@@:43]([C:39]([O:5][c:29]2[c:20]([H:59])[c:13]([H:52])[c:10]([H:49])[c:14]([H:53])[c:21]2[H:60])([H:75])[H:76])([H:81])[C@@:41]([O:7][H:47])([H:79])[C@:42]([O:8][H:48])([H:80])[C@:44]([C:40]([O:6][c:30]2[c:22]([H:61])[c:15]([H:54])[c:11]([H:50])[c:16]([H:55])[c:23]2[H:62])([H:77])[H:78])([H:82])[N@@:35]1[C:38]([c:33]1[c:27]([H:66])[c:19]([H:58])[c:24]([H:63])[c:31](/[C:9](=[N:3]\\[C:36]([H:68])([H:69])[H:70])[O:4][H:46])[c:28]1[H:67])([H:73])[H:74]' == '[O:1]=[S:45]1(=[O:2])[N@:34]([C:37]([c:32]2[c:25]([H:64])[c:17]([H:56])[c:12]([H:51])[c:18]([H:57])[c:26]2[H:65])([H:71])[H:72])[C@@:43]([C:39]([O:5][c:29]2[c:20]([H:59])[c:13]([H:52])[c:10]([H:49])[c:14]([H:53])[c:21]2[H:60])([H:75])[H:76])([H:81])[C@@:41]([O:7][H:47])([H:79])[C@:42]([O:8][H:48])([H:80])[C@:44]([C:40]([O:6][c:30]2[c:22]([H:61])[c:15]([H:54])[c:11]([H:50])[c:16]([H:55])[c:23]2[H:62])([H:77])[H:78])([H:82])[N@:35]1[C:38]([c:33]1[c:27]([H:66])[c:19]([H:58])[c:24]([H:63])[c:31](/[C:9](=[N:3]\\[C:36]([H:68])([H:69])[H:70])[O:4][H:46])[c:28]1[H:67])([H:73])[H:74]'
E         - [O:1]=[S:45]1(=[O:2])[N@:34]([C:37]([c:32]2[c:25]([H:64])[c:17]([H:56])[c:12]([H:51])[c:18]([H:57])[c:26]2[H:65])([H:71])[H:72])[C@@:43]([C:39]([O:5][c:29]2[c:20]([H:59])[c:13]([H:52])[c:10]([H:49])[c:14]([H:53])[c:21]2[H:60])([H:75])[H:76])([H:81])[C@@:41]([O:7][H:47])([H:79])[C@:42]([O:8][H:48])([H:80])[C@:44]([C:40]([O:6][c:30]2[c:22]([H:61])[c:15]([H:54])[c:11]([H:50])[c:16]([H:55])[c:23]2[H:62])([H:77])[H:78])([H:82])[N@:35]1[C:38]([c:33]1[c:27]([H:66])[c:19]([H:58])[c:24]([H:63])[c:31](/[C:9](=[N:3]\[C:36]([H:68])([H:69])[H:70])[O:4][H:46])[c:28]1[H:67])([H:73])[H:74]
E         + [O:1]=[S:45]1(=[O:2])[N@:34]([C:37]([c:32]2[c:25]([H:64])[c:17]([H:56])[c:12]([H:51])[c:18]([H:57])[c:26]2[H:65])([H:71])[H:72])[C@@:43]([C:39]([O:5][c:29]2[c:20]([H:59])[c:13]([H:52])[c:10]([H:49])[c:14]([H:53])[c:21]2[H:60])([H:75])[H:76])([H:81])[C@@:41]([O:7][H:47])([H:79])[C@:42]([O:8][H:48])([H:80])[C@:44]([C:40]([O:6][c:30]2[c:22]([H:61])[c:15]([H:54])[c:11]([H:50])[c:16]([H:55])[c:23]2[H:62])([H:77])[H:78])([H:82])[N@@:35]1[C:38]([c:33]1[c:27]([H:66])[c:19]([H:58])[c:24]([H:63])[c:31](/[C:9](=[N:3]\[C:36]([H:68])([H:69])[H:70])[O:4][H:46])[c:28]1[H:67])([H:73])[H:74]
E         ?                                                                                                                                                                                                                                                                                                                                                                                                                                              +

cmiles/tests/test_cmiles.py:299: AssertionError
_ test_drug_bank_rd[CO[C@@H](c1ccc(cc1)C[N@]2[C@@H]([C@@H]([C@H]([C@H]([N@@](S2(=O)=O)Cc3ccc(cc3)CO)COc4ccccc4)O)O)COc5ccccc5)O-[O:1]=[S:47]1(=[O:2])[N@:34]([C:38]([c:31]2[c:22]([H:64])[c:20]([H:62])[c:30]([C:37]([O:3][H:48])([H:73])[H:74])[c:21]([H:63])[c:23]2[H:65])([H:75])[H:76])[C@@:45]([C:40]([O:4][c:28]2[c:16]([H:58])[c:12]([H:54])[c:10]([H:52])[c:13]([H:55])[c:17]2[H:59])([H:79])[H:80])([H:86])[C@@:43]([O:8][H:50])([H:84])[C@:44]([O:9][H:51])([H:85])[C@:46]([C:41]([O:5][c:29]2[c:18]([H:60])[c:14]([H:56])[c:11]([H:53])[c:15]([H:57])[c:19]2[H:61])([H:81])[H:82])([H:87])[N@@:35]1[C:39]([c:32]1[c:24]([H:66])[c:26]([H:68])[c:33]([C@@:42]([O:6][H:49])([O:7][C:36]([H:70])([H:71])[H:72])[H:83])[c:27]([H:69])[c:25]1[H:67])([H:77])[H:78]] _

input = 'CO[C@@H](c1ccc(cc1)C[N@]2[C@@H]([C@@H]([C@H]([C@H]([N@@](S2(=O)=O)Cc3ccc(cc3)CO)COc4ccccc4)O)O)COc5ccccc5)O'
output = '[O:1]=[S:47]1(=[O:2])[N@:34]([C:38]([c:31]2[c:22]([H:64])[c:20]([H:62])[c:30]([C:37]([O:3][H:48])([H:73])[H:74])[c:21...H:68])[c:33]([C@@:42]([O:6][H:49])([O:7][C:36]([H:70])([H:71])[H:72])[H:83])[c:27]([H:69])[c:25]1[H:67])([H:77])[H:78]'

    @using_rdkit
    @pytest.mark.parametrize("input, output", get_smiles_lists(get_fn('drug_bank_stereo.smi'), get_fn('drug_bank_mapped_smi_rd_2019.03.2.smi')))
    def test_drug_bank_rd(input, output):
        """

        Parameters
        ----------
        input
        output

        Returns
        -------

        """

        mol = Chem.MolFromSmiles(input)
>       assert cmiles.utils.mol_to_smiles(mol, mapped=True, isomeric=True, explicit_hydrogen=True) == output
E       AssertionError: assert '[O:1]=[S:47]1(=[O:2])[N@:34]([C:38]([c:31]2[c:22]([H:64])[c:20]([H:62])[c:30]([C:37]([O:3][H:48])([H:73])[H:74])[c:21]([H:63])[c:23]2[H:65])([H:75])[H:76])[C@@:45]([C:40]([O:4][c:28]2[c:16]([H:58])[c:12]([H:54])[c:10]([H:52])[c:13]([H:55])[c:17]2[H:59])([H:79])[H:80])([H:86])[C@@:43]([O:8][H:50])([H:84])[C@:44]([O:9][H:51])([H:85])[C@:46]([C:41]([O:5][c:29]2[c:18]([H:60])[c:14]([H:56])[c:11]([H:53])[c:15]([H:57])[c:19]2[H:61])([H:81])[H:82])([H:87])[N@:35]1[C:39]([c:32]1[c:24]([H:66])[c:26]([H:68])[c:33]([C@@:42]([O:6][H:49])([O:7][C:36]([H:70])([H:71])[H:72])[H:83])[c:27]([H:69])[c:25]1[H:67])([H:77])[H:78]' == '[O:1]=[S:47]1(=[O:2])[N@:34]([C:38]([c:31]2[c:22]([H:64])[c:20]([H:62])[c:30]([C:37]([O:3][H:48])([H:73])[H:74])[c:21]([H:63])[c:23]2[H:65])([H:75])[H:76])[C@@:45]([C:40]([O:4][c:28]2[c:16]([H:58])[c:12]([H:54])[c:10]([H:52])[c:13]([H:55])[c:17]2[H:59])([H:79])[H:80])([H:86])[C@@:43]([O:8][H:50])([H:84])[C@:44]([O:9][H:51])([H:85])[C@:46]([C:41]([O:5][c:29]2[c:18]([H:60])[c:14]([H:56])[c:11]([H:53])[c:15]([H:57])[c:19]2[H:61])([H:81])[H:82])([H:87])[N@@:35]1[C:39]([c:32]1[c:24]([H:66])[c:26]([H:68])[c:33]([C@@:42]([O:6][H:49])([O:7][C:36]([H:70])([H:71])[H:72])[H:83])[c:27]([H:69])[c:25]1[H:67])([H:77])[H:78]'
E         - [O:1]=[S:47]1(=[O:2])[N@:34]([C:38]([c:31]2[c:22]([H:64])[c:20]([H:62])[c:30]([C:37]([O:3][H:48])([H:73])[H:74])[c:21]([H:63])[c:23]2[H:65])([H:75])[H:76])[C@@:45]([C:40]([O:4][c:28]2[c:16]([H:58])[c:12]([H:54])[c:10]([H:52])[c:13]([H:55])[c:17]2[H:59])([H:79])[H:80])([H:86])[C@@:43]([O:8][H:50])([H:84])[C@:44]([O:9][H:51])([H:85])[C@:46]([C:41]([O:5][c:29]2[c:18]([H:60])[c:14]([H:56])[c:11]([H:53])[c:15]([H:57])[c:19]2[H:61])([H:81])[H:82])([H:87])[N@@:35]1[C:39]([c:32]1[c:24]([H:66])[c:26]([H:68])[c:33]([C@@:42]([O:6][H:49])([O:7][C:36]([H:70])([H:71])[H:72])[H:83])[c:27]([H:69])[c:25]1[H:67])([H:77])[H:78]
E         + [O:1]=[S:47]1(=[O:2])[N@:34]([C:38]([c:31]2[c:22]([H:64])[c:20]([H:62])[c:30]([C:37]([O:3][H:48])([H:73])[H:74])[c:21]([H:63])[c:23]2[H:65])([H:75])[H:76])[C@@:45]([C:40]([O:4][c:28]2[c:16]([H:58])[c:12]([H:54])[c:10]([H:52])[c:13]([H:55])[c:17]2[H:59])([H:79])[H:80])([H:86])[C@@:43]([O:8][H:50])([H:84])[C@:44]([O:9][H:51])([H:85])[C@:46]([C:41]([O:5][c:29]2[c:18]([H:60])[c:14]([H:56])[c:11]([H:53])[c:15]([H:57])[c:19]2[H:61])([H:81])[H:82])([H:87])[N@:35]1[C:39]([c:32]1[c:24]([H:66])[c:26]([H:68])[c:33]([C@@:42]([O:6][H:49])([O:7][C:36]([H:70])([H:71])[H:72])[H:83])[c:27]([H:69])[c:25]1[H:67])([H:77])[H:78]

cmiles/tests/test_cmiles.py:299: AssertionError
_ test_drug_bank_rd[C[C@@H]1C[N@@](CC[N@]1S(=O)(=O)c2ccc(cc2)[C@@](C)(C(F)(F)F)O)CC3(CC3)C(=O)N-[O:1]=[C:8]([N:15]([H:36])[H:37])[C:23]1([C:20]([N@:16]2[C:18]([H:38])([H:39])[C:19]([H:40])([H:41])[N@@:17]([S:30](=[O:2])(=[O:3])[c:14]3[c:11]([H:34])[c:9]([H:32])[c:13]([C@@:28]([O:7][H:31])([C:24]([H:48])([H:49])[H:50])[C:25]([F:4])([F:5])[F:6])[c:10]([H:33])[c:12]3[H:35])[C@@:29]([C:26]([H:51])([H:52])[H:53])([H:56])[C:27]2([H:54])[H:55])([H:42])[H:43])[C:21]([H:44])([H:45])[C:22]1([H:46])[H:47]] _

input = 'C[C@@H]1C[N@@](CC[N@]1S(=O)(=O)c2ccc(cc2)[C@@](C)(C(F)(F)F)O)CC3(CC3)C(=O)N'
output = '[O:1]=[C:8]([N:15]([H:36])[H:37])[C:23]1([C:20]([N@:16]2[C:18]([H:38])([H:39])[C:19]([H:40])([H:41])[N@@:17]([S:30](=...([C:26]([H:51])([H:52])[H:53])([H:56])[C:27]2([H:54])[H:55])([H:42])[H:43])[C:21]([H:44])([H:45])[C:22]1([H:46])[H:47]'

    @using_rdkit
    @pytest.mark.parametrize("input, output", get_smiles_lists(get_fn('drug_bank_stereo.smi'), get_fn('drug_bank_mapped_smi_rd_2019.03.2.smi')))
    def test_drug_bank_rd(input, output):
        """

        Parameters
        ----------
        input
        output

        Returns
        -------

        """

        mol = Chem.MolFromSmiles(input)
>       assert cmiles.utils.mol_to_smiles(mol, mapped=True, isomeric=True, explicit_hydrogen=True) == output
E       AssertionError: assert '[O:1]=[C:8]([N:15]([H:36])[H:37])[C:23]1([C:20]([N@:16]2[C:18]([H:38])([H:39])[C:19]([H:40])([H:41])[N@:17]([S:30](=[O:2])(=[O:3])[c:14]3[c:11]([H:34])[c:9]([H:32])[c:13]([C@@:28]([O:7][H:31])([C:24]([H:48])([H:49])[H:50])[C:25]([F:4])([F:5])[F:6])[c:10]([H:33])[c:12]3[H:35])[C@@:29]([C:26]([H:51])([H:52])[H:53])([H:56])[C:27]2([H:54])[H:55])([H:42])[H:43])[C:21]([H:44])([H:45])[C:22]1([H:46])[H:47]' == '[O:1]=[C:8]([N:15]([H:36])[H:37])[C:23]1([C:20]([N@:16]2[C:18]([H:38])([H:39])[C:19]([H:40])([H:41])[N@@:17]([S:30](=[O:2])(=[O:3])[c:14]3[c:11]([H:34])[c:9]([H:32])[c:13]([C@@:28]([O:7][H:31])([C:24]([H:48])([H:49])[H:50])[C:25]([F:4])([F:5])[F:6])[c:10]([H:33])[c:12]3[H:35])[C@@:29]([C:26]([H:51])([H:52])[H:53])([H:56])[C:27]2([H:54])[H:55])([H:42])[H:43])[C:21]([H:44])([H:45])[C:22]1([H:46])[H:47]'
E         - [O:1]=[C:8]([N:15]([H:36])[H:37])[C:23]1([C:20]([N@:16]2[C:18]([H:38])([H:39])[C:19]([H:40])([H:41])[N@@:17]([S:30](=[O:2])(=[O:3])[c:14]3[c:11]([H:34])[c:9]([H:32])[c:13]([C@@:28]([O:7][H:31])([C:24]([H:48])([H:49])[H:50])[C:25]([F:4])([F:5])[F:6])[c:10]([H:33])[c:12]3[H:35])[C@@:29]([C:26]([H:51])([H:52])[H:53])([H:56])[C:27]2([H:54])[H:55])([H:42])[H:43])[C:21]([H:44])([H:45])[C:22]1([H:46])[H:47]
E         ?                                                                                                        -
E         + [O:1]=[C:8]([N:15]([H:36])[H:37])[C:23]1([C:20]([N@:16]2[C:18]([H:38])([H:39])[C:19]([H:40])([H:41])[N@:17]([S:30](=[O:2])(=[O:3])[c:14]3[c:11]([H:34])[c:9]([H:32])[c:13]([C@@:28]([O:7][H:31])([C:24]([H:48])([H:49])[H:50])[C:25]([F:4])([F:5])[F:6])[c:10]([H:33])[c:12]3[H:35])[C@@:29]([C:26]([H:51])([H:52])[H:53])([H:56])[C:27]2([H:54])[H:55])([H:42])[H:43])[C:21]([H:44])([H:45])[C:22]1([H:46])[H:47]

cmiles/tests/test_cmiles.py:299: AssertionError
_ test_drug_bank_rd[CC1(C[N@@](CC[N@@]1C)[C@@H]2C[C@H](c3c2cc(cc3)Cl)c4ccccc4)C-[Cl:1][c:10]1[c:5]([H:29])[c:8]([H:32])[c:12]2[c:13]([c:9]1[H:33])[C@@:25]([N@:15]1[C:20]([H:45])([H:46])[C:19]([H:43])([H:44])[N@:14]([C:16]([H:34])([H:35])[H:36])[C:22]([C:17]([H:37])([H:38])[H:39])([C:18]([H:40])([H:41])[H:42])[C:21]1([H:47])[H:48])([H:52])[C:23]([H:49])([H:50])[C@:24]2([c:11]1[c:6]([H:30])[c:3]([H:27])[c:2]([H:26])[c:4]([H:28])[c:7]1[H:31])[H:51]] _

input = 'CC1(C[N@@](CC[N@@]1C)[C@@H]2C[C@H](c3c2cc(cc3)Cl)c4ccccc4)C'
output = '[Cl:1][c:10]1[c:5]([H:29])[c:8]([H:32])[c:12]2[c:13]([c:9]1[H:33])[C@@:25]([N@:15]1[C:20]([H:45])([H:46])[C:19]([H:43...)([H:52])[C:23]([H:49])([H:50])[C@:24]2([c:11]1[c:6]([H:30])[c:3]([H:27])[c:2]([H:26])[c:4]([H:28])[c:7]1[H:31])[H:51]'

    @using_rdkit
    @pytest.mark.parametrize("input, output", get_smiles_lists(get_fn('drug_bank_stereo.smi'), get_fn('drug_bank_mapped_smi_rd_2019.03.2.smi')))
    def test_drug_bank_rd(input, output):
        """

        Parameters
        ----------
        input
        output

        Returns
        -------

        """

        mol = Chem.MolFromSmiles(input)
>       assert cmiles.utils.mol_to_smiles(mol, mapped=True, isomeric=True, explicit_hydrogen=True) == output
E       AssertionError: assert '[Cl:1][c:10]1[c:5]([H:29])[c:8]([H:32])[c:12]2[c:13]([c:9]1[H:33])[C@@:25]([N@:15]1[C:20]([H:45])([H:46])[C:19]([H:43])([H:44])[N@@:14]([C:16]([H:34])([H:35])[H:36])[C:22]([C:17]([H:37])([H:38])[H:39])([C:18]([H:40])([H:41])[H:42])[C:21]1([H:47])[H:48])([H:52])[C:23]([H:49])([H:50])[C@:24]2([c:11]1[c:6]([H:30])[c:3]([H:27])[c:2]([H:26])[c:4]([H:28])[c:7]1[H:31])[H:51]' == '[Cl:1][c:10]1[c:5]([H:29])[c:8]([H:32])[c:12]2[c:13]([c:9]1[H:33])[C@@:25]([N@:15]1[C:20]([H:45])([H:46])[C:19]([H:43])([H:44])[N@:14]([C:16]([H:34])([H:35])[H:36])[C:22]([C:17]([H:37])([H:38])[H:39])([C:18]([H:40])([H:41])[H:42])[C:21]1([H:47])[H:48])([H:52])[C:23]([H:49])([H:50])[C@:24]2([c:11]1[c:6]([H:30])[c:3]([H:27])[c:2]([H:26])[c:4]([H:28])[c:7]1[H:31])[H:51]'
E         - [Cl:1][c:10]1[c:5]([H:29])[c:8]([H:32])[c:12]2[c:13]([c:9]1[H:33])[C@@:25]([N@:15]1[C:20]([H:45])([H:46])[C:19]([H:43])([H:44])[N@:14]([C:16]([H:34])([H:35])[H:36])[C:22]([C:17]([H:37])([H:38])[H:39])([C:18]([H:40])([H:41])[H:42])[C:21]1([H:47])[H:48])([H:52])[C:23]([H:49])([H:50])[C@:24]2([c:11]1[c:6]([H:30])[c:3]([H:27])[c:2]([H:26])[c:4]([H:28])[c:7]1[H:31])[H:51]
E         + [Cl:1][c:10]1[c:5]([H:29])[c:8]([H:32])[c:12]2[c:13]([c:9]1[H:33])[C@@:25]([N@:15]1[C:20]([H:45])([H:46])[C:19]([H:43])([H:44])[N@@:14]([C:16]([H:34])([H:35])[H:36])[C:22]([C:17]([H:37])([H:38])[H:39])([C:18]([H:40])([H:41])[H:42])[C:21]1([H:47])[H:48])([H:52])[C:23]([H:49])([H:50])[C@:24]2([c:11]1[c:6]([H:30])[c:3]([H:27])[c:2]([H:26])[c:4]([H:28])[c:7]1[H:31])[H:51]

cmiles/tests/test_cmiles.py:299: AssertionError
_ test_drug_bank_rd[c1cc(ccc1C[C@H]2C[N@@](CC[N@@](CC[N@@](CC[N@]2CC(=O)O)CC(=O)O)CC(=O)O)CC(=O)O)NC(=S)NCCCC[C@@H](C(=O)O)N-[O:1]=[C:12]([O:7][H:49])[C:31]([N@:27]1[C:36]([H:72])([H:73])[C:37]([H:74])([H:75])[N@@:28]([C:32]([C:13](=[O:2])[O:8][H:50])([H:64])[H:65])[C:39]([H:78])([H:79])[C:41]([H:82])([H:83])[N@@:30]([C:34]([C:15](=[O:4])[O:10][H:52])([H:68])[H:69])[C@:48]([C:45]([c:23]2[c:20]([H:56])[c:18]([H:54])[c:22]([N:24]([C:17](=[S:6])[N:25]([C:35]([C:42]([C:43]([C:44]([C@@:47]([C:16](=[O:5])[O:11][H:53])([N:26]([H:60])[H:61])[H:94])([H:88])[H:89])([H:86])[H:87])([H:84])[H:85])([H:70])[H:71])[H:59])[H:58])[c:19]([H:55])[c:21]2[H:57])([H:90])[H:91])([H:95])[C:46]([H:92])([H:93])[N@@:29]([C:33]([C:14](=[O:3])[O:9][H:51])([H:66])[H:67])[C:40]([H:80])([H:81])[C:38]1([H:76])[H:77])([H:62])[H:63]] _

input = 'c1cc(ccc1C[C@H]2C[N@@](CC[N@@](CC[N@@](CC[N@]2CC(=O)O)CC(=O)O)CC(=O)O)CC(=O)O)NC(=S)NCCCC[C@@H](C(=O)O)N'
output = '[O:1]=[C:12]([O:7][H:49])[C:31]([N@:27]1[C:36]([H:72])([H:73])[C:37]([H:74])([H:75])[N@@:28]([C:32]([C:13](=[O:2])[O:...3])[N@@:29]([C:33]([C:14](=[O:3])[O:9][H:51])([H:66])[H:67])[C:40]([H:80])([H:81])[C:38]1([H:76])[H:77])([H:62])[H:63]'

    @using_rdkit
    @pytest.mark.parametrize("input, output", get_smiles_lists(get_fn('drug_bank_stereo.smi'), get_fn('drug_bank_mapped_smi_rd_2019.03.2.smi')))
    def test_drug_bank_rd(input, output):
        """

        Parameters
        ----------
        input
        output

        Returns
        -------

        """

        mol = Chem.MolFromSmiles(input)
>       assert cmiles.utils.mol_to_smiles(mol, mapped=True, isomeric=True, explicit_hydrogen=True) == output
E       AssertionError: assert '[O:1]=[C:12]([O:7][H:49])[C:31]([N@:27]1[C:36]([H:72])([H:73])[C:37]([H:74])([H:75])[N@:28]([C:32]([C:13](=[O:2])[O:8][H:50])([H:64])[H:65])[C:39]([H:78])([H:79])[C:41]([H:82])([H:83])[N@:30]([C:34]([C:15](=[O:4])[O:10][H:52])([H:68])[H:69])[C@:48]([C:45]([c:23]2[c:20]([H:56])[c:18]([H:54])[c:22]([N:24]([C:17](=[S:6])[N:25]([C:35]([C:42]([C:43]([C:44]([C@@:47]([C:16](=[O:5])[O:11][H:53])([N:26]([H:60])[H:61])[H:94])([H:88])[H:89])([H:86])[H:87])([H:84])[H:85])([H:70])[H:71])[H:59])[H:58])[c:19]([H:55])[c:21]2[H:57])([H:90])[H:91])([H:95])[C:46]([H:92])([H:93])[N@:29]([C:33]([C:14](=[O:3])[O:9][H:51])([H:66])[H:67])[C:40]([H:80])([H:81])[C:38]1([H:76])[H:77])([H:62])[H:63]' == '[O:1]=[C:12]([O:7][H:49])[C:31]([N@:27]1[C:36]([H:72])([H:73])[C:37]([H:74])([H:75])[N@@:28]([C:32]([C:13](=[O:2])[O:8][H:50])([H:64])[H:65])[C:39]([H:78])([H:79])[C:41]([H:82])([H:83])[N@@:30]([C:34]([C:15](=[O:4])[O:10][H:52])([H:68])[H:69])[C@:48]([C:45]([c:23]2[c:20]([H:56])[c:18]([H:54])[c:22]([N:24]([C:17](=[S:6])[N:25]([C:35]([C:42]([C:43]([C:44]([C@@:47]([C:16](=[O:5])[O:11][H:53])([N:26]([H:60])[H:61])[H:94])([H:88])[H:89])([H:86])[H:87])([H:84])[H:85])([H:70])[H:71])[H:59])[H:58])[c:19]([H:55])[c:21]2[H:57])([H:90])[H:91])([H:95])[C:46]([H:92])([H:93])[N@@:29]([C:33]([C:14](=[O:3])[O:9][H:51])([H:66])[H:67])[C:40]([H:80])([H:81])[C:38]1([H:76])[H:77])([H:62])[H:63]'
E         - [O:1]=[C:12]([O:7][H:49])[C:31]([N@:27]1[C:36]([H:72])([H:73])[C:37]([H:74])([H:75])[N@@:28]([C:32]([C:13](=[O:2])[O:8][H:50])([H:64])[H:65])[C:39]([H:78])([H:79])[C:41]([H:82])([H:83])[N@@:30]([C:34]([C:15](=[O:4])[O:10][H:52])([H:68])[H:69])[C@:48]([C:45]([c:23]2[c:20]([H:56])[c:18]([H:54])[c:22]([N:24]([C:17](=[S:6])[N:25]([C:35]([C:42]([C:43]([C:44]([C@@:47]([C:16](=[O:5])[O:11][H:53])([N:26]([H:60])[H:61])[H:94])([H:88])[H:89])([H:86])[H:87])([H:84])[H:85])([H:70])[H:71])[H:59])[H:58])[c:19]([H:55])[c:21]2[H:57])([H:90])[H:91])([H:95])[C:46]([H:92])([H:93])[N@@:29]([C:33]([C:14](=[O:3])[O:9][H:51])([H:66])[H:67])[C:40]([H:80])([H:81])[C:38]1([H:76])[H:77])([H:62])[H:63]
E         ?                                                                                        -                                                                                                    -                                                                                                                                                                                                                                                                                                                                                                                              -
E         + [O:1]=[C:12]([O:7][H:49])[C:31]([N@:27]1[C:36]([H:72])([H:73])[C:37]([H:74])([H:75])[N@:28]([C:32]([C:13](=[O:2])[O:8][H:50])([H:64])[H:65])[C:39]([H:78])([H:79])[C:41]([H:82])([H:83])[N@:30]([C:34]([C:15](=[O:4])[O:10][H:52])([H:68])[H:69])[C@:48]([C:45]([c:23]2[c:20]([H:56])[c:18]([H:54])[c:22]([N:24]([C:17](=[S:6])[N:25]([C:35]([C:42]([C:43]([C:44]([C@@:47]([C:16](=[O:5])[O:11][H:53])([N:26]([H:60])[H:61])[H:94])([H:88])[H:89])([H:86])[H:87])([H:84])[H:85])([H:70])[H:71])[H:59])[H:58])[c:19]([H:55])[c:21]2[H:57])([H:90])[H:91])([H:95])[C:46]([H:92])([H:93])[N@:29]([C:33]([C:14](=[O:3])[O:9][H:51])([H:66])[H:67])[C:40]([H:80])([H:81])[C:38]1([H:76])[H:77])([H:62])[H:63]

cmiles/tests/test_cmiles.py:299: AssertionError
_ test_drug_bank_rd[CCO[C@@H]1Cc2cc(ccc2[C@H]1[N@]3CC[N@](C[C@@H]3C)C4(CCN(CC4)C(=O)c5c(ncnc5C)C)C)C(F)(F)F-[O:1]=[C:8]([c:15]1[c:10]([C:22]([H:45])([H:46])[H:47])[n:5][c:9]([H:41])[n:6][c:11]1[C:23]([H:48])([H:49])[H:50])[N:19]1[C:28]([H:59])([H:60])[C:32]([H:67])([H:68])[C:34]([N@:20]2[C:30]([H:63])([H:64])[C:31]([H:65])([H:66])[N@:21]([C@:39]3([H:79])[c:18]4[c:14]([H:44])[c:12]([H:42])[c:16]([C:24]([F:2])([F:3])[F:4])[c:13]([H:43])[c:17]4[C:37]([H:76])([H:77])[C@:40]3([O:7][C:27]([C:25]([H:51])([H:52])[H:53])([H:57])[H:58])[H:80])[C@:38]([C:35]([H:71])([H:72])[H:73])([H:78])[C:36]2([H:74])[H:75])([C:26]([H:54])([H:55])[H:56])[C:33]([H:69])([H:70])[C:29]1([H:61])[H:62]] _

input = 'CCO[C@@H]1Cc2cc(ccc2[C@H]1[N@]3CC[N@](C[C@@H]3C)C4(CCN(CC4)C(=O)c5c(ncnc5C)C)C)C(F)(F)F'
output = '[O:1]=[C:8]([c:15]1[c:10]([C:22]([H:45])([H:46])[H:47])[n:5][c:9]([H:41])[n:6][c:11]1[C:23]([H:48])([H:49])[H:50])[N:...([H:72])[H:73])([H:78])[C:36]2([H:74])[H:75])([C:26]([H:54])([H:55])[H:56])[C:33]([H:69])([H:70])[C:29]1([H:61])[H:62]'

    @using_rdkit
    @pytest.mark.parametrize("input, output", get_smiles_lists(get_fn('drug_bank_stereo.smi'), get_fn('drug_bank_mapped_smi_rd_2019.03.2.smi')))
    def test_drug_bank_rd(input, output):
        """

        Parameters
        ----------
        input
        output

        Returns
        -------

        """

        mol = Chem.MolFromSmiles(input)
>       assert cmiles.utils.mol_to_smiles(mol, mapped=True, isomeric=True, explicit_hydrogen=True) == output
E       AssertionError: assert '[O:1]=[C:8]([c:15]1[c:10]([C:22]([H:45])([H:46])[H:47])[n:5][c:9]([H:41])[n:6][c:11]1[C:23]([H:48])([H:49])[H:50])[N:19]1[C:28]([H:59])([H:60])[C:32]([H:67])([H:68])[C:34]([N@:20]2[C:30]([H:63])([H:64])[C:31]([H:65])([H:66])[N@@:21]([C@:39]3([H:79])[c:18]4[c:14]([H:44])[c:12]([H:42])[c:16]([C:24]([F:2])([F:3])[F:4])[c:13]([H:43])[c:17]4[C:37]([H:76])([H:77])[C@:40]3([O:7][C:27]([C:25]([H:51])([H:52])[H:53])([H:57])[H:58])[H:80])[C@:38]([C:35]([H:71])([H:72])[H:73])([H:78])[C:36]2([H:74])[H:75])([C:26]([H:54])([H:55])[H:56])[C:33]([H:69])([H:70])[C:29]1([H:61])[H:62]' == '[O:1]=[C:8]([c:15]1[c:10]([C:22]([H:45])([H:46])[H:47])[n:5][c:9]([H:41])[n:6][c:11]1[C:23]([H:48])([H:49])[H:50])[N:19]1[C:28]([H:59])([H:60])[C:32]([H:67])([H:68])[C:34]([N@:20]2[C:30]([H:63])([H:64])[C:31]([H:65])([H:66])[N@:21]([C@:39]3([H:79])[c:18]4[c:14]([H:44])[c:12]([H:42])[c:16]([C:24]([F:2])([F:3])[F:4])[c:13]([H:43])[c:17]4[C:37]([H:76])([H:77])[C@:40]3([O:7][C:27]([C:25]([H:51])([H:52])[H:53])([H:57])[H:58])[H:80])[C@:38]([C:35]([H:71])([H:72])[H:73])([H:78])[C:36]2([H:74])[H:75])([C:26]([H:54])([H:55])[H:56])[C:33]([H:69])([H:70])[C:29]1([H:61])[H:62]'
E         - [O:1]=[C:8]([c:15]1[c:10]([C:22]([H:45])([H:46])[H:47])[n:5][c:9]([H:41])[n:6][c:11]1[C:23]([H:48])([H:49])[H:50])[N:19]1[C:28]([H:59])([H:60])[C:32]([H:67])([H:68])[C:34]([N@:20]2[C:30]([H:63])([H:64])[C:31]([H:65])([H:66])[N@:21]([C@:39]3([H:79])[c:18]4[c:14]([H:44])[c:12]([H:42])[c:16]([C:24]([F:2])([F:3])[F:4])[c:13]([H:43])[c:17]4[C:37]([H:76])([H:77])[C@:40]3([O:7][C:27]([C:25]([H:51])([H:52])[H:53])([H:57])[H:58])[H:80])[C@:38]([C:35]([H:71])([H:72])[H:73])([H:78])[C:36]2([H:74])[H:75])([C:26]([H:54])([H:55])[H:56])[C:33]([H:69])([H:70])[C:29]1([H:61])[H:62]
E         ?                                                                                                                                                                                                                                    -------
E         + [O:1]=[C:8]([c:15]1[c:10]([C:22]([H:45])([H:46])[H:47])[n:5][c:9]([H:41])[n:6][c:11]1[C:23]([H:48])([H:49])[H:50])[N:19]1[C:28]([H:59])([H:60])[C:32]([H:67])([H:68])[C:34]([N@:20]2[C:30]([H:63])([H:64])[C:31]([H:65])([H:66])[N@@:21]([C@:39]3([H:79])[c:18]4[c:14]([H:44])[c:12]([H:42])[c:16]([C:24]([F:2])([F:3])[F:4])[c:13]([H:43])[c:17]4[C:37]([H:76])([H:77])[C@:40]3([O:7][C:27]([C:25]([H:51])([H:52])[H:53])([H:57])[H:58])[H:80])[C@:38]([C:35]([H:71])([H:72])[H:73])([H:78])[C:36]2([H:74])[H:75])([C:26]([H:54])([H:55])[H:56])[C:33]([H:69])([H:70])[C:29]1([H:61])[H:62]
E         ?                                                                                                                                                                                                                                      ++++++++

cmiles/tests/test_cmiles.py:299: AssertionError
=========================== short test summary info ============================
FAILED cmiles/tests/test_cmiles.py::test_drug_bank_rd[C/N=C(\\c1cccc(c1)C[N@]2[C@@H]([C@@H]([C@H]([C@H]([N@](S2(=O)=O)Cc3ccccc3)COc4ccccc4)O)O)COc5ccccc5)/O-[O:1]=[S:45]1(=[O:2])[N@:34]([C:37]([c:32]2[c:25]([H:64])[c:17]([H:56])[c:12]([H:51])[c:18]([H:57])[c:26]2[H:65])([H:71])[H:72])[C@@:43]([C:39]([O:5][c:29]2[c:20]([H:59])[c:13]([H:52])[c:10]([H:49])[c:14]([H:53])[c:21]2[H:60])([H:75])[H:76])([H:81])[C@@:41]([O:7][H:47])([H:79])[C@:42]([O:8][H:48])([H:80])[C@:44]([C:40]([O:6][c:30]2[c:22]([H:61])[c:15]([H:54])[c:11]([H:50])[c:16]([H:55])[c:23]2[H:62])([H:77])[H:78])([H:82])[N@:35]1[C:38]([c:33]1[c:27]([H:66])[c:19]([H:58])[c:24]([H:63])[c:31](/[C:9](=[N:3]\\[C:36]([H:68])([H:69])[H:70])[O:4][H:46])[c:28]1[H:67])([H:73])[H:74]]
FAILED cmiles/tests/test_cmiles.py::test_drug_bank_rd[CO[C@@H](c1ccc(cc1)C[N@]2[C@@H]([C@@H]([C@H]([C@H]([N@@](S2(=O)=O)Cc3ccc(cc3)CO)COc4ccccc4)O)O)COc5ccccc5)O-[O:1]=[S:47]1(=[O:2])[N@:34]([C:38]([c:31]2[c:22]([H:64])[c:20]([H:62])[c:30]([C:37]([O:3][H:48])([H:73])[H:74])[c:21]([H:63])[c:23]2[H:65])([H:75])[H:76])[C@@:45]([C:40]([O:4][c:28]2[c:16]([H:58])[c:12]([H:54])[c:10]([H:52])[c:13]([H:55])[c:17]2[H:59])([H:79])[H:80])([H:86])[C@@:43]([O:8][H:50])([H:84])[C@:44]([O:9][H:51])([H:85])[C@:46]([C:41]([O:5][c:29]2[c:18]([H:60])[c:14]([H:56])[c:11]([H:53])[c:15]([H:57])[c:19]2[H:61])([H:81])[H:82])([H:87])[N@@:35]1[C:39]([c:32]1[c:24]([H:66])[c:26]([H:68])[c:33]([C@@:42]([O:6][H:49])([O:7][C:36]([H:70])([H:71])[H:72])[H:83])[c:27]([H:69])[c:25]1[H:67])([H:77])[H:78]]
FAILED cmiles/tests/test_cmiles.py::test_drug_bank_rd[C[C@@H]1C[N@@](CC[N@]1S(=O)(=O)c2ccc(cc2)[C@@](C)(C(F)(F)F)O)CC3(CC3)C(=O)N-[O:1]=[C:8]([N:15]([H:36])[H:37])[C:23]1([C:20]([N@:16]2[C:18]([H:38])([H:39])[C:19]([H:40])([H:41])[N@@:17]([S:30](=[O:2])(=[O:3])[c:14]3[c:11]([H:34])[c:9]([H:32])[c:13]([C@@:28]([O:7][H:31])([C:24]([H:48])([H:49])[H:50])[C:25]([F:4])([F:5])[F:6])[c:10]([H:33])[c:12]3[H:35])[C@@:29]([C:26]([H:51])([H:52])[H:53])([H:56])[C:27]2([H:54])[H:55])([H:42])[H:43])[C:21]([H:44])([H:45])[C:22]1([H:46])[H:47]]
FAILED cmiles/tests/test_cmiles.py::test_drug_bank_rd[CC1(C[N@@](CC[N@@]1C)[C@@H]2C[C@H](c3c2cc(cc3)Cl)c4ccccc4)C-[Cl:1][c:10]1[c:5]([H:29])[c:8]([H:32])[c:12]2[c:13]([c:9]1[H:33])[C@@:25]([N@:15]1[C:20]([H:45])([H:46])[C:19]([H:43])([H:44])[N@:14]([C:16]([H:34])([H:35])[H:36])[C:22]([C:17]([H:37])([H:38])[H:39])([C:18]([H:40])([H:41])[H:42])[C:21]1([H:47])[H:48])([H:52])[C:23]([H:49])([H:50])[C@:24]2([c:11]1[c:6]([H:30])[c:3]([H:27])[c:2]([H:26])[c:4]([H:28])[c:7]1[H:31])[H:51]]
FAILED cmiles/tests/test_cmiles.py::test_drug_bank_rd[c1cc(ccc1C[C@H]2C[N@@](CC[N@@](CC[N@@](CC[N@]2CC(=O)O)CC(=O)O)CC(=O)O)CC(=O)O)NC(=S)NCCCC[C@@H](C(=O)O)N-[O:1]=[C:12]([O:7][H:49])[C:31]([N@:27]1[C:36]([H:72])([H:73])[C:37]([H:74])([H:75])[N@@:28]([C:32]([C:13](=[O:2])[O:8][H:50])([H:64])[H:65])[C:39]([H:78])([H:79])[C:41]([H:82])([H:83])[N@@:30]([C:34]([C:15](=[O:4])[O:10][H:52])([H:68])[H:69])[C@:48]([C:45]([c:23]2[c:20]([H:56])[c:18]([H:54])[c:22]([N:24]([C:17](=[S:6])[N:25]([C:35]([C:42]([C:43]([C:44]([C@@:47]([C:16](=[O:5])[O:11][H:53])([N:26]([H:60])[H:61])[H:94])([H:88])[H:89])([H:86])[H:87])([H:84])[H:85])([H:70])[H:71])[H:59])[H:58])[c:19]([H:55])[c:21]2[H:57])([H:90])[H:91])([H:95])[C:46]([H:92])([H:93])[N@@:29]([C:33]([C:14](=[O:3])[O:9][H:51])([H:66])[H:67])[C:40]([H:80])([H:81])[C:38]1([H:76])[H:77])([H:62])[H:63]]
FAILED cmiles/tests/test_cmiles.py::test_drug_bank_rd[CCO[C@@H]1Cc2cc(ccc2[C@H]1[N@]3CC[N@](C[C@@H]3C)C4(CCN(CC4)C(=O)c5c(ncnc5C)C)C)C(F)(F)F-[O:1]=[C:8]([c:15]1[c:10]([C:22]([H:45])([H:46])[H:47])[n:5][c:9]([H:41])[n:6][c:11]1[C:23]([H:48])([H:49])[H:50])[N:19]1[C:28]([H:59])([H:60])[C:32]([H:67])([H:68])[C:34]([N@:20]2[C:30]([H:63])([H:64])[C:31]([H:65])([H:66])[N@:21]([C@:39]3([H:79])[c:18]4[c:14]([H:44])[c:12]([H:42])[c:16]([C:24]([F:2])([F:3])[F:4])[c:13]([H:43])[c:17]4[C:37]([H:76])([H:77])[C@:40]3([O:7][C:27]([C:25]([H:51])([H:52])[H:53])([H:57])[H:58])[H:80])[C@:38]([C:35]([H:71])([H:72])[H:73])([H:78])[C:36]2([H:74])[H:75])([C:26]([H:54])([H:55])[H:56])[C:33]([H:69])([H:70])[C:29]1([H:61])[H:62]]
mattwthompson commented 4 years ago

I realize this PR looks like a catastrophe (will squash when merging) but it's actually working pretty well. The failing tests are a separate issue and GitHub Actions works otherwise. The action @dgasmith recommended seems to work well and does the job with fewer lines of YAML. If not for different backends, the action would boil down to something like this (and could probably be trimmed further):

    steps:
    - uses: actions/checkout@v2
    - uses: goanpeca/setup-miniconda@v1
      with:
        activate-environment: test
        environment-file: devtools/conda-envs/env.yaml
        auto-activate-base: false
    - name: Additional info about the build
      shell: bash
      run: |
        uname -a
        df -h
        ulimit -a
    - name: Fix conda permissions in MacOS
      shell: bash
      if: startsWith(matrix.cfg.os, 'macOS')
      run: |
        sudo chown -R $(id -u):$(id -g) ${CONDA}
    - name: Install package
      shell: bash -l {0}
      run: |
        python -m pip install --no-deps .
    - name: Test the package
      shell: bash -l {0}
      run: |
        pytest -v --cov=cmiles cmiles/tests/

Once we move the OpenEye license to the organization, I can try re-building the test matrix to include OpenEye tests.

mattwthompson commented 4 years ago

@jaimergp Thanks for the review! The commented code was from how the tests were set up before, testing both RDKit and OpenEye (the yes/no, no/yes, and yes/yes cases). I wanted to preserve that structure for now but haven't set up the OpenEye license here. Instead, though, could you move the license from the toolkit repo to the organization? It would be better to use the org's license in one place (now that we can) instead of copying it over to all the repos.

codecov-commenter commented 4 years ago

Codecov Report

Merging #38 into master will decrease coverage by 39.07%. The diff coverage is n/a.

jaimergp commented 4 years ago

Is there anything missing here?

mattwthompson commented 4 years ago

I think it's good; the failing tests are due to #39

jaimergp commented 4 years ago

LGTM then!