Output should be false but is true
public void testUIT() throws Exception
{
//Testing CDK isomorphism of C**C against SCCS --> it gives wrong result
//Setting search query 'C**C'
QueryAtomContainer q = new QueryAtomContainer();
//setting atoms
IQueryAtom a0 = new AliphaticSymbolAtom("C");
q.addAtom(a0);
IQueryAtom a1 = new AnyAtom();
q.addAtom(a1);
IQueryAtom a2 = new AnyAtom();
q.addAtom(a2);
IQueryAtom a3 = new AliphaticSymbolAtom("C");
q.addAtom(a3);
//setting bonds
OrderQueryBond b0 = new OrderQueryBond(IBond.Order.SINGLE);
b0.setAtoms(new IAtom[] {a0,a1});
q.addBond(b0);
OrderQueryBond b1 = new OrderQueryBond(IBond.Order.SINGLE);
b1.setAtoms(new IAtom[] {a1,a2});
q.addBond(b1);
OrderQueryBond b2 = new OrderQueryBond(IBond.Order.SINGLE);
b2.setAtoms(new IAtom[] {a2,a3});
q.addBond(b2);
//Creating 'SCCS' target molecule
AtomContainer target = new AtomContainer();
//atoms
IAtom ta0 = new Atom("S");
target.addAtom(ta0);
IAtom ta1 = new Atom("C");
target.addAtom(ta1);
IAtom ta2 = new Atom("C");
target.addAtom(ta2);
IAtom ta3 = new Atom("S");
target.addAtom(ta3);
//bonds
IBond tb0 = new Bond();
tb0.setAtoms(new IAtom[] {ta0,ta1});
tb0.setOrder(IBond.Order.SINGLE);
target.addBond(tb0);
IBond tb1 = new Bond();
tb1.setAtoms(new IAtom[] {ta1,ta2});
tb1.setOrder(IBond.Order.SINGLE);
target.addBond(tb1);
IBond tb2 = new Bond();
tb2.setAtoms(new IAtom[] {ta2,ta3});
tb2.setOrder(IBond.Order.SINGLE);
target.addBond(tb2);
//Isomorphism check
boolean res = UniversalIsomorphismTester.isSubgraph(target, q);
System.out.println("Mapping C**C against SCCS = " + res);
}
Mapping C**C against SCCS = true