@Test
public void testS4oxide() throws Exception {

    IAtomContainer mol = DefaultChemObjectBuilder.getInstance().newInstance(IAtomContainer.class);
    IAtom s = DefaultChemObjectBuilder.getInstance().newInstance(IAtom.class, "S");
    IAtom o1 = DefaultChemObjectBuilder.getInstance().newInstance(IAtom.class, "O");
    IAtom o2 = DefaultChemObjectBuilder.getInstance().newInstance(IAtom.class, "O");
    IAtom o3 = DefaultChemObjectBuilder.getInstance().newInstance(IAtom.class, "O");
    IBond b1 = DefaultChemObjectBuilder.getInstance().newInstance(IBond.class, s, o1, IBond.Order.DOUBLE);
    IBond b2 = DefaultChemObjectBuilder.getInstance().newInstance(IBond.class, s, o2, IBond.Order.DOUBLE);
    IBond b3 = DefaultChemObjectBuilder.getInstance().newInstance(IBond.class, s, o3, IBond.Order.DOUBLE);
    mol.addAtom(s);
    mol.addAtom(o1);
    mol.addAtom(o2);
    mol.addAtom(o3);
    mol.addBond(b1);
    mol.addBond(b2);
    mol.addBond(b3);
    StructGenMatcher matcher = new StructGenMatcher();
    IAtomType matched;
    matched = matcher.findMatchingAtomType(mol, mol.getAtom(0));
    assertAtomType(testedAtomTypes, "S4", matched);
    matched = matcher.findMatchingAtomType(mol, mol.getAtom(1));
    assertAtomType(testedAtomTypes, "O2", matched);
    matched = matcher.findMatchingAtomType(mol, mol.getAtom(2));
    assertAtomType(testedAtomTypes, "O2", matched);
    matched = matcher.findMatchingAtomType(mol, mol.getAtom(3));
    assertAtomType(testedAtomTypes, "O2", matched);
}