instead of InvalidSmilesException
@Test public void testInvalidSmiles() throws Exception { SmilesParser parser = new SmilesParser( SilentChemObjectBuilder.getInstance()); try { parser.parseSmiles("50-00-0"); } catch (InvalidSmilesException x) { Assert.assertTrue(true); } catch (Exception x) { throw x; } } java.lang.ArrayIndexOutOfBoundsException: -1 at uk.ac.ebi.beam.IntStack.peek(IntStack.java:87) at uk.ac.ebi.beam.Parser.openRing(Parser.java:650) at uk.ac.ebi.beam.Parser.ring(Parser.java:634) at uk.ac.ebi.beam.Parser.readSmiles(Parser.java:400) at uk.ac.ebi.beam.Parser.<init>(Parser.java:101) at uk.ac.ebi.beam.Parser.<init>(Parser.java:117) at uk.ac.ebi.beam.Parser.parse(Parser.java:748) at uk.ac.ebi.beam.Graph.fromSmiles(Graph.java:344) at org.openscience.cdk.smiles.SmilesParser.parseSmiles(SmilesParser.java:203)
tested with cdk 1.5.11
Hmm, kind of tempted just to put a catch all around the Beam parsing...
it's not really meant to parse any text to test for SMILES that should be
done with a grammar recognizer.
Happy both the suggestions.
Resolved https://github.com/cdk/cdk/pull/179