@Test
public void testN5() throws Exception {

    IAtomContainer mol = DefaultChemObjectBuilder.getInstance().newInstance(IAtomContainer.class);
    IAtom n = DefaultChemObjectBuilder.getInstance().newInstance(IAtom.class, "N");
    IAtom o1 = DefaultChemObjectBuilder.getInstance().newInstance(IAtom.class, "O");
    IAtom o2 = DefaultChemObjectBuilder.getInstance().newInstance(IAtom.class, "O");
    IAtom c = DefaultChemObjectBuilder.getInstance().newInstance(IAtom.class, "C");
    c.setImplicitHydrogenCount(3);
    IBond b1 = DefaultChemObjectBuilder.getInstance().newInstance(IBond.class, n, o1, IBond.Order.DOUBLE);
    IBond b2 = DefaultChemObjectBuilder.getInstance().newInstance(IBond.class, n, o2, IBond.Order.DOUBLE);
    IBond b3 = DefaultChemObjectBuilder.getInstance().newInstance(IBond.class, n, c, IBond.Order.SINGLE);
    mol.addAtom(n);
    mol.addAtom(o1);
    mol.addAtom(o2);
    mol.addAtom(c);
    mol.addBond(b1);
    mol.addBond(b2);
    mol.addBond(b3);
    StructGenMatcher matcher = new StructGenMatcher();
    IAtomType matched;
    matched = matcher.findMatchingAtomType(mol, mol.getAtom(0));
    assertAtomType(testedAtomTypes, "N5", 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, "C4", matched);
}