if (r0Bond.contains(discarded)) { for (IAtom atInBond : r0Bond.atoms()) { atInBond.setProperty(CDKConstants.REST_H, this.getRGroupDefinitions().get(rNum) .isRestH()); mapSubstitutes(this.getRGroupDefinitions().get(rGroupNumbers.get(level)), 0, distribution, mapping, mappedSubstitutes);
/** * Test parsing of RGFile rgfile.5.mol. * This exotic R-group query files has many R# groups and subsitutes, * to test mainly for getting all valid configurations. */ @Test @Category(SlowTest.class) public void testRgroupQueryFile5() throws Exception { String filename = "data/mdl/rgfile.5.mol"; logger.info("Testing: " + filename); InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); RGroupQueryReader reader = new RGroupQueryReader(ins); RGroupQuery rGroupQuery = (RGroupQuery) reader.read(new RGroupQuery(DefaultChemObjectBuilder.getInstance())); reader.close(); Assert.assertNotNull(rGroupQuery); Assert.assertEquals(rGroupQuery.getRGroupDefinitions().size(), 4); //Test combinatorial explosion: R5 has many different configurations Assert.assertEquals(rGroupQuery.getAllConfigurations().size(), 17820); }
/** * Test parsing of RGFile rgfile.7.mol. * This RGFile has APO lines with value 3: both attachment points.<P> * * Also, R32 appears twice, but with different numbers of attachment. * The parser should not trip over this, and make nice configurations. */ @Test public void testRgroupQueryFile7() throws Exception { String filename = "data/mdl/rgfile.7.mol"; logger.info("Testing: " + filename); InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); RGroupQueryReader reader = new RGroupQueryReader(ins); RGroupQuery rGroupQuery = (RGroupQuery) reader.read(new RGroupQuery(DefaultChemObjectBuilder.getInstance())); reader.close(); Assert.assertNotNull(rGroupQuery); Assert.assertEquals(rGroupQuery.getRGroupDefinitions().size(), 1); Assert.assertEquals(rGroupQuery.getRootStructure().getAtomCount(), 9); Assert.assertEquals(rGroupQuery.getAllConfigurations().size(), 20); }
reader.close(); Assert.assertNotNull(rGroupQuery); Assert.assertEquals(rGroupQuery.getRGroupDefinitions().size(), 1); Assert.assertEquals(rGroupQuery.getRootStructure().getAtomCount(), 10); Assert.assertEquals(rGroupQuery.getRootAttachmentPoints().size(), 2);
/** * Test parsing of RGFile rgfile.6.mol. * This RGFile is incomplete, RGP lines are missing. We still want to * accept it (Symyx/ChemAxon software accepts it too). */ @Test(expected = CDKException.class) public void testRgroupQueryFile6() throws Exception { String filename = "data/mdl/rgfile.6.mol"; logger.info("Testing: " + filename); InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); RGroupQueryReader reader = new RGroupQueryReader(ins); RGroupQuery rGroupQuery = (RGroupQuery) reader.read(new RGroupQuery(DefaultChemObjectBuilder.getInstance())); reader.close(); Assert.assertNotNull(rGroupQuery); Assert.assertEquals(rGroupQuery.getRGroupDefinitions().size(), 3); Assert.assertEquals(rGroupQuery.getRootStructure().getAtomCount(), 14); // This file has missing $RGP blocks. You could argue that this is // thus not a legal query (ie missing query specifications) Assert.assertFalse(rGroupQuery.areSubstituentsDefined()); //Getting for all configurations won't happen, because not all groups were set rGroupQuery.getAllConfigurations(); // Will raise exception }
reader.close(); Assert.assertNotNull(rGroupQuery); Assert.assertEquals(rGroupQuery.getRGroupDefinitions().size(), 1); Assert.assertEquals(rGroupQuery.getRootStructure().getAtomCount(), 6); RGroupList rList = rGroupQuery.getRGroupDefinitions().get(1); Assert.assertEquals(rList.getRGroups().size(), 2); Assert.assertEquals(rList.getRequiredRGroupNumber(), 0);
reader.close(); Assert.assertNotNull(rGroupQuery); Assert.assertEquals(rGroupQuery.getRGroupDefinitions().size(), 1); Assert.assertEquals(rGroupQuery.getRootStructure().getAtomCount(), 7); Iterator<Integer> itr = rGroupQuery.getRGroupDefinitions().keySet().iterator(); int val_1 = itr.next(); Assert.assertEquals(val_1, 1); RGroupList rList = rGroupQuery.getRGroupDefinitions().get(val_1); Assert.assertEquals(rList.getOccurrence(), "0,1-3");
reader.close(); Assert.assertNotNull(rGroupQuery); Assert.assertEquals(rGroupQuery.getRGroupDefinitions().size(), 3); Assert.assertEquals(rGroupQuery.getRootStructure().getAtomCount(), 14); Assert.assertEquals(rGroupQuery.getRootAttachmentPoints().size(), 4); Assert.assertTrue(apoBonds.get(2).getOther(at).getSymbol().equals("C")); RGroupList rList = rGroupQuery.getRGroupDefinitions().get(1); Assert.assertEquals(rList.getRGroups().size(), 2); List<RGroup> rGroups = rList.getRGroups(); RGroupList rList = rGroupQuery.getRGroupDefinitions().get(2); Assert.assertEquals(rList.getRGroups().size(), 2); Assert.assertEquals(rList.getOccurrence(), "0,2"); RGroupList rList = rGroupQuery.getRGroupDefinitions().get(11); Assert.assertEquals(rList.getRGroups().size(), 1); Assert.assertEquals(rList.getRequiredRGroupNumber(), 0);