openforcefield / cmiles

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

OpenEye toolkits 2020.2.0 changes #54

Open mattwthompson opened 3 years ago

mattwthompson commented 3 years ago

CI has been failing for a few days, probably related to a recent OpenEye release. Tests pass with 2020.1.1 but fail with 2020.2.0 (pytest -n auto && pytest -v --lf > file.txt, below):

Here are the release notes; nothing sticks out to me at first pass

============================= test session starts ==============================
platform darwin -- Python 3.8.6, pytest-6.2.1, py-1.10.0, pluggy-0.13.1 -- /Users/mwt/miniconda3/envs/cmiles/bin/python
cachedir: .pytest_cache
rootdir: /Users/mwt/software/cmiles
plugins: cov-2.10.1, xdist-2.2.0, forked-1.3.0
collecting ... collected 12 items
run-last-failure: rerun previous 12 failures (skipped 1 file)

../test_cmiles.py::test_drug_bank_oe[COC(=O)CCC1=C2NC(\\C=C3/N=C(/C=C4\\N\\C(=C/C5=N/C(=C\\2)/C(CCC(O)=O)=C5C)C(C=C)=C4C)C2=CC=C([C@@H](C(=O)OC)[C@@]32C)C(=O)OC)=C1C-[H:54]/[c:1]/1[c:9]/2\\[c:5]([c:6](/[c:10](/[n:44]2[H:93])[c:2](/[c:13]3[n:43]/[c:16]([c:4](\\[c:12]4[c:7]([c:8]([c:11]([n:45]4[H:94])/[c:3]([c:15]/5\\[n:42][c:14]1[C:20](=[C:21]5[C:39]([H:87])([H:88])[C:40]([H:89])([H:90])[C:27](=[O:48])[O:50][H:95])[C:33]([H:70])([H:71])[H:72])/[H:56])[C:38]([H:85])([H:86])[C:41]([H:91])([H:92])[C:28](=[O:49])[O:53][C:37]([H:82])([H:83])[H:84])[C:32]([H:67])([H:68])[H:69])/[H:57])/[C@:30]6([C:19]3=[C:17]([C:18](=[C:22]([C@@:29]6([H:63])[C:26](=[O:47])[O:52][C:36]([H:79])([H:80])[H:81])[C:25](=[O:46])[O:51][C:35]([H:76])([H:77])[H:78])[H:59])[H:58])[C:34]([H:73])([H:74])[H:75])\\[H:55])[C:31]([H:64])([H:65])[H:66])[C:24](=[C:23]([H:60])[H:61])[H:62]] FAILED [  8%]
../test_cmiles.py::test_drug_bank_oe[[H][C@]1(CCC(=O)OC\\C=C(/C)CCC[C@H](C)CCC[C@H](C)CCCC(C)C)[C@H](C)\\C2=C\\C3=C(C)C(C(C)=O)=C4\\C=C5/N=C(/C=C6\\N([Mg]N34)C3=C([C@@H](C(=O)OC)C(=O)C3=C6C)C1=N2)[C@H](CC)[C@H]5C-[H:67]/[c:1]1/[c:9]2[c:5]([c:8]([c:11]/3[n:58]2[Mg:66][n:59]4/[c:10]([c:2](\\[c:14]5[n:56]\\[c:13]1\\[C@:24]([C@@:26]5([H:74])[C:43]([H:118])([H:119])[C:34]([H:94])([H:95])[H:96])([H:72])[C:32]([H:88])([H:89])[H:90])/[H:68])/[c:7]([c:4]6[c:12]4[c:6]([c:16]7[n:57]/[c:15]([c:3]3/[H:69])/[C@@:25]([C@:27]7([H:75])[C:44]([H:120])([H:121])[C:42]([H:116])([H:117])[C:22](=[O:63])[O:65][C:40]([H:112])([H:113])/[C:18](=[C:20](\\[C:31]([H:85])([H:86])[H:87])/[C:41]([H:114])([H:115])[C:45]([H:122])([H:123])[C:48]([H:128])([H:129])[C@:54]([H:139])([C:37]([H:103])([H:104])[H:105])[C:51]([H:134])([H:135])[C:47]([H:126])([H:127])[C:52]([H:136])([H:137])[C@:55]([H:140])([C:38]([H:106])([H:107])[H:108])[C:50]([H:132])([H:133])[C:46]([H:124])([H:125])[C:49]([H:130])([H:131])[C:53]([H:138])([C:35]([H:97])([H:98])[H:99])[C:36]([H:100])([H:101])[H:102])/[H:70])([H:73])[C:33]([H:91])([H:92])[H:93])[C@@:23]([C:17]6=[O:60])([H:71])[C:21](=[O:62])[O:64][C:39]([H:109])([H:110])[H:111])[C:28]([H:76])([H:77])[H:78])[C:29]([H:79])([H:80])[H:81])[C:19](=[O:61])[C:30]([H:82])([H:83])[H:84]] FAILED [ 16%]
../test_cmiles.py::test_drug_bank_oe[CCC1=C(C)\\C2=C\\C3=C(C=C)C(C)=C4\\C=C5/N=C([C@@H](CCC(=O)OC\\C=C(/C)CCC[C@H](C)CCC[C@H](C)CCCC(C)C)[C@@H]5C)C5=C6N([Mg]N34)\\C(=C/C1=N2)C(C)=C6C(=O)[C@@H]5C(=O)OC-[H:66]/[c:1]1/[c:9]2[c:5]([c:8]([c:11]/3[n:58]2[Mg:65][n:59]4/[c:10]([c:2](\\[c:14]5[n:56]\\[c:13]1\\[C:18](=[C:19]5[C:40]([H:109])([H:110])[C:34]([H:91])([H:92])[H:93])[C:31]([H:82])([H:83])[H:84])/[H:67])/[c:7]([c:4]6[c:12]4[c:6]([c:16]7[n:57]/[c:15]([c:3]3/[H:68])/[C@@:27]([C@:28]7([H:75])[C:44]([H:117])([H:118])[C:43]([H:115])([H:116])[C:25](=[O:62])[O:64][C:41]([H:111])([H:112])/[C:22](=[C:23](\\[C:32]([H:85])([H:86])[H:87])/[C:42]([H:113])([H:114])[C:45]([H:119])([H:120])[C:48]([H:125])([H:126])[C@:54]([H:136])([C:37]([H:100])([H:101])[H:102])[C:51]([H:131])([H:132])[C:47]([H:123])([H:124])[C:52]([H:133])([H:134])[C@:55]([H:137])([C:38]([H:103])([H:104])[H:105])[C:50]([H:129])([H:130])[C:46]([H:121])([H:122])[C:49]([H:127])([H:128])[C:53]([H:135])([C:35]([H:94])([H:95])[H:96])[C:36]([H:97])([H:98])[H:99])/[H:72])([H:74])[C:33]([H:88])([H:89])[H:90])[C@@:26]([C:17]6=[O:60])([H:73])[C:24](=[O:61])[O:63][C:39]([H:106])([H:107])[H:108])[C:29]([H:76])([H:77])[H:78])[C:30]([H:79])([H:80])[H:81])[C:21](=[C:20]([H:69])[H:70])[H:71]] FAILED [ 25%]
../test_cmiles.py::test_drug_bank_oe[[Co+7].[H]\\C-1=C2\\[N-]\\C(=C([H])/C3=N/C(=C([H])\\C4=C(CCC([O-])=O)C(C)=C(N4)\\C([H])=C4\\C=C(C)C-1=N4)/C(CCC(O)=O)=C3C)C(C)=C2-[H:40][c:1]\\1[c:6](/[c:10]/2[c:3](/[c:14]3[n:33]/[c:16]([c:5](\\[c:12]4[c:8]([c:7]([c:11]([n:34]4[H:66])/[c:4]([c:15]/5\\[n:32][c:13](/[c:2]([c:9]1\\[n-:31]2)/[H:41])[C:18](=[C:17]5[H:45])[C:25]([H:52])([H:53])[H:54])/[H:43])[C:24]([H:49])([H:50])[H:51])[C:27]([H:58])([H:59])[C:29]([H:62])([H:63])[C:21](=[O:36])[O-:35])/[H:44])/[C:20](=[C:19]3[C:26]([H:55])([H:56])[H:57])[C:28]([H:60])([H:61])[C:30]([H:64])([H:65])[C:22](=[O:37])[O:38][H:67])\\[H:42])[C:23]([H:46])([H:47])[H:48].[Co+7:39]] FAILED [ 33%]
../test_cmiles.py::test_drug_bank_oe[CC1=C(CCC(O)=O)/C2=C/C3=N/C(=C\\C4=C(C)C(C=C)=C(N4)/C=C4\\N=C(\\C=C\\1/N\\2)C(C=C)=C4C)/C(C)=C3CCC(O)=O-[H:43]/[c:1]1/[c:9]2[c:5]([c:6]([c:10]([n:37]2[H:73])/[c:2]([c:15]/3\\[n:36][c:16](/[c:4]([c:12]\\4/[c:8]([c:7](/[c:11](/[n:38]4[H:74])[c:3](/[c:13]5[n:35]\\[c:14]1\\[C:18](=[C:17]5[C:24](=[C:22]([H:49])[H:50])[H:52])[C:29]([H:59])([H:60])[H:61])\\[H:45])[C:28]([H:56])([H:57])[H:58])[C:31]([H:65])([H:66])[C:33]([H:69])([H:70])[C:25](=[O:39])[O:41][H:75])/[H:46])[C:20](=[C:19]3[C:30]([H:62])([H:63])[H:64])[C:32]([H:67])([H:68])[C:34]([H:71])([H:72])[C:26](=[O:40])[O:42][H:76])/[H:44])[C:27]([H:53])([H:54])[H:55])[C:23](=[C:21]([H:47])[H:48])[H:51]] FAILED [ 41%]
../test_cmiles.py::test_drug_bank_oe[CC1=C(CCC(O)=O)/C2=C/C3=N/C(=C\\C4=C(C)C(CCC(O)=O)=C(N4)/C=C4\\N=C(\\C=C\\1/N\\2)C(CCC(O)=O)=C4C)/C(CCC(O)=O)=C3C-[H:49]/[c:1]1/[c:9]2[c:5]([c:7]([c:11]([n:39]2[H:81])/[c:3]([c:16]/3\\[n:38][c:14](/[c:2]([c:10]\\4/[c:6]([c:8](/[c:12](/[n:40]4[H:82])[c:4](/[c:15]5[n:37]\\[c:13]1\\[C:19](=[C:17]5[C:27]([H:59])([H:60])[H:61])[C:31]([H:69])([H:70])[C:35]([H:77])([H:78])[C:23](=[O:43])[O:47][H:85])\\[H:52])[C:30]([H:67])([H:68])[C:34]([H:75])([H:76])[C:22](=[O:42])[O:46][H:84])[C:26]([H:56])([H:57])[H:58])/[H:50])[C:20](=[C:18]3[C:28]([H:62])([H:63])[H:64])[C:32]([H:71])([H:72])[C:36]([H:79])([H:80])[C:24](=[O:44])[O:48][H:86])/[H:51])[C:29]([H:65])([H:66])[C:33]([H:73])([H:74])[C:21](=[O:41])[O:45][H:83])[C:25]([H:53])([H:54])[H:55]] FAILED [ 50%]
../test_cmiles.py::test_drug_bank_oe[[Mg++].CCC1=C(C=O)C2=N\\C\\1=C/C1=C(C)C3=C([N-]1)\\C([C@@H](C(=O)OC)C3=O)=C1/N=C(/C=C3\\[N-]/C(=C\\2)C(C=C)=C3C)[C@@H](C)[C@@H]1CCC(=O)OC\\C=C(/C)CCC[C@H](C)CCC[C@H](C)CCCC(C)C-[H:67]/[c:1]/1[c:9]/2\\[c:5]([c:8](/[c:11](/[n-:56]2)[c:3](/[c:15]3[n:59]/[c:16]([c:6]/4\\[c:12]5[c:4]([c:7]([c:10]([n-:57]5)/[c:2]([c:14]/6\\[n:58][c:13]1[C:18](=[C:19]6[C:40]([H:108])([H:109])[C:34]([H:90])([H:91])[H:92])[C:22](=[O:61])[H:73])/[H:68])[C:30]([H:78])([H:79])[H:80])[C:17](=[O:60])[C@:27]4([H:75])[C:25](=[O:62])[O:64][C:39]([H:105])([H:106])[H:107])/[C@@:29]([C@:28]3([H:76])[C:33]([H:87])([H:88])[H:89])([H:77])[C:44]([H:116])([H:117])[C:43]([H:114])([H:115])[C:26](=[O:63])[O:65][C:41]([H:110])([H:111])/[C:23](=[C:24](\\[C:32]([H:84])([H:85])[H:86])/[C:42]([H:112])([H:113])[C:45]([H:118])([H:119])[C:48]([H:124])([H:125])[C@:54]([H:135])([C:37]([H:99])([H:100])[H:101])[C:51]([H:130])([H:131])[C:47]([H:122])([H:123])[C:52]([H:132])([H:133])[C@:55]([H:136])([C:38]([H:102])([H:103])[H:104])[C:50]([H:128])([H:129])[C:46]([H:120])([H:121])[C:49]([H:126])([H:127])[C:53]([H:134])([C:35]([H:93])([H:94])[H:95])[C:36]([H:96])([H:97])[H:98])/[H:74])\\[H:69])[C:31]([H:81])([H:82])[H:83])[C:21](=[C:20]([H:70])[H:71])[H:72].[Mg+2:66]] FAILED [ 58%]
../test_cmiles.py::test_drug_bank_oe[[Cl-].[Cl-].[Sn+4].CCC1=C2[N-]C(\\C=C3/N=C(/C=C4\\[N-]\\C(=C/C5=N/C(=C\\2)/C(C)=C5CC)C(C)=C4CCC(O)=O)C(CCC(O)=O)=C3C)=C1C-[H:46]/[c:1]1/[c:9]2[c:5]([c:7]([c:11]([n-:35]2)/[c:3]([c:15]/3\\[n:38][c:14](/[c:2]([c:10]\\4/[c:6]([c:8](/[c:12](/[n-:36]4)[c:4](/[c:16]5[n:37]\\[c:13]1\\[C:17](=[C:20]5[C:32]([H:74])([H:75])[C:34]([H:78])([H:79])[C:22](=[O:40])[O:42][H:81])[C:25]([H:56])([H:57])[H:58])\\[H:49])[C:30]([H:70])([H:71])[C:33]([H:76])([H:77])[C:21](=[O:39])[O:41][H:80])[C:24]([H:53])([H:54])[H:55])/[H:47])[C:19](=[C:18]3[C:26]([H:59])([H:60])[H:61])[C:31]([H:72])([H:73])[C:28]([H:65])([H:66])[H:67])/[H:48])[C:29]([H:68])([H:69])[C:27]([H:62])([H:63])[H:64])[C:23]([H:50])([H:51])[H:52].[Cl-:43].[Cl-:44].[Sn+4:45]] FAILED [ 66%]
../test_cmiles.py::test_drug_bank_oe[O.[Lu+3].CC([O-])=O.CC([O-])=O.[H]/C1=C2/N=C(/C(/[H])=C3\\[N-]/C(=C([H])\\C4=N\\C(=C(/[H])\\N=C5\\C=C(OCCOCCOCCOC)C(OCCOCCOCCOC)=C\\C\\5=N\\1)\\C(C)=C4CCCO)C(CC)=C3CC)C(CCCO)=C2C-[H:75]/[c:2]/1[c:10]/2\\[c:8]([c:7](/[c:9](/[n-:53]2)[c:1](/[c:15]3[n:56]/[c:17]([c:5](\\[n:54][c:11]/4\\[c:3]([c:13]([c:14]([c:4](\\[c:12]4[n:55]\\[c:6]([c:18]/5\\[n:57][c:16]1[C:20](=[C:22]5[C:26]([H:83])([H:84])[H:85])[C:36]([H:110])([H:111])[C:38]([H:114])([H:115])[C:40]([H:118])([H:119])[O:64][H:147])\\[H:79])[H:77])[O:66][C:42]([H:122])([H:123])[C:46]([H:130])([H:131])[O:70][C:50]([H:138])([H:139])[C:52]([H:142])([H:143])[O:72][C:48]([H:134])([H:135])[C:44]([H:126])([H:127])[O:68][C:32]([H:101])([H:102])[H:103])[O:65][C:41]([H:120])([H:121])[C:45]([H:128])([H:129])[O:69][C:49]([H:136])([H:137])[C:51]([H:140])([H:141])[O:71][C:47]([H:132])([H:133])[C:43]([H:124])([H:125])[O:67][C:31]([H:98])([H:99])[H:100])[H:76])/[H:78])/[C:21](=[C:19]3[C:35]([H:108])([H:109])[C:37]([H:112])([H:113])[C:39]([H:116])([H:117])[O:63][H:146])[C:25]([H:80])([H:81])[H:82])\\[H:74])[C:33]([H:104])([H:105])[C:29]([H:92])([H:93])[H:94])[C:34]([H:106])([H:107])[C:30]([H:95])([H:96])[H:97].[H:86][C:27]([H:87])([H:88])[C:23](=[O:60])[O-:58].[H:89][C:28]([H:90])([H:91])[C:24](=[O:61])[O-:59].[H:144][O:62][H:145].[Lu+3:73]] FAILED [ 75%]
../test_cmiles.py::test_drug_bank_oe[[Gd+3].CC([O-])=O.CC([O-])=O.CCC1=C(CC)/C2=C/C3=N/C(=C\\N=C4/C=C(OCCOCCOCCOC)C(OCCOCCOCCOC)=C/C/4=N\\C=C4/N=C(/C=C\\1\\[N-]\\2)C(CCCO)=C4C)/C(C)=C3CCCO-[H:73]/[c:1]1/[c:15]2[n:56]/[c:17]([c:5](\\[n:54][c:11]/3\\[c:12]([n:55]\\[c:6]([c:18]\\4/[n:57][c:16](/[c:2]([c:10]/5\\[n-:53]\\[c:9]1\\[c:7]([c:8]5[C:34]([C:30]([H:94])([H:95])[H:96])([H:105])[H:106])[C:33]([C:29]([H:91])([H:92])[H:93])([H:103])[H:104])/[H:74])[C:20](=[C:22]4[C:26]([H:82])([H:83])[H:84])[C:36]([C:38]([C:40]([O:63][H:144])([H:117])[H:118])([H:113])[H:114])([H:109])[H:110])\\[H:78])\\[c:4]([c:14]([c:13]([c:3]3[H:75])[O:64][C:41]([C:45]([O:68][C:49]([C:51]([O:70][C:47]([C:43]([O:66][C:31]([H:97])([H:98])[H:99])([H:123])[H:124])([H:131])[H:132])([H:139])[H:140])([H:135])[H:136])([H:127])[H:128])([H:119])[H:120])[O:65][C:42]([C:46]([O:69][C:50]([C:52]([O:71][C:48]([C:44]([O:67][C:32]([H:100])([H:101])[H:102])([H:125])[H:126])([H:133])[H:134])([H:141])[H:142])([H:137])[H:138])([H:129])[H:130])([H:121])[H:122])[H:76])/[H:77])/[C:21](=[C:19]2[C:35]([C:37]([C:39]([O:62][H:143])([H:115])[H:116])([H:111])[H:112])([H:107])[H:108])[C:25]([H:79])([H:80])[H:81].[H:85][C:27]([C:23](=[O:60])[O-:58])([H:86])[H:87].[H:88][C:28]([C:24](=[O:61])[O-:59])([H:89])[H:90].[Gd+3:72]] FAILED [ 83%]
../test_cmiles.py::test_drug_bank_oe[CCC1=C(C)\\C2=C\\C3=C(C=C)C(C)=C(N3)\\C=C3/N=C([C@@H](CCC(O)=O)[C@@H]3C)/C(/CC(=O)N[C@@H](CC(O)=O)C(O)=O)=C3\\N\\C(=C/C1=N2)C(C)=C3C(O)=O-[H:53]/[c:1]1/[c:9]2[c:4]([c:6]([c:11]([n:41]2[H:87])/[c:3]([c:15]/3\\[n:40][c:16](/[c:8]([c:12]\\4/[c:5]([c:7](/[c:10](/[n:42]4[H:88])[c:2](/[c:14]5[n:39]\\[c:13]1\\[C:17](=[C:18]5[C:34]([H:78])([H:79])[C:32]([H:73])([H:74])[H:75])[C:30]([H:67])([H:68])[H:69])\\[H:54])[C:29]([H:64])([H:65])[H:66])[C:21](=[O:44])[O:49][H:90])/[C:33]([H:76])([H:77])[C:22](=[O:45])[N:43]([H:89])[C@:38]([H:86])([C:25](=[O:48])[O:52][H:93])[C:36]([H:82])([H:83])[C:24](=[O:47])[O:51][H:92])[C@@:27]([C@:26]3([H:59])[C:31]([H:70])([H:71])[H:72])([H:60])[C:37]([H:84])([H:85])[C:35]([H:80])([H:81])[C:23](=[O:46])[O:50][H:91])/[H:55])[C:28]([H:61])([H:62])[H:63])[C:20](=[C:19]([H:56])[H:57])[H:58]] FAILED [ 91%]
../test_cmiles.py::test_drug_bank_oe[N1C2=C3C=CC=CC3=C1\\N=C1/N=C(/N=C3\\N=C(NC4=N\\C(=N/2)C2=CC=CC=C42)C2=CC=CC=C32)C2=CC=CC=C12-[H:41][c:1]1[c:2]([c:10]([c:18]2[c:17]([c:9]1[H:49])[c:25]3/[n:33][c:27]/4\\[n:35][c:29](/[n:36][c:30]/5\\[n:38][c:32]([n:40]([c:31]-6[n:37]/[c:28]([n:34]\\[c:26]2[n:39]3[H:57])/[c:21]7[c:23]6[c:15]([c:7]([c:5]([c:13]7[H:53])[H:45])[H:47])[H:55])[H:58])-[c:24]8[c:22]5[c:14]([c:6]([c:8]([c:16]8[H:56])[H:48])[H:46])[H:54])-[c:20]9[c:19]4[c:11]([c:3]([c:4]([c:12]9[H:52])[H:44])[H:43])[H:51])[H:50])[H:42]] FAILED [100%]

=================================== FAILURES ===================================
_ test_drug_bank_oe[COC(=O)CCC1=C2NC(\\C=C3/N=C(/C=C4\\N\\C(=C/C5=N/C(=C\\2)/C(CCC(O)=O)=C5C)C(C=C)=C4C)C2=CC=C([C@@H](C(=O)OC)[C@@]32C)C(=O)OC)=C1C-[H:54]/[c:1]/1[c:9]/2\\[c:5]([c:6](/[c:10](/[n:44]2[H:93])[c:2](/[c:13]3[n:43]/[c:16]([c:4](\\[c:12]4[c:7]([c:8]([c:11]([n:45]4[H:94])/[c:3]([c:15]/5\\[n:42][c:14]1[C:20](=[C:21]5[C:39]([H:87])([H:88])[C:40]([H:89])([H:90])[C:27](=[O:48])[O:50][H:95])[C:33]([H:70])([H:71])[H:72])/[H:56])[C:38]([H:85])([H:86])[C:41]([H:91])([H:92])[C:28](=[O:49])[O:53][C:37]([H:82])([H:83])[H:84])[C:32]([H:67])([H:68])[H:69])/[H:57])/[C@:30]6([C:19]3=[C:17]([C:18](=[C:22]([C@@:29]6([H:63])[C:26](=[O:47])[O:52][C:36]([H:79])([H:80])[H:81])[C:25](=[O:46])[O:51][C:35]([H:76])([H:77])[H:78])[H:59])[H:58])[C:34]([H:73])([H:74])[H:75])\\[H:55])[C:31]([H:64])([H:65])[H:66])[C:24](=[C:23]([H:60])[H:61])[H:62]] _

input = 'COC(=O)CCC1=C2NC(\\C=C3/N=C(/C=C4\\N\\C(=C/C5=N/C(=C\\2)/C(CCC(O)=O)=C5C)C(C=C)=C4C)C2=CC=C([C@@H](C(=O)OC)[C@@]32C)C(=O)OC)=C1C'
output = '[H:54]/[c:1]/1[c:9]/2\\[c:5]([c:6](/[c:10](/[n:44]2[H:93])[c:2](/[c:13]3[n:43]/[c:16]([c:4](\\[c:12]4[c:7]([c:8]([c:1...])[H:59])[H:58])[C:34]([H:73])([H:74])[H:75])\\[H:55])[C:31]([H:64])([H:65])[H:66])[C:24](=[C:23]([H:60])[H:61])[H:62]'

    @using_openeye
    @pytest.mark.parametrize("input, output", get_smiles_lists(get_fn('drug_bank_stereo.smi'), get_fn('drug_bank_mapped_smi_oe.smi')))
    def test_drug_bank_oe(input, output):
        """

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

        Returns
        -------

        """
        mol = oechem.OEMol()
        oechem.OEParseSmiles(mol, input)
>       assert cmiles.utils.mol_to_smiles(mol, mapped=True, isomeric=True, explicit_hydrogen=True) == output
E       AssertionError: assert '[H:54][c:1]1...[H:61])[H:62]' == '[H:54]/[c:1]...[H:61])[H:62]'
E         - [H:54]/[c:1]/1[c:9]/2\[c:5]([c:6](/[c:10](/[n:44]2[H:93])[c:2](/[c:13]3[n:43]/[c:16]([c:4](\[c:12]4[c:7]([c:8]([c:11]([n:45]4[H:94])/[c:3]([c:15]/5\[n:42][c:14]1[C:20](=[C:21]5[C:39]([H:87])([H:88])[C:40]([H:89])([H:90])[C:27](=[O:48])[O:50][H:95])[C:33]([H:70])([H:71])[H:72])/[H:56])[C:38]([H:85])([H:86])[C:41]([H:91])([H:92])[C:28](=[O:49])[O:53][C:37]([H:82])([H:83])[H:84])[C:32]([H:67])([H:68])[H:69])/[H:57])/[C@:30]6([C:19]3=[C:17]([C:18](=[C:22]([C@@:29]6([H:63])[C:26](=[O:47])[O:52][C:36]([H:79])([H:80])[H:81])[C:25](=[O:46])[O:51][C:35]([H:76])([H:77])[H:78])[...
E         
E         ...Full output truncated (2 lines hidden), use '-vv' to show

../test_cmiles.py:318: AssertionError
_ test_drug_bank_oe[[H][C@]1(CCC(=O)OC\\C=C(/C)CCC[C@H](C)CCC[C@H](C)CCCC(C)C)[C@H](C)\\C2=C\\C3=C(C)C(C(C)=O)=C4\\C=C5/N=C(/C=C6\\N([Mg]N34)C3=C([C@@H](C(=O)OC)C(=O)C3=C6C)C1=N2)[C@H](CC)[C@H]5C-[H:67]/[c:1]1/[c:9]2[c:5]([c:8]([c:11]/3[n:58]2[Mg:66][n:59]4/[c:10]([c:2](\\[c:14]5[n:56]\\[c:13]1\\[C@:24]([C@@:26]5([H:74])[C:43]([H:118])([H:119])[C:34]([H:94])([H:95])[H:96])([H:72])[C:32]([H:88])([H:89])[H:90])/[H:68])/[c:7]([c:4]6[c:12]4[c:6]([c:16]7[n:57]/[c:15]([c:3]3/[H:69])/[C@@:25]([C@:27]7([H:75])[C:44]([H:120])([H:121])[C:42]([H:116])([H:117])[C:22](=[O:63])[O:65][C:40]([H:112])([H:113])/[C:18](=[C:20](\\[C:31]([H:85])([H:86])[H:87])/[C:41]([H:114])([H:115])[C:45]([H:122])([H:123])[C:48]([H:128])([H:129])[C@:54]([H:139])([C:37]([H:103])([H:104])[H:105])[C:51]([H:134])([H:135])[C:47]([H:126])([H:127])[C:52]([H:136])([H:137])[C@:55]([H:140])([C:38]([H:106])([H:107])[H:108])[C:50]([H:132])([H:133])[C:46]([H:124])([H:125])[C:49]([H:130])([H:131])[C:53]([H:138])([C:35]([H:97])([H:98])[H:99])[C:36]([H:100])([H:101])[H:102])/[H:70])([H:73])[C:33]([H:91])([H:92])[H:93])[C@@:23]([C:17]6=[O:60])([H:71])[C:21](=[O:62])[O:64][C:39]([H:109])([H:110])[H:111])[C:28]([H:76])([H:77])[H:78])[C:29]([H:79])([H:80])[H:81])[C:19](=[O:61])[C:30]([H:82])([H:83])[H:84]] _

input = '[H][C@]1(CCC(=O)OC\\C=C(/C)CCC[C@H](C)CCC[C@H](C)CCCC(C)C)[C@H](C)\\C2=C\\C3=C(C)C(C(C)=O)=C4\\C=C5/N=C(/C=C6\\N([Mg]N34)C3=C([C@@H](C(=O)OC)C(=O)C3=C6C)C1=N2)[C@H](CC)[C@H]5C'
output = '[H:67]/[c:1]1/[c:9]2[c:5]([c:8]([c:11]/3[n:58]2[Mg:66][n:59]4/[c:10]([c:2](\\[c:14]5[n:56]\\[c:13]1\\[C@:24]([C@@:26]...([H:110])[H:111])[C:28]([H:76])([H:77])[H:78])[C:29]([H:79])([H:80])[H:81])[C:19](=[O:61])[C:30]([H:82])([H:83])[H:84]'

    @using_openeye
    @pytest.mark.parametrize("input, output", get_smiles_lists(get_fn('drug_bank_stereo.smi'), get_fn('drug_bank_mapped_smi_oe.smi')))
    def test_drug_bank_oe(input, output):
        """

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

        Returns
        -------

        """
        mol = oechem.OEMol()
        oechem.OEParseSmiles(mol, input)
>       assert cmiles.utils.mol_to_smiles(mol, mapped=True, isomeric=True, explicit_hydrogen=True) == output
E       AssertionError: assert '[H:67][c:1]1...[H:83])[H:84]' == '[H:67]/[c:1]...[H:83])[H:84]'
E         - [H:67]/[c:1]1/[c:9]2[c:5]([c:8]([c:11]/3[n:58]2[Mg:66][n:59]4/[c:10]([c:2](\[c:14]5[n:56]\[c:13]1\[C@:24]([C@@:26]5([H:74])[C:43]([H:118])([H:119])[C:34]([H:94])([H:95])[H:96])([H:72])[C:32]([H:88])([H:89])[H:90])/[H:68])/[c:7]([c:4]6[c:12]4[c:6]([c:16]7[n:57]/[c:15]([c:3]3/[H:69])/[C@@:25]([C@:27]7([H:75])[C:44]([H:120])([H:121])[C:42]([H:116])([H:117])[C:22](=[O:63])[O:65][C:40]([H:112])([H:113])/[C:18](=[C:20](\[C:31]([H:85])([H:86])[H:87])/[C:41]([H:114])([H:115])[C:45]([H:122])([H:123])[C:48]([H:128])([H:129])[C@:54]([H:139])([C:37]([H:103])([H:104])[H:105])[C:51...
E         
E         ...Full output truncated (4 lines hidden), use '-vv' to show

../test_cmiles.py:318: AssertionError
_ test_drug_bank_oe[CCC1=C(C)\\C2=C\\C3=C(C=C)C(C)=C4\\C=C5/N=C([C@@H](CCC(=O)OC\\C=C(/C)CCC[C@H](C)CCC[C@H](C)CCCC(C)C)[C@@H]5C)C5=C6N([Mg]N34)\\C(=C/C1=N2)C(C)=C6C(=O)[C@@H]5C(=O)OC-[H:66]/[c:1]1/[c:9]2[c:5]([c:8]([c:11]/3[n:58]2[Mg:65][n:59]4/[c:10]([c:2](\\[c:14]5[n:56]\\[c:13]1\\[C:18](=[C:19]5[C:40]([H:109])([H:110])[C:34]([H:91])([H:92])[H:93])[C:31]([H:82])([H:83])[H:84])/[H:67])/[c:7]([c:4]6[c:12]4[c:6]([c:16]7[n:57]/[c:15]([c:3]3/[H:68])/[C@@:27]([C@:28]7([H:75])[C:44]([H:117])([H:118])[C:43]([H:115])([H:116])[C:25](=[O:62])[O:64][C:41]([H:111])([H:112])/[C:22](=[C:23](\\[C:32]([H:85])([H:86])[H:87])/[C:42]([H:113])([H:114])[C:45]([H:119])([H:120])[C:48]([H:125])([H:126])[C@:54]([H:136])([C:37]([H:100])([H:101])[H:102])[C:51]([H:131])([H:132])[C:47]([H:123])([H:124])[C:52]([H:133])([H:134])[C@:55]([H:137])([C:38]([H:103])([H:104])[H:105])[C:50]([H:129])([H:130])[C:46]([H:121])([H:122])[C:49]([H:127])([H:128])[C:53]([H:135])([C:35]([H:94])([H:95])[H:96])[C:36]([H:97])([H:98])[H:99])/[H:72])([H:74])[C:33]([H:88])([H:89])[H:90])[C@@:26]([C:17]6=[O:60])([H:73])[C:24](=[O:61])[O:63][C:39]([H:106])([H:107])[H:108])[C:29]([H:76])([H:77])[H:78])[C:30]([H:79])([H:80])[H:81])[C:21](=[C:20]([H:69])[H:70])[H:71]] _

input = 'CCC1=C(C)\\C2=C\\C3=C(C=C)C(C)=C4\\C=C5/N=C([C@@H](CCC(=O)OC\\C=C(/C)CCC[C@H](C)CCC[C@H](C)CCCC(C)C)[C@@H]5C)C5=C6N([Mg]N34)\\C(=C/C1=N2)C(C)=C6C(=O)[C@@H]5C(=O)OC'
output = '[H:66]/[c:1]1/[c:9]2[c:5]([c:8]([c:11]/3[n:58]2[Mg:65][n:59]4/[c:10]([c:2](\\[c:14]5[n:56]\\[c:13]1\\[C:18](=[C:19]5[...[H:106])([H:107])[H:108])[C:29]([H:76])([H:77])[H:78])[C:30]([H:79])([H:80])[H:81])[C:21](=[C:20]([H:69])[H:70])[H:71]'

    @using_openeye
    @pytest.mark.parametrize("input, output", get_smiles_lists(get_fn('drug_bank_stereo.smi'), get_fn('drug_bank_mapped_smi_oe.smi')))
    def test_drug_bank_oe(input, output):
        """

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

        Returns
        -------

        """
        mol = oechem.OEMol()
        oechem.OEParseSmiles(mol, input)
>       assert cmiles.utils.mol_to_smiles(mol, mapped=True, isomeric=True, explicit_hydrogen=True) == output
E       AssertionError: assert '[H:66][c:1]1...[H:70])[H:71]' == '[H:66]/[c:1]...[H:70])[H:71]'
E         - [H:66]/[c:1]1/[c:9]2[c:5]([c:8]([c:11]/3[n:58]2[Mg:65][n:59]4/[c:10]([c:2](\[c:14]5[n:56]\[c:13]1\[C:18](=[C:19]5[C:40]([H:109])([H:110])[C:34]([H:91])([H:92])[H:93])[C:31]([H:82])([H:83])[H:84])/[H:67])/[c:7]([c:4]6[c:12]4[c:6]([c:16]7[n:57]/[c:15]([c:3]3/[H:68])/[C@@:27]([C@:28]7([H:75])[C:44]([H:117])([H:118])[C:43]([H:115])([H:116])[C:25](=[O:62])[O:64][C:41]([H:111])([H:112])/[C:22](=[C:23](\[C:32]([H:85])([H:86])[H:87])/[C:42]([H:113])([H:114])[C:45]([H:119])([H:120])[C:48]([H:125])([H:126])[C@:54]([H:136])([C:37]([H:100])([H:101])[H:102])[C:51]([H:131])([H:132]...
E         
E         ...Full output truncated (4 lines hidden), use '-vv' to show

../test_cmiles.py:318: AssertionError
_ test_drug_bank_oe[[Co+7].[H]\\C-1=C2\\[N-]\\C(=C([H])/C3=N/C(=C([H])\\C4=C(CCC([O-])=O)C(C)=C(N4)\\C([H])=C4\\C=C(C)C-1=N4)/C(CCC(O)=O)=C3C)C(C)=C2-[H:40][c:1]\\1[c:6](/[c:10]/2[c:3](/[c:14]3[n:33]/[c:16]([c:5](\\[c:12]4[c:8]([c:7]([c:11]([n:34]4[H:66])/[c:4]([c:15]/5\\[n:32][c:13](/[c:2]([c:9]1\\[n-:31]2)/[H:41])[C:18](=[C:17]5[H:45])[C:25]([H:52])([H:53])[H:54])/[H:43])[C:24]([H:49])([H:50])[H:51])[C:27]([H:58])([H:59])[C:29]([H:62])([H:63])[C:21](=[O:36])[O-:35])/[H:44])/[C:20](=[C:19]3[C:26]([H:55])([H:56])[H:57])[C:28]([H:60])([H:61])[C:30]([H:64])([H:65])[C:22](=[O:37])[O:38][H:67])\\[H:42])[C:23]([H:46])([H:47])[H:48].[Co+7:39]] _

input = '[Co+7].[H]\\C-1=C2\\[N-]\\C(=C([H])/C3=N/C(=C([H])\\C4=C(CCC([O-])=O)C(C)=C(N4)\\C([H])=C4\\C=C(C)C-1=N4)/C(CCC(O)=O)=C3C)C(C)=C2'
output = '[H:40][c:1]\\1[c:6](/[c:10]/2[c:3](/[c:14]3[n:33]/[c:16]([c:5](\\[c:12]4[c:8]([c:7]([c:11]([n:34]4[H:66])/[c:4]([c:15...C:28]([H:60])([H:61])[C:30]([H:64])([H:65])[C:22](=[O:37])[O:38][H:67])\\[H:42])[C:23]([H:46])([H:47])[H:48].[Co+7:39]'

    @using_openeye
    @pytest.mark.parametrize("input, output", get_smiles_lists(get_fn('drug_bank_stereo.smi'), get_fn('drug_bank_mapped_smi_oe.smi')))
    def test_drug_bank_oe(input, output):
        """

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

        Returns
        -------

        """
        mol = oechem.OEMol()
        oechem.OEParseSmiles(mol, input)
>       assert cmiles.utils.mol_to_smiles(mol, mapped=True, isomeric=True, explicit_hydrogen=True) == output
E       AssertionError: assert '[H:40][c:1]1...48].[Co+7:39]' == '[H:40][c:1]\...48].[Co+7:39]'
E         - [H:40][c:1]\1[c:6](/[c:10]/2[c:3](/[c:14]3[n:33]/[c:16]([c:5](\[c:12]4[c:8]([c:7]([c:11]([n:34]4[H:66])/[c:4]([c:15]/5\[n:32][c:13](/[c:2]([c:9]1\[n-:31]2)/[H:41])[C:18](=[C:17]5[H:45])[C:25]([H:52])([H:53])[H:54])/[H:43])[C:24]([H:49])([H:50])[H:51])[C:27]([H:58])([H:59])[C:29]([H:62])([H:63])[C:21](=[O:36])[O-:35])/[H:44])/[C:20](=[C:19]3[C:26]([H:55])([H:56])[H:57])[C:28]([H:60])([H:61])[C:30]([H:64])([H:65])[C:22](=[O:37])[O:38][H:67])\[H:42])[C:23]([H:46])([H:47])[H:48].[Co+7:39]
E         ?            ^^^^^^^^^^^^^^^^^^^^^^^^             ^^^^^^^^^^^^^^^                    ...
E         
E         ...Full output truncated (3 lines hidden), use '-vv' to show

../test_cmiles.py:318: AssertionError
_ test_drug_bank_oe[CC1=C(CCC(O)=O)/C2=C/C3=N/C(=C\\C4=C(C)C(C=C)=C(N4)/C=C4\\N=C(\\C=C\\1/N\\2)C(C=C)=C4C)/C(C)=C3CCC(O)=O-[H:43]/[c:1]1/[c:9]2[c:5]([c:6]([c:10]([n:37]2[H:73])/[c:2]([c:15]/3\\[n:36][c:16](/[c:4]([c:12]\\4/[c:8]([c:7](/[c:11](/[n:38]4[H:74])[c:3](/[c:13]5[n:35]\\[c:14]1\\[C:18](=[C:17]5[C:24](=[C:22]([H:49])[H:50])[H:52])[C:29]([H:59])([H:60])[H:61])\\[H:45])[C:28]([H:56])([H:57])[H:58])[C:31]([H:65])([H:66])[C:33]([H:69])([H:70])[C:25](=[O:39])[O:41][H:75])/[H:46])[C:20](=[C:19]3[C:30]([H:62])([H:63])[H:64])[C:32]([H:67])([H:68])[C:34]([H:71])([H:72])[C:26](=[O:40])[O:42][H:76])/[H:44])[C:27]([H:53])([H:54])[H:55])[C:23](=[C:21]([H:47])[H:48])[H:51]] _

input = 'CC1=C(CCC(O)=O)/C2=C/C3=N/C(=C\\C4=C(C)C(C=C)=C(N4)/C=C4\\N=C(\\C=C\\1/N\\2)C(C=C)=C4C)/C(C)=C3CCC(O)=O'
output = '[H:43]/[c:1]1/[c:9]2[c:5]([c:6]([c:10]([n:37]2[H:73])/[c:2]([c:15]/3\\[n:36][c:16](/[c:4]([c:12]\\4/[c:8]([c:7](/[c:1...4]([H:71])([H:72])[C:26](=[O:40])[O:42][H:76])/[H:44])[C:27]([H:53])([H:54])[H:55])[C:23](=[C:21]([H:47])[H:48])[H:51]'

    @using_openeye
    @pytest.mark.parametrize("input, output", get_smiles_lists(get_fn('drug_bank_stereo.smi'), get_fn('drug_bank_mapped_smi_oe.smi')))
    def test_drug_bank_oe(input, output):
        """

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

        Returns
        -------

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

../test_cmiles.py:318: AssertionError
_ test_drug_bank_oe[CC1=C(CCC(O)=O)/C2=C/C3=N/C(=C\\C4=C(C)C(CCC(O)=O)=C(N4)/C=C4\\N=C(\\C=C\\1/N\\2)C(CCC(O)=O)=C4C)/C(CCC(O)=O)=C3C-[H:49]/[c:1]1/[c:9]2[c:5]([c:7]([c:11]([n:39]2[H:81])/[c:3]([c:16]/3\\[n:38][c:14](/[c:2]([c:10]\\4/[c:6]([c:8](/[c:12](/[n:40]4[H:82])[c:4](/[c:15]5[n:37]\\[c:13]1\\[C:19](=[C:17]5[C:27]([H:59])([H:60])[H:61])[C:31]([H:69])([H:70])[C:35]([H:77])([H:78])[C:23](=[O:43])[O:47][H:85])\\[H:52])[C:30]([H:67])([H:68])[C:34]([H:75])([H:76])[C:22](=[O:42])[O:46][H:84])[C:26]([H:56])([H:57])[H:58])/[H:50])[C:20](=[C:18]3[C:28]([H:62])([H:63])[H:64])[C:32]([H:71])([H:72])[C:36]([H:79])([H:80])[C:24](=[O:44])[O:48][H:86])/[H:51])[C:29]([H:65])([H:66])[C:33]([H:73])([H:74])[C:21](=[O:41])[O:45][H:83])[C:25]([H:53])([H:54])[H:55]] _

input = 'CC1=C(CCC(O)=O)/C2=C/C3=N/C(=C\\C4=C(C)C(CCC(O)=O)=C(N4)/C=C4\\N=C(\\C=C\\1/N\\2)C(CCC(O)=O)=C4C)/C(CCC(O)=O)=C3C'
output = '[H:49]/[c:1]1/[c:9]2[c:5]([c:7]([c:11]([n:39]2[H:81])/[c:3]([c:16]/3\\[n:38][c:14](/[c:2]([c:10]\\4/[c:6]([c:8](/[c:1...48][H:86])/[H:51])[C:29]([H:65])([H:66])[C:33]([H:73])([H:74])[C:21](=[O:41])[O:45][H:83])[C:25]([H:53])([H:54])[H:55]'

    @using_openeye
    @pytest.mark.parametrize("input, output", get_smiles_lists(get_fn('drug_bank_stereo.smi'), get_fn('drug_bank_mapped_smi_oe.smi')))
    def test_drug_bank_oe(input, output):
        """

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

        Returns
        -------

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

../test_cmiles.py:318: AssertionError
_ test_drug_bank_oe[[Mg++].CCC1=C(C=O)C2=N\\C\\1=C/C1=C(C)C3=C([N-]1)\\C([C@@H](C(=O)OC)C3=O)=C1/N=C(/C=C3\\[N-]/C(=C\\2)C(C=C)=C3C)[C@@H](C)[C@@H]1CCC(=O)OC\\C=C(/C)CCC[C@H](C)CCC[C@H](C)CCCC(C)C-[H:67]/[c:1]/1[c:9]/2\\[c:5]([c:8](/[c:11](/[n-:56]2)[c:3](/[c:15]3[n:59]/[c:16]([c:6]/4\\[c:12]5[c:4]([c:7]([c:10]([n-:57]5)/[c:2]([c:14]/6\\[n:58][c:13]1[C:18](=[C:19]6[C:40]([H:108])([H:109])[C:34]([H:90])([H:91])[H:92])[C:22](=[O:61])[H:73])/[H:68])[C:30]([H:78])([H:79])[H:80])[C:17](=[O:60])[C@:27]4([H:75])[C:25](=[O:62])[O:64][C:39]([H:105])([H:106])[H:107])/[C@@:29]([C@:28]3([H:76])[C:33]([H:87])([H:88])[H:89])([H:77])[C:44]([H:116])([H:117])[C:43]([H:114])([H:115])[C:26](=[O:63])[O:65][C:41]([H:110])([H:111])/[C:23](=[C:24](\\[C:32]([H:84])([H:85])[H:86])/[C:42]([H:112])([H:113])[C:45]([H:118])([H:119])[C:48]([H:124])([H:125])[C@:54]([H:135])([C:37]([H:99])([H:100])[H:101])[C:51]([H:130])([H:131])[C:47]([H:122])([H:123])[C:52]([H:132])([H:133])[C@:55]([H:136])([C:38]([H:102])([H:103])[H:104])[C:50]([H:128])([H:129])[C:46]([H:120])([H:121])[C:49]([H:126])([H:127])[C:53]([H:134])([C:35]([H:93])([H:94])[H:95])[C:36]([H:96])([H:97])[H:98])/[H:74])\\[H:69])[C:31]([H:81])([H:82])[H:83])[C:21](=[C:20]([H:70])[H:71])[H:72].[Mg+2:66]] _

input = '[Mg++].CCC1=C(C=O)C2=N\\C\\1=C/C1=C(C)C3=C([N-]1)\\C([C@@H](C(=O)OC)C3=O)=C1/N=C(/C=C3\\[N-]/C(=C\\2)C(C=C)=C3C)[C@@H](C)[C@@H]1CCC(=O)OC\\C=C(/C)CCC[C@H](C)CCC[C@H](C)CCCC(C)C'
output = '[H:67]/[c:1]/1[c:9]/2\\[c:5]([c:8](/[c:11](/[n-:56]2)[c:3](/[c:15]3[n:59]/[c:16]([c:6]/4\\[c:12]5[c:4]([c:7]([c:10]([...:36]([H:96])([H:97])[H:98])/[H:74])\\[H:69])[C:31]([H:81])([H:82])[H:83])[C:21](=[C:20]([H:70])[H:71])[H:72].[Mg+2:66]'

    @using_openeye
    @pytest.mark.parametrize("input, output", get_smiles_lists(get_fn('drug_bank_stereo.smi'), get_fn('drug_bank_mapped_smi_oe.smi')))
    def test_drug_bank_oe(input, output):
        """

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

        Returns
        -------

        """
        mol = oechem.OEMol()
        oechem.OEParseSmiles(mol, input)
>       assert cmiles.utils.mol_to_smiles(mol, mapped=True, isomeric=True, explicit_hydrogen=True) == output
E       AssertionError: assert '[H:67][c:1]1...72].[Mg+2:66]' == '[H:67]/[c:1]...72].[Mg+2:66]'
E         - [H:67]/[c:1]/1[c:9]/2\[c:5]([c:8](/[c:11](/[n-:56]2)[c:3](/[c:15]3[n:59]/[c:16]([c:6]/4\[c:12]5[c:4]([c:7]([c:10]([n-:57]5)/[c:2]([c:14]/6\[n:58][c:13]1[C:18](=[C:19]6[C:40]([H:108])([H:109])[C:34]([H:90])([H:91])[H:92])[C:22](=[O:61])[H:73])/[H:68])[C:30]([H:78])([H:79])[H:80])[C:17](=[O:60])[C@:27]4([H:75])[C:25](=[O:62])[O:64][C:39]([H:105])([H:106])[H:107])/[C@@:29]([C@:28]3([H:76])[C:33]([H:87])([H:88])[H:89])([H:77])[C:44]([H:116])([H:117])[C:43]([H:114])([H:115])[C:26](=[O:63])[O:65][C:41]([H:110])([H:111])/[C:23](=[C:24](\[C:32]([H:84])([H:85])[H:86])/[C:42]([...
E         
E         ...Full output truncated (4 lines hidden), use '-vv' to show

../test_cmiles.py:318: AssertionError
_ test_drug_bank_oe[[Cl-].[Cl-].[Sn+4].CCC1=C2[N-]C(\\C=C3/N=C(/C=C4\\[N-]\\C(=C/C5=N/C(=C\\2)/C(C)=C5CC)C(C)=C4CCC(O)=O)C(CCC(O)=O)=C3C)=C1C-[H:46]/[c:1]1/[c:9]2[c:5]([c:7]([c:11]([n-:35]2)/[c:3]([c:15]/3\\[n:38][c:14](/[c:2]([c:10]\\4/[c:6]([c:8](/[c:12](/[n-:36]4)[c:4](/[c:16]5[n:37]\\[c:13]1\\[C:17](=[C:20]5[C:32]([H:74])([H:75])[C:34]([H:78])([H:79])[C:22](=[O:40])[O:42][H:81])[C:25]([H:56])([H:57])[H:58])\\[H:49])[C:30]([H:70])([H:71])[C:33]([H:76])([H:77])[C:21](=[O:39])[O:41][H:80])[C:24]([H:53])([H:54])[H:55])/[H:47])[C:19](=[C:18]3[C:26]([H:59])([H:60])[H:61])[C:31]([H:72])([H:73])[C:28]([H:65])([H:66])[H:67])/[H:48])[C:29]([H:68])([H:69])[C:27]([H:62])([H:63])[H:64])[C:23]([H:50])([H:51])[H:52].[Cl-:43].[Cl-:44].[Sn+4:45]] _

input = '[Cl-].[Cl-].[Sn+4].CCC1=C2[N-]C(\\C=C3/N=C(/C=C4\\[N-]\\C(=C/C5=N/C(=C\\2)/C(C)=C5CC)C(C)=C4CCC(O)=O)C(CCC(O)=O)=C3C)=C1C'
output = '[H:46]/[c:1]1/[c:9]2[c:5]([c:7]([c:11]([n-:35]2)/[c:3]([c:15]/3\\[n:38][c:14](/[c:2]([c:10]\\4/[c:6]([c:8](/[c:12](/[...7])/[H:48])[C:29]([H:68])([H:69])[C:27]([H:62])([H:63])[H:64])[C:23]([H:50])([H:51])[H:52].[Cl-:43].[Cl-:44].[Sn+4:45]'

    @using_openeye
    @pytest.mark.parametrize("input, output", get_smiles_lists(get_fn('drug_bank_stereo.smi'), get_fn('drug_bank_mapped_smi_oe.smi')))
    def test_drug_bank_oe(input, output):
        """

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

        Returns
        -------

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

../test_cmiles.py:318: AssertionError
_ test_drug_bank_oe[O.[Lu+3].CC([O-])=O.CC([O-])=O.[H]/C1=C2/N=C(/C(/[H])=C3\\[N-]/C(=C([H])\\C4=N\\C(=C(/[H])\\N=C5\\C=C(OCCOCCOCCOC)C(OCCOCCOCCOC)=C\\C\\5=N\\1)\\C(C)=C4CCCO)C(CC)=C3CC)C(CCCO)=C2C-[H:75]/[c:2]/1[c:10]/2\\[c:8]([c:7](/[c:9](/[n-:53]2)[c:1](/[c:15]3[n:56]/[c:17]([c:5](\\[n:54][c:11]/4\\[c:3]([c:13]([c:14]([c:4](\\[c:12]4[n:55]\\[c:6]([c:18]/5\\[n:57][c:16]1[C:20](=[C:22]5[C:26]([H:83])([H:84])[H:85])[C:36]([H:110])([H:111])[C:38]([H:114])([H:115])[C:40]([H:118])([H:119])[O:64][H:147])\\[H:79])[H:77])[O:66][C:42]([H:122])([H:123])[C:46]([H:130])([H:131])[O:70][C:50]([H:138])([H:139])[C:52]([H:142])([H:143])[O:72][C:48]([H:134])([H:135])[C:44]([H:126])([H:127])[O:68][C:32]([H:101])([H:102])[H:103])[O:65][C:41]([H:120])([H:121])[C:45]([H:128])([H:129])[O:69][C:49]([H:136])([H:137])[C:51]([H:140])([H:141])[O:71][C:47]([H:132])([H:133])[C:43]([H:124])([H:125])[O:67][C:31]([H:98])([H:99])[H:100])[H:76])/[H:78])/[C:21](=[C:19]3[C:35]([H:108])([H:109])[C:37]([H:112])([H:113])[C:39]([H:116])([H:117])[O:63][H:146])[C:25]([H:80])([H:81])[H:82])\\[H:74])[C:33]([H:104])([H:105])[C:29]([H:92])([H:93])[H:94])[C:34]([H:106])([H:107])[C:30]([H:95])([H:96])[H:97].[H:86][C:27]([H:87])([H:88])[C:23](=[O:60])[O-:58].[H:89][C:28]([H:90])([H:91])[C:24](=[O:61])[O-:59].[H:144][O:62][H:145].[Lu+3:73]] _

input = 'O.[Lu+3].CC([O-])=O.CC([O-])=O.[H]/C1=C2/N=C(/C(/[H])=C3\\[N-]/C(=C([H])\\C4=N\\C(=C(/[H])\\N=C5\\C=C(OCCOCCOCCOC)C(OCCOCCOCCOC)=C\\C\\5=N\\1)\\C(C)=C4CCCO)C(CC)=C3CC)C(CCCO)=C2C'
output = '[H:75]/[c:2]/1[c:10]/2\\[c:8]([c:7](/[c:9](/[n-:53]2)[c:1](/[c:15]3[n:56]/[c:17]([c:5](\\[n:54][c:11]/4\\[c:3]([c:13]...H:87])([H:88])[C:23](=[O:60])[O-:58].[H:89][C:28]([H:90])([H:91])[C:24](=[O:61])[O-:59].[H:144][O:62][H:145].[Lu+3:73]'

    @using_openeye
    @pytest.mark.parametrize("input, output", get_smiles_lists(get_fn('drug_bank_stereo.smi'), get_fn('drug_bank_mapped_smi_oe.smi')))
    def test_drug_bank_oe(input, output):
        """

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

        Returns
        -------

        """
        mol = oechem.OEMol()
        oechem.OEParseSmiles(mol, input)
>       assert cmiles.utils.mol_to_smiles(mol, mapped=True, isomeric=True, explicit_hydrogen=True) == output
E       AssertionError: assert '[H:75][c:2]1...45].[Lu+3:73]' == '[H:75]/[c:2]...45].[Lu+3:73]'
E         - [H:75]/[c:2]/1[c:10]/2\[c:8]([c:7](/[c:9](/[n-:53]2)[c:1](/[c:15]3[n:56]/[c:17]([c:5](\[n:54][c:11]/4\[c:3]([c:13]([c:14]([c:4](\[c:12]4[n:55]\[c:6]([c:18]/5\[n:57][c:16]1[C:20](=[C:22]5[C:26]([H:83])([H:84])[H:85])[C:36]([H:110])([H:111])[C:38]([H:114])([H:115])[C:40]([H:118])([H:119])[O:64][H:147])\[H:79])[H:77])[O:66][C:42]([H:122])([H:123])[C:46]([H:130])([H:131])[O:70][C:50]([H:138])([H:139])[C:52]([H:142])([H:143])[O:72][C:48]([H:134])([H:135])[C:44]([H:126])([H:127])[O:68][C:32]([H:101])([H:102])[H:103])[O:65][C:41]([H:120])([H:121])[C:45]([H:128])([H:129])[O:6...
E         
E         ...Full output truncated (2 lines hidden), use '-vv' to show

../test_cmiles.py:318: AssertionError
_ test_drug_bank_oe[[Gd+3].CC([O-])=O.CC([O-])=O.CCC1=C(CC)/C2=C/C3=N/C(=C\\N=C4/C=C(OCCOCCOCCOC)C(OCCOCCOCCOC)=C/C/4=N\\C=C4/N=C(/C=C\\1\\[N-]\\2)C(CCCO)=C4C)/C(C)=C3CCCO-[H:73]/[c:1]1/[c:15]2[n:56]/[c:17]([c:5](\\[n:54][c:11]/3\\[c:12]([n:55]\\[c:6]([c:18]\\4/[n:57][c:16](/[c:2]([c:10]/5\\[n-:53]\\[c:9]1\\[c:7]([c:8]5[C:34]([C:30]([H:94])([H:95])[H:96])([H:105])[H:106])[C:33]([C:29]([H:91])([H:92])[H:93])([H:103])[H:104])/[H:74])[C:20](=[C:22]4[C:26]([H:82])([H:83])[H:84])[C:36]([C:38]([C:40]([O:63][H:144])([H:117])[H:118])([H:113])[H:114])([H:109])[H:110])\\[H:78])\\[c:4]([c:14]([c:13]([c:3]3[H:75])[O:64][C:41]([C:45]([O:68][C:49]([C:51]([O:70][C:47]([C:43]([O:66][C:31]([H:97])([H:98])[H:99])([H:123])[H:124])([H:131])[H:132])([H:139])[H:140])([H:135])[H:136])([H:127])[H:128])([H:119])[H:120])[O:65][C:42]([C:46]([O:69][C:50]([C:52]([O:71][C:48]([C:44]([O:67][C:32]([H:100])([H:101])[H:102])([H:125])[H:126])([H:133])[H:134])([H:141])[H:142])([H:137])[H:138])([H:129])[H:130])([H:121])[H:122])[H:76])/[H:77])/[C:21](=[C:19]2[C:35]([C:37]([C:39]([O:62][H:143])([H:115])[H:116])([H:111])[H:112])([H:107])[H:108])[C:25]([H:79])([H:80])[H:81].[H:85][C:27]([C:23](=[O:60])[O-:58])([H:86])[H:87].[H:88][C:28]([C:24](=[O:61])[O-:59])([H:89])[H:90].[Gd+3:72]] _

input = '[Gd+3].CC([O-])=O.CC([O-])=O.CCC1=C(CC)/C2=C/C3=N/C(=C\\N=C4/C=C(OCCOCCOCCOC)C(OCCOCCOCCOC)=C/C/4=N\\C=C4/N=C(/C=C\\1\\[N-]\\2)C(CCCO)=C4C)/C(C)=C3CCCO'
output = '[H:73]/[c:1]1/[c:15]2[n:56]/[c:17]([c:5](\\[n:54][c:11]/3\\[c:12]([n:55]\\[c:6]([c:18]\\4/[n:57][c:16](/[c:2]([c:10]/...[H:81].[H:85][C:27]([C:23](=[O:60])[O-:58])([H:86])[H:87].[H:88][C:28]([C:24](=[O:61])[O-:59])([H:89])[H:90].[Gd+3:72]'

    @using_openeye
    @pytest.mark.parametrize("input, output", get_smiles_lists(get_fn('drug_bank_stereo.smi'), get_fn('drug_bank_mapped_smi_oe.smi')))
    def test_drug_bank_oe(input, output):
        """

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

        Returns
        -------

        """
        mol = oechem.OEMol()
        oechem.OEParseSmiles(mol, input)
>       assert cmiles.utils.mol_to_smiles(mol, mapped=True, isomeric=True, explicit_hydrogen=True) == output
E       AssertionError: assert '[H:73][c:1]1...90].[Gd+3:72]' == '[H:73]/[c:1]...90].[Gd+3:72]'
E         - [H:73]/[c:1]1/[c:15]2[n:56]/[c:17]([c:5](\[n:54][c:11]/3\[c:12]([n:55]\[c:6]([c:18]\4/[n:57][c:16](/[c:2]([c:10]/5\[n-:53]\[c:9]1\[c:7]([c:8]5[C:34]([C:30]([H:94])([H:95])[H:96])([H:105])[H:106])[C:33]([C:29]([H:91])([H:92])[H:93])([H:103])[H:104])/[H:74])[C:20](=[C:22]4[C:26]([H:82])([H:83])[H:84])[C:36]([C:38]([C:40]([O:63][H:144])([H:117])[H:118])([H:113])[H:114])([H:109])[H:110])\[H:78])\[c:4]([c:14]([c:13]([c:3]3[H:75])[O:64][C:41]([C:45]([O:68][C:49]([C:51]([O:70][C:47]([C:43]([O:66][C:31]([H:97])([H:98])[H:99])([H:123])[H:124])([H:131])[H:132])([H:139])[H:140])...
E         
E         ...Full output truncated (2 lines hidden), use '-vv' to show

../test_cmiles.py:318: AssertionError
----------------------------- Captured stderr call -----------------------------
Warning: Problem parsing SMILES:
Warning: Inconsistent cis/trans bond stereo.
Warning: [Gd+3].CC([O-])=O.CC([O-])=O.CCC1=C(CC)/C2=C/C3=N/C(=C\N=C4/C=C(OCCOCCOCCOC)C(OCCOCCOCCOC)=C/C/4=N\C=C4/N=C(/C=C\1\[N-]\2)C(CCCO)=C4C)/C(C)=C3CCCO
_ test_drug_bank_oe[CCC1=C(C)\\C2=C\\C3=C(C=C)C(C)=C(N3)\\C=C3/N=C([C@@H](CCC(O)=O)[C@@H]3C)/C(/CC(=O)N[C@@H](CC(O)=O)C(O)=O)=C3\\N\\C(=C/C1=N2)C(C)=C3C(O)=O-[H:53]/[c:1]1/[c:9]2[c:4]([c:6]([c:11]([n:41]2[H:87])/[c:3]([c:15]/3\\[n:40][c:16](/[c:8]([c:12]\\4/[c:5]([c:7](/[c:10](/[n:42]4[H:88])[c:2](/[c:14]5[n:39]\\[c:13]1\\[C:17](=[C:18]5[C:34]([H:78])([H:79])[C:32]([H:73])([H:74])[H:75])[C:30]([H:67])([H:68])[H:69])\\[H:54])[C:29]([H:64])([H:65])[H:66])[C:21](=[O:44])[O:49][H:90])/[C:33]([H:76])([H:77])[C:22](=[O:45])[N:43]([H:89])[C@:38]([H:86])([C:25](=[O:48])[O:52][H:93])[C:36]([H:82])([H:83])[C:24](=[O:47])[O:51][H:92])[C@@:27]([C@:26]3([H:59])[C:31]([H:70])([H:71])[H:72])([H:60])[C:37]([H:84])([H:85])[C:35]([H:80])([H:81])[C:23](=[O:46])[O:50][H:91])/[H:55])[C:28]([H:61])([H:62])[H:63])[C:20](=[C:19]([H:56])[H:57])[H:58]] _

input = 'CCC1=C(C)\\C2=C\\C3=C(C=C)C(C)=C(N3)\\C=C3/N=C([C@@H](CCC(O)=O)[C@@H]3C)/C(/CC(=O)N[C@@H](CC(O)=O)C(O)=O)=C3\\N\\C(=C/C1=N2)C(C)=C3C(O)=O'
output = '[H:53]/[c:1]1/[c:9]2[c:4]([c:6]([c:11]([n:41]2[H:87])/[c:3]([c:15]/3\\[n:40][c:16](/[c:8]([c:12]\\4/[c:5]([c:7](/[c:1...5]([H:80])([H:81])[C:23](=[O:46])[O:50][H:91])/[H:55])[C:28]([H:61])([H:62])[H:63])[C:20](=[C:19]([H:56])[H:57])[H:58]'

    @using_openeye
    @pytest.mark.parametrize("input, output", get_smiles_lists(get_fn('drug_bank_stereo.smi'), get_fn('drug_bank_mapped_smi_oe.smi')))
    def test_drug_bank_oe(input, output):
        """

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

        Returns
        -------

        """
        mol = oechem.OEMol()
        oechem.OEParseSmiles(mol, input)
>       assert cmiles.utils.mol_to_smiles(mol, mapped=True, isomeric=True, explicit_hydrogen=True) == output
E       AssertionError: assert '[H:53][c:1]1...[H:57])[H:58]' == '[H:53]/[c:1]...[H:57])[H:58]'
E         - [H:53]/[c:1]1/[c:9]2[c:4]([c:6]([c:11]([n:41]2[H:87])/[c:3]([c:15]/3\[n:40][c:16](/[c:8]([c:12]\4/[c:5]([c:7](/[c:10](/[n:42]4[H:88])[c:2](/[c:14]5[n:39]\[c:13]1\[C:17](=[C:18]5[C:34]([H:78])([H:79])[C:32]([H:73])([H:74])[H:75])[C:30]([H:67])([H:68])[H:69])\[H:54])[C:29]([H:64])([H:65])[H:66])[C:21](=[O:44])[O:49][H:90])/[C:33]([H:76])([H:77])[C:22](=[O:45])[N:43]([H:89])[C@:38]([H:86])([C:25](=[O:48])[O:52][H:93])[C:36]([H:82])([H:83])[C:24](=[O:47])[O:51][H:92])[C@@:27]([C@:26]3([H:59])[C:31]([H:70])([H:71])[H:72])([H:60])[C:37]([H:84])([H:85])[C:35]([H:80])([H:81])...
E         
E         ...Full output truncated (4 lines hidden), use '-vv' to show

../test_cmiles.py:318: AssertionError
_ test_drug_bank_oe[N1C2=C3C=CC=CC3=C1\\N=C1/N=C(/N=C3\\N=C(NC4=N\\C(=N/2)C2=CC=CC=C42)C2=CC=CC=C32)C2=CC=CC=C12-[H:41][c:1]1[c:2]([c:10]([c:18]2[c:17]([c:9]1[H:49])[c:25]3/[n:33][c:27]/4\\[n:35][c:29](/[n:36][c:30]/5\\[n:38][c:32]([n:40]([c:31]-6[n:37]/[c:28]([n:34]\\[c:26]2[n:39]3[H:57])/[c:21]7[c:23]6[c:15]([c:7]([c:5]([c:13]7[H:53])[H:45])[H:47])[H:55])[H:58])-[c:24]8[c:22]5[c:14]([c:6]([c:8]([c:16]8[H:56])[H:48])[H:46])[H:54])-[c:20]9[c:19]4[c:11]([c:3]([c:4]([c:12]9[H:52])[H:44])[H:43])[H:51])[H:50])[H:42]] _

input = 'N1C2=C3C=CC=CC3=C1\\N=C1/N=C(/N=C3\\N=C(NC4=N\\C(=N/2)C2=CC=CC=C42)C2=CC=CC=C32)C2=CC=CC=C12'
output = '[H:41][c:1]1[c:2]([c:10]([c:18]2[c:17]([c:9]1[H:49])[c:25]3/[n:33][c:27]/4\\[n:35][c:29](/[n:36][c:30]/5\\[n:38][c:32...([c:16]8[H:56])[H:48])[H:46])[H:54])-[c:20]9[c:19]4[c:11]([c:3]([c:4]([c:12]9[H:52])[H:44])[H:43])[H:51])[H:50])[H:42]'

    @using_openeye
    @pytest.mark.parametrize("input, output", get_smiles_lists(get_fn('drug_bank_stereo.smi'), get_fn('drug_bank_mapped_smi_oe.smi')))
    def test_drug_bank_oe(input, output):
        """

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

        Returns
        -------

        """
        mol = oechem.OEMol()
        oechem.OEParseSmiles(mol, input)
>       assert cmiles.utils.mol_to_smiles(mol, mapped=True, isomeric=True, explicit_hydrogen=True) == output
E       AssertionError: assert '[H:41][c:1]1...[H:50])[H:42]' == '[H:41][c:1]1...[H:50])[H:42]'
E         - [H:41][c:1]1[c:2]([c:10]([c:18]2[c:17]([c:9]1[H:49])[c:25]3/[n:33][c:27]/4\[n:35][c:29](/[n:36][c:30]/5\[n:38][c:32]([n:40]([c:31]-6[n:37]/[c:28]([n:34]\[c:26]2[n:39]3[H:57])/[c:21]7[c:23]6[c:15]([c:7]([c:5]([c:13]7[H:53])[H:45])[H:47])[H:55])[H:58])-[c:24]8[c:22]5[c:14]([c:6]([c:8]([c:16]8[H:56])[H:48])[H:46])[H:54])-[c:20]9[c:19]4[c:11]([c:3]([c:4]([c:12]9[H:52])[H:44])[H:43])[H:51])[H:50])[H:42]
E         + [H:41][c:1]1[c:2]([c:10]([c:18]2[c:17]([c:9]1[H:49])[c:25]3[n:33][c:27]-4[n:35][c:29]([n:36][c:30]-5[n:38][c:32]([n:40]([c:31]-6[n:37][c:28]([n:34][c:26]2[n:39]3[H:57])-[c...
E         
E         ...Full output truncated (1 line hidden), use '-vv' to show

../test_cmiles.py:318: AssertionError
=========================== short test summary info ============================
FAILED ../test_cmiles.py::test_drug_bank_oe[COC(=O)CCC1=C2NC(\\C=C3/N=C(/C=C4\\N\\C(=C/C5=N/C(=C\\2)/C(CCC(O)=O)=C5C)C(C=C)=C4C)C2=CC=C([C@@H](C(=O)OC)[C@@]32C)C(=O)OC)=C1C-[H:54]/[c:1]/1[c:9]/2\\[c:5]([c:6](/[c:10](/[n:44]2[H:93])[c:2](/[c:13]3[n:43]/[c:16]([c:4](\\[c:12]4[c:7]([c:8]([c:11]([n:45]4[H:94])/[c:3]([c:15]/5\\[n:42][c:14]1[C:20](=[C:21]5[C:39]([H:87])([H:88])[C:40]([H:89])([H:90])[C:27](=[O:48])[O:50][H:95])[C:33]([H:70])([H:71])[H:72])/[H:56])[C:38]([H:85])([H:86])[C:41]([H:91])([H:92])[C:28](=[O:49])[O:53][C:37]([H:82])([H:83])[H:84])[C:32]([H:67])([H:68])[H:69])/[H:57])/[C@:30]6([C:19]3=[C:17]([C:18](=[C:22]([C@@:29]6([H:63])[C:26](=[O:47])[O:52][C:36]([H:79])([H:80])[H:81])[C:25](=[O:46])[O:51][C:35]([H:76])([H:77])[H:78])[H:59])[H:58])[C:34]([H:73])([H:74])[H:75])\\[H:55])[C:31]([H:64])([H:65])[H:66])[C:24](=[C:23]([H:60])[H:61])[H:62]]
FAILED ../test_cmiles.py::test_drug_bank_oe[[H][C@]1(CCC(=O)OC\\C=C(/C)CCC[C@H](C)CCC[C@H](C)CCCC(C)C)[C@H](C)\\C2=C\\C3=C(C)C(C(C)=O)=C4\\C=C5/N=C(/C=C6\\N([Mg]N34)C3=C([C@@H](C(=O)OC)C(=O)C3=C6C)C1=N2)[C@H](CC)[C@H]5C-[H:67]/[c:1]1/[c:9]2[c:5]([c:8]([c:11]/3[n:58]2[Mg:66][n:59]4/[c:10]([c:2](\\[c:14]5[n:56]\\[c:13]1\\[C@:24]([C@@:26]5([H:74])[C:43]([H:118])([H:119])[C:34]([H:94])([H:95])[H:96])([H:72])[C:32]([H:88])([H:89])[H:90])/[H:68])/[c:7]([c:4]6[c:12]4[c:6]([c:16]7[n:57]/[c:15]([c:3]3/[H:69])/[C@@:25]([C@:27]7([H:75])[C:44]([H:120])([H:121])[C:42]([H:116])([H:117])[C:22](=[O:63])[O:65][C:40]([H:112])([H:113])/[C:18](=[C:20](\\[C:31]([H:85])([H:86])[H:87])/[C:41]([H:114])([H:115])[C:45]([H:122])([H:123])[C:48]([H:128])([H:129])[C@:54]([H:139])([C:37]([H:103])([H:104])[H:105])[C:51]([H:134])([H:135])[C:47]([H:126])([H:127])[C:52]([H:136])([H:137])[C@:55]([H:140])([C:38]([H:106])([H:107])[H:108])[C:50]([H:132])([H:133])[C:46]([H:124])([H:125])[C:49]([H:130])([H:131])[C:53]([H:138])([C:35]([H:97])([H:98])[H:99])[C:36]([H:100])([H:101])[H:102])/[H:70])([H:73])[C:33]([H:91])([H:92])[H:93])[C@@:23]([C:17]6=[O:60])([H:71])[C:21](=[O:62])[O:64][C:39]([H:109])([H:110])[H:111])[C:28]([H:76])([H:77])[H:78])[C:29]([H:79])([H:80])[H:81])[C:19](=[O:61])[C:30]([H:82])([H:83])[H:84]]
FAILED ../test_cmiles.py::test_drug_bank_oe[CCC1=C(C)\\C2=C\\C3=C(C=C)C(C)=C4\\C=C5/N=C([C@@H](CCC(=O)OC\\C=C(/C)CCC[C@H](C)CCC[C@H](C)CCCC(C)C)[C@@H]5C)C5=C6N([Mg]N34)\\C(=C/C1=N2)C(C)=C6C(=O)[C@@H]5C(=O)OC-[H:66]/[c:1]1/[c:9]2[c:5]([c:8]([c:11]/3[n:58]2[Mg:65][n:59]4/[c:10]([c:2](\\[c:14]5[n:56]\\[c:13]1\\[C:18](=[C:19]5[C:40]([H:109])([H:110])[C:34]([H:91])([H:92])[H:93])[C:31]([H:82])([H:83])[H:84])/[H:67])/[c:7]([c:4]6[c:12]4[c:6]([c:16]7[n:57]/[c:15]([c:3]3/[H:68])/[C@@:27]([C@:28]7([H:75])[C:44]([H:117])([H:118])[C:43]([H:115])([H:116])[C:25](=[O:62])[O:64][C:41]([H:111])([H:112])/[C:22](=[C:23](\\[C:32]([H:85])([H:86])[H:87])/[C:42]([H:113])([H:114])[C:45]([H:119])([H:120])[C:48]([H:125])([H:126])[C@:54]([H:136])([C:37]([H:100])([H:101])[H:102])[C:51]([H:131])([H:132])[C:47]([H:123])([H:124])[C:52]([H:133])([H:134])[C@:55]([H:137])([C:38]([H:103])([H:104])[H:105])[C:50]([H:129])([H:130])[C:46]([H:121])([H:122])[C:49]([H:127])([H:128])[C:53]([H:135])([C:35]([H:94])([H:95])[H:96])[C:36]([H:97])([H:98])[H:99])/[H:72])([H:74])[C:33]([H:88])([H:89])[H:90])[C@@:26]([C:17]6=[O:60])([H:73])[C:24](=[O:61])[O:63][C:39]([H:106])([H:107])[H:108])[C:29]([H:76])([H:77])[H:78])[C:30]([H:79])([H:80])[H:81])[C:21](=[C:20]([H:69])[H:70])[H:71]]
FAILED ../test_cmiles.py::test_drug_bank_oe[[Co+7].[H]\\C-1=C2\\[N-]\\C(=C([H])/C3=N/C(=C([H])\\C4=C(CCC([O-])=O)C(C)=C(N4)\\C([H])=C4\\C=C(C)C-1=N4)/C(CCC(O)=O)=C3C)C(C)=C2-[H:40][c:1]\\1[c:6](/[c:10]/2[c:3](/[c:14]3[n:33]/[c:16]([c:5](\\[c:12]4[c:8]([c:7]([c:11]([n:34]4[H:66])/[c:4]([c:15]/5\\[n:32][c:13](/[c:2]([c:9]1\\[n-:31]2)/[H:41])[C:18](=[C:17]5[H:45])[C:25]([H:52])([H:53])[H:54])/[H:43])[C:24]([H:49])([H:50])[H:51])[C:27]([H:58])([H:59])[C:29]([H:62])([H:63])[C:21](=[O:36])[O-:35])/[H:44])/[C:20](=[C:19]3[C:26]([H:55])([H:56])[H:57])[C:28]([H:60])([H:61])[C:30]([H:64])([H:65])[C:22](=[O:37])[O:38][H:67])\\[H:42])[C:23]([H:46])([H:47])[H:48].[Co+7:39]]
FAILED ../test_cmiles.py::test_drug_bank_oe[CC1=C(CCC(O)=O)/C2=C/C3=N/C(=C\\C4=C(C)C(C=C)=C(N4)/C=C4\\N=C(\\C=C\\1/N\\2)C(C=C)=C4C)/C(C)=C3CCC(O)=O-[H:43]/[c:1]1/[c:9]2[c:5]([c:6]([c:10]([n:37]2[H:73])/[c:2]([c:15]/3\\[n:36][c:16](/[c:4]([c:12]\\4/[c:8]([c:7](/[c:11](/[n:38]4[H:74])[c:3](/[c:13]5[n:35]\\[c:14]1\\[C:18](=[C:17]5[C:24](=[C:22]([H:49])[H:50])[H:52])[C:29]([H:59])([H:60])[H:61])\\[H:45])[C:28]([H:56])([H:57])[H:58])[C:31]([H:65])([H:66])[C:33]([H:69])([H:70])[C:25](=[O:39])[O:41][H:75])/[H:46])[C:20](=[C:19]3[C:30]([H:62])([H:63])[H:64])[C:32]([H:67])([H:68])[C:34]([H:71])([H:72])[C:26](=[O:40])[O:42][H:76])/[H:44])[C:27]([H:53])([H:54])[H:55])[C:23](=[C:21]([H:47])[H:48])[H:51]]
FAILED ../test_cmiles.py::test_drug_bank_oe[CC1=C(CCC(O)=O)/C2=C/C3=N/C(=C\\C4=C(C)C(CCC(O)=O)=C(N4)/C=C4\\N=C(\\C=C\\1/N\\2)C(CCC(O)=O)=C4C)/C(CCC(O)=O)=C3C-[H:49]/[c:1]1/[c:9]2[c:5]([c:7]([c:11]([n:39]2[H:81])/[c:3]([c:16]/3\\[n:38][c:14](/[c:2]([c:10]\\4/[c:6]([c:8](/[c:12](/[n:40]4[H:82])[c:4](/[c:15]5[n:37]\\[c:13]1\\[C:19](=[C:17]5[C:27]([H:59])([H:60])[H:61])[C:31]([H:69])([H:70])[C:35]([H:77])([H:78])[C:23](=[O:43])[O:47][H:85])\\[H:52])[C:30]([H:67])([H:68])[C:34]([H:75])([H:76])[C:22](=[O:42])[O:46][H:84])[C:26]([H:56])([H:57])[H:58])/[H:50])[C:20](=[C:18]3[C:28]([H:62])([H:63])[H:64])[C:32]([H:71])([H:72])[C:36]([H:79])([H:80])[C:24](=[O:44])[O:48][H:86])/[H:51])[C:29]([H:65])([H:66])[C:33]([H:73])([H:74])[C:21](=[O:41])[O:45][H:83])[C:25]([H:53])([H:54])[H:55]]
FAILED ../test_cmiles.py::test_drug_bank_oe[[Mg++].CCC1=C(C=O)C2=N\\C\\1=C/C1=C(C)C3=C([N-]1)\\C([C@@H](C(=O)OC)C3=O)=C1/N=C(/C=C3\\[N-]/C(=C\\2)C(C=C)=C3C)[C@@H](C)[C@@H]1CCC(=O)OC\\C=C(/C)CCC[C@H](C)CCC[C@H](C)CCCC(C)C-[H:67]/[c:1]/1[c:9]/2\\[c:5]([c:8](/[c:11](/[n-:56]2)[c:3](/[c:15]3[n:59]/[c:16]([c:6]/4\\[c:12]5[c:4]([c:7]([c:10]([n-:57]5)/[c:2]([c:14]/6\\[n:58][c:13]1[C:18](=[C:19]6[C:40]([H:108])([H:109])[C:34]([H:90])([H:91])[H:92])[C:22](=[O:61])[H:73])/[H:68])[C:30]([H:78])([H:79])[H:80])[C:17](=[O:60])[C@:27]4([H:75])[C:25](=[O:62])[O:64][C:39]([H:105])([H:106])[H:107])/[C@@:29]([C@:28]3([H:76])[C:33]([H:87])([H:88])[H:89])([H:77])[C:44]([H:116])([H:117])[C:43]([H:114])([H:115])[C:26](=[O:63])[O:65][C:41]([H:110])([H:111])/[C:23](=[C:24](\\[C:32]([H:84])([H:85])[H:86])/[C:42]([H:112])([H:113])[C:45]([H:118])([H:119])[C:48]([H:124])([H:125])[C@:54]([H:135])([C:37]([H:99])([H:100])[H:101])[C:51]([H:130])([H:131])[C:47]([H:122])([H:123])[C:52]([H:132])([H:133])[C@:55]([H:136])([C:38]([H:102])([H:103])[H:104])[C:50]([H:128])([H:129])[C:46]([H:120])([H:121])[C:49]([H:126])([H:127])[C:53]([H:134])([C:35]([H:93])([H:94])[H:95])[C:36]([H:96])([H:97])[H:98])/[H:74])\\[H:69])[C:31]([H:81])([H:82])[H:83])[C:21](=[C:20]([H:70])[H:71])[H:72].[Mg+2:66]]
FAILED ../test_cmiles.py::test_drug_bank_oe[[Cl-].[Cl-].[Sn+4].CCC1=C2[N-]C(\\C=C3/N=C(/C=C4\\[N-]\\C(=C/C5=N/C(=C\\2)/C(C)=C5CC)C(C)=C4CCC(O)=O)C(CCC(O)=O)=C3C)=C1C-[H:46]/[c:1]1/[c:9]2[c:5]([c:7]([c:11]([n-:35]2)/[c:3]([c:15]/3\\[n:38][c:14](/[c:2]([c:10]\\4/[c:6]([c:8](/[c:12](/[n-:36]4)[c:4](/[c:16]5[n:37]\\[c:13]1\\[C:17](=[C:20]5[C:32]([H:74])([H:75])[C:34]([H:78])([H:79])[C:22](=[O:40])[O:42][H:81])[C:25]([H:56])([H:57])[H:58])\\[H:49])[C:30]([H:70])([H:71])[C:33]([H:76])([H:77])[C:21](=[O:39])[O:41][H:80])[C:24]([H:53])([H:54])[H:55])/[H:47])[C:19](=[C:18]3[C:26]([H:59])([H:60])[H:61])[C:31]([H:72])([H:73])[C:28]([H:65])([H:66])[H:67])/[H:48])[C:29]([H:68])([H:69])[C:27]([H:62])([H:63])[H:64])[C:23]([H:50])([H:51])[H:52].[Cl-:43].[Cl-:44].[Sn+4:45]]
FAILED ../test_cmiles.py::test_drug_bank_oe[O.[Lu+3].CC([O-])=O.CC([O-])=O.[H]/C1=C2/N=C(/C(/[H])=C3\\[N-]/C(=C([H])\\C4=N\\C(=C(/[H])\\N=C5\\C=C(OCCOCCOCCOC)C(OCCOCCOCCOC)=C\\C\\5=N\\1)\\C(C)=C4CCCO)C(CC)=C3CC)C(CCCO)=C2C-[H:75]/[c:2]/1[c:10]/2\\[c:8]([c:7](/[c:9](/[n-:53]2)[c:1](/[c:15]3[n:56]/[c:17]([c:5](\\[n:54][c:11]/4\\[c:3]([c:13]([c:14]([c:4](\\[c:12]4[n:55]\\[c:6]([c:18]/5\\[n:57][c:16]1[C:20](=[C:22]5[C:26]([H:83])([H:84])[H:85])[C:36]([H:110])([H:111])[C:38]([H:114])([H:115])[C:40]([H:118])([H:119])[O:64][H:147])\\[H:79])[H:77])[O:66][C:42]([H:122])([H:123])[C:46]([H:130])([H:131])[O:70][C:50]([H:138])([H:139])[C:52]([H:142])([H:143])[O:72][C:48]([H:134])([H:135])[C:44]([H:126])([H:127])[O:68][C:32]([H:101])([H:102])[H:103])[O:65][C:41]([H:120])([H:121])[C:45]([H:128])([H:129])[O:69][C:49]([H:136])([H:137])[C:51]([H:140])([H:141])[O:71][C:47]([H:132])([H:133])[C:43]([H:124])([H:125])[O:67][C:31]([H:98])([H:99])[H:100])[H:76])/[H:78])/[C:21](=[C:19]3[C:35]([H:108])([H:109])[C:37]([H:112])([H:113])[C:39]([H:116])([H:117])[O:63][H:146])[C:25]([H:80])([H:81])[H:82])\\[H:74])[C:33]([H:104])([H:105])[C:29]([H:92])([H:93])[H:94])[C:34]([H:106])([H:107])[C:30]([H:95])([H:96])[H:97].[H:86][C:27]([H:87])([H:88])[C:23](=[O:60])[O-:58].[H:89][C:28]([H:90])([H:91])[C:24](=[O:61])[O-:59].[H:144][O:62][H:145].[Lu+3:73]]
FAILED ../test_cmiles.py::test_drug_bank_oe[[Gd+3].CC([O-])=O.CC([O-])=O.CCC1=C(CC)/C2=C/C3=N/C(=C\\N=C4/C=C(OCCOCCOCCOC)C(OCCOCCOCCOC)=C/C/4=N\\C=C4/N=C(/C=C\\1\\[N-]\\2)C(CCCO)=C4C)/C(C)=C3CCCO-[H:73]/[c:1]1/[c:15]2[n:56]/[c:17]([c:5](\\[n:54][c:11]/3\\[c:12]([n:55]\\[c:6]([c:18]\\4/[n:57][c:16](/[c:2]([c:10]/5\\[n-:53]\\[c:9]1\\[c:7]([c:8]5[C:34]([C:30]([H:94])([H:95])[H:96])([H:105])[H:106])[C:33]([C:29]([H:91])([H:92])[H:93])([H:103])[H:104])/[H:74])[C:20](=[C:22]4[C:26]([H:82])([H:83])[H:84])[C:36]([C:38]([C:40]([O:63][H:144])([H:117])[H:118])([H:113])[H:114])([H:109])[H:110])\\[H:78])\\[c:4]([c:14]([c:13]([c:3]3[H:75])[O:64][C:41]([C:45]([O:68][C:49]([C:51]([O:70][C:47]([C:43]([O:66][C:31]([H:97])([H:98])[H:99])([H:123])[H:124])([H:131])[H:132])([H:139])[H:140])([H:135])[H:136])([H:127])[H:128])([H:119])[H:120])[O:65][C:42]([C:46]([O:69][C:50]([C:52]([O:71][C:48]([C:44]([O:67][C:32]([H:100])([H:101])[H:102])([H:125])[H:126])([H:133])[H:134])([H:141])[H:142])([H:137])[H:138])([H:129])[H:130])([H:121])[H:122])[H:76])/[H:77])/[C:21](=[C:19]2[C:35]([C:37]([C:39]([O:62][H:143])([H:115])[H:116])([H:111])[H:112])([H:107])[H:108])[C:25]([H:79])([H:80])[H:81].[H:85][C:27]([C:23](=[O:60])[O-:58])([H:86])[H:87].[H:88][C:28]([C:24](=[O:61])[O-:59])([H:89])[H:90].[Gd+3:72]]
FAILED ../test_cmiles.py::test_drug_bank_oe[CCC1=C(C)\\C2=C\\C3=C(C=C)C(C)=C(N3)\\C=C3/N=C([C@@H](CCC(O)=O)[C@@H]3C)/C(/CC(=O)N[C@@H](CC(O)=O)C(O)=O)=C3\\N\\C(=C/C1=N2)C(C)=C3C(O)=O-[H:53]/[c:1]1/[c:9]2[c:4]([c:6]([c:11]([n:41]2[H:87])/[c:3]([c:15]/3\\[n:40][c:16](/[c:8]([c:12]\\4/[c:5]([c:7](/[c:10](/[n:42]4[H:88])[c:2](/[c:14]5[n:39]\\[c:13]1\\[C:17](=[C:18]5[C:34]([H:78])([H:79])[C:32]([H:73])([H:74])[H:75])[C:30]([H:67])([H:68])[H:69])\\[H:54])[C:29]([H:64])([H:65])[H:66])[C:21](=[O:44])[O:49][H:90])/[C:33]([H:76])([H:77])[C:22](=[O:45])[N:43]([H:89])[C@:38]([H:86])([C:25](=[O:48])[O:52][H:93])[C:36]([H:82])([H:83])[C:24](=[O:47])[O:51][H:92])[C@@:27]([C@:26]3([H:59])[C:31]([H:70])([H:71])[H:72])([H:60])[C:37]([H:84])([H:85])[C:35]([H:80])([H:81])[C:23](=[O:46])[O:50][H:91])/[H:55])[C:28]([H:61])([H:62])[H:63])[C:20](=[C:19]([H:56])[H:57])[H:58]]
FAILED ../test_cmiles.py::test_drug_bank_oe[N1C2=C3C=CC=CC3=C1\\N=C1/N=C(/N=C3\\N=C(NC4=N\\C(=N/2)C2=CC=CC=C42)C2=CC=CC=C32)C2=CC=CC=C12-[H:41][c:1]1[c:2]([c:10]([c:18]2[c:17]([c:9]1[H:49])[c:25]3/[n:33][c:27]/4\\[n:35][c:29](/[n:36][c:30]/5\\[n:38][c:32]([n:40]([c:31]-6[n:37]/[c:28]([n:34]\\[c:26]2[n:39]3[H:57])/[c:21]7[c:23]6[c:15]([c:7]([c:5]([c:13]7[H:53])[H:45])[H:47])[H:55])[H:58])-[c:24]8[c:22]5[c:14]([c:6]([c:8]([c:16]8[H:56])[H:48])[H:46])[H:54])-[c:20]9[c:19]4[c:11]([c:3]([c:4]([c:12]9[H:52])[H:44])[H:43])[H:51])[H:50])[H:42]]
============================== 12 failed in 4.37s ==============================