@Override protected IStereoElement<IBond, IBond> create(IBond focus, List<IBond> carriers, int cfg) { return new DoubleBondStereochemistry(focus, carriers.toArray(new IBond[2]), cfg); } }
@Override protected IStereoElement<IBond, IBond> create(IBond focus, List<IBond> carriers, int cfg) { return new DoubleBondStereochemistry(focus, carriers.toArray(new IBond[2]), cfg); } }
@Test public void testToString() { DoubleBondStereochemistry stereo = new DoubleBondStereochemistry(molecule.getBond(1), ligands, Conformation.OPPOSITE); String stringRepr = stereo.toString(); Assert.assertNotSame(0, stringRepr.length()); assertFalse(stringRepr.contains("\n")); } }
@Test public void testConstructor() { DoubleBondStereochemistry stereo = new DoubleBondStereochemistry(molecule.getBond(1), ligands, Conformation.OPPOSITE); Assert.assertNotNull(stereo); }
@Test public void testGetBonds() { DoubleBondStereochemistry stereo = new DoubleBondStereochemistry(molecule.getBond(1), ligands, Conformation.OPPOSITE); Assert.assertNotNull(stereo); for (int i = 0; i < ligands.length; i++) { Assert.assertEquals(ligands[i], stereo.getBonds()[i]); } }
@Test public void geometric_mismatch_opposite() { IAtomContainer query = but2ene(); IAtomContainer target = but2ene(); query.addStereoElement(new DoubleBondStereochemistry(query.getBond(0), new IBond[]{query.getBond(1), query.getBond(2)}, IDoubleBondStereochemistry.Conformation.OPPOSITE)); target.addStereoElement(new DoubleBondStereochemistry(target.getBond(0), new IBond[]{target.getBond(1), target.getBond(2)}, IDoubleBondStereochemistry.Conformation.TOGETHER)); assertFalse(new StereoMatch(query, target).apply(new int[]{0, 1, 2, 3})); }
@Test public void geometric_mismatch_together() { IAtomContainer query = but2ene(); IAtomContainer target = but2ene(); query.addStereoElement(new DoubleBondStereochemistry(query.getBond(0), new IBond[]{query.getBond(1), query.getBond(2)}, IDoubleBondStereochemistry.Conformation.TOGETHER)); target.addStereoElement(new DoubleBondStereochemistry(target.getBond(0), new IBond[]{target.getBond(1), target.getBond(2)}, IDoubleBondStereochemistry.Conformation.OPPOSITE)); assertFalse(new StereoMatch(query, target).apply(new int[]{0, 1, 2, 3})); }
@Test public void geometric_match_together() { IAtomContainer query = but2ene(); IAtomContainer target = but2ene(); query.addStereoElement(new DoubleBondStereochemistry(query.getBond(0), new IBond[]{query.getBond(1), query.getBond(2)}, IDoubleBondStereochemistry.Conformation.TOGETHER)); target.addStereoElement(new DoubleBondStereochemistry(target.getBond(0), new IBond[]{target.getBond(1), target.getBond(2)}, IDoubleBondStereochemistry.Conformation.TOGETHER)); assertTrue(new StereoMatch(query, target).apply(new int[]{0, 1, 2, 3})); }
@Test public void testBuilder() { DoubleBondStereochemistry stereo = new DoubleBondStereochemistry(molecule.getBond(1), ligands, Conformation.OPPOSITE); stereo.setBuilder(DefaultChemObjectBuilder.getInstance()); Assert.assertEquals(DefaultChemObjectBuilder.getInstance(), stereo.getBuilder()); }
@Test public void geometric_match_opposite() { IAtomContainer query = but2ene(); IAtomContainer target = but2ene(); query.addStereoElement(new DoubleBondStereochemistry(query.getBond(0), new IBond[]{query.getBond(1), query.getBond(2)}, IDoubleBondStereochemistry.Conformation.OPPOSITE)); target.addStereoElement(new DoubleBondStereochemistry(target.getBond(0), new IBond[]{target.getBond(1), target.getBond(2)}, IDoubleBondStereochemistry.Conformation.OPPOSITE)); assertTrue(new StereoMatch(query, target).apply(new int[]{0, 1, 2, 3})); }
@Test public void testGetCIPChirality_DoubleBond_Opposite() throws Exception { IAtomContainer container = new SmilesParser(SilentChemObjectBuilder.getInstance()).parseSmiles("CCC(C)=C(C)CC"); CIP_CHIRALITY label = CIPTool.getCIPChirality( container, new DoubleBondStereochemistry(container.getBond(container.getAtom(2), container.getAtom(4)), new IBond[]{container.getBond(container.getAtom(2), container.getAtom(3)), container.getBond(container.getAtom(4), container.getAtom(6))}, IDoubleBondStereochemistry.Conformation.OPPOSITE)); assertThat(label, is(CIPTool.CIP_CHIRALITY.Z)); }
@Test public void testGetCIPChirality_DoubleBond_Together() throws Exception { IAtomContainer container = new SmilesParser(SilentChemObjectBuilder.getInstance()).parseSmiles("CCC(C)=C(C)CC"); CIP_CHIRALITY label = CIPTool.getCIPChirality( container, new DoubleBondStereochemistry(container.getBond(container.getAtom(2), container.getAtom(4)), new IBond[]{container.getBond(container.getAtom(2), container.getAtom(3)), container.getBond(container.getAtom(4), container.getAtom(5))}, IDoubleBondStereochemistry.Conformation.TOGETHER)); assertThat(label, is(CIPTool.CIP_CHIRALITY.Z)); }
@Test public void geometric_match_opposite_unspecified4() { IAtomContainer query = sma("C\\?C=C\\C"); IAtomContainer target = but2ene(); assertTrue(new QueryStereoFilter(query, target).apply(new int[]{2, 0, 1, 3})); target.addStereoElement(new DoubleBondStereochemistry(target.getBond(0), new IBond[]{target.getBond(1), target.getBond(2)}, IDoubleBondStereochemistry.Conformation.OPPOSITE)); assertTrue(new QueryStereoFilter(query, target).apply(new int[]{2, 0, 1, 3})); target.setStereoElements(new ArrayList<IStereoElement>(1)); target.addStereoElement(new DoubleBondStereochemistry(target.getBond(0), new IBond[]{target.getBond(1), target.getBond(2)}, IDoubleBondStereochemistry.Conformation.TOGETHER)); assertFalse(new QueryStereoFilter(query, target).apply(new int[]{2, 0, 1, 3})); }
@Test public void geometric_missingInTarget() { IAtomContainer query = but2ene(); IAtomContainer target = but2ene(); query.addStereoElement(new DoubleBondStereochemistry(query.getBond(0), new IBond[]{query.getBond(1), query.getBond(2)}, IDoubleBondStereochemistry.Conformation.OPPOSITE)); assertFalse(new StereoMatch(query, target).apply(new int[]{0, 1, 2, 3})); }
@Test public void geometric_missingInQuery() { IAtomContainer query = but2ene(); IAtomContainer target = but2ene(); target.addStereoElement(new DoubleBondStereochemistry(target.getBond(0), new IBond[]{target.getBond(1), target.getBond(2)}, IDoubleBondStereochemistry.Conformation.TOGETHER)); assertTrue(new StereoMatch(query, target).apply(new int[]{0, 1, 2, 3})); }
@Test public void geometric_match_opposite2() { IAtomContainer query = sma("C\\C=C\\C"); IAtomContainer target = but2ene(); assertFalse(new QueryStereoFilter(query, target).apply(new int[]{2, 0, 1, 3})); target.addStereoElement(new DoubleBondStereochemistry(target.getBond(0), new IBond[]{target.getBond(1), target.getBond(2)}, IDoubleBondStereochemistry.Conformation.OPPOSITE)); assertTrue(new QueryStereoFilter(query, target).apply(new int[]{2, 0, 1, 3})); }
@Test public void geometric_match_opposite1() { IAtomContainer query = sma("C/C=C/C"); IAtomContainer target = but2ene(); assertFalse(new QueryStereoFilter(query, target).apply(new int[]{2, 0, 1, 3})); target.addStereoElement(new DoubleBondStereochemistry(target.getBond(0), new IBond[]{target.getBond(1), target.getBond(2)}, IDoubleBondStereochemistry.Conformation.OPPOSITE)); assertTrue(new QueryStereoFilter(query, target).apply(new int[]{2, 0, 1, 3})); }
@Test public void geometric_mismatch_opposite1() { IAtomContainer query = sma("C/C=C/C"); IAtomContainer target = but2ene(); assertFalse(new QueryStereoFilter(query, target).apply(new int[]{2, 0, 1, 3})); target.addStereoElement(new DoubleBondStereochemistry(target.getBond(0), new IBond[]{target.getBond(1), target.getBond(2)}, IDoubleBondStereochemistry.Conformation.TOGETHER)); assertFalse(new QueryStereoFilter(query, target).apply(new int[]{2, 0, 1, 3})); }
@Test public void geometric_match_together_unspecified1() { IAtomContainer query = sma("C/C=C\\?C"); IAtomContainer target = but2ene(); assertTrue(new QueryStereoFilter(query, target).apply(new int[]{2, 0, 1, 3})); target.addStereoElement(new DoubleBondStereochemistry(target.getBond(0), new IBond[]{target.getBond(1), target.getBond(2)}, IDoubleBondStereochemistry.Conformation.TOGETHER)); assertTrue(new QueryStereoFilter(query, target).apply(new int[]{2, 0, 1, 3})); }
@Test public void geometric_match_together1() { IAtomContainer query = sma("C/C=C\\C"); IAtomContainer target = but2ene(); assertFalse(new QueryStereoFilter(query, target).apply(new int[]{2, 0, 1, 3})); target.addStereoElement(new DoubleBondStereochemistry(target.getBond(0), new IBond[]{target.getBond(1), target.getBond(2)}, IDoubleBondStereochemistry.Conformation.TOGETHER)); assertTrue(new QueryStereoFilter(query, target).apply(new int[]{2, 0, 1, 3})); }