@Test
public void bug3523240IsResolved() throws Exception {

    IAtomContainer container = new AtomContainer(50, 51, 0, 0);
    container.addAtom(atom("H", 0));
    container.addAtom(atom("O", 0));
    container.addAtom(atom("C", 0));
    container.addAtom(atom("O", 0));
    container.addAtom(atom("C", 0));
    container.addAtom(atom("H", 0));
    container.addAtom(atom("N", 0));
    container.addAtom(atom("H", 0));
    container.addAtom(atom("C", 0));
    container.addAtom(atom("O", 0));
    container.addAtom(atom("C", 0));
    container.addAtom(atom("H", 0));
    container.addAtom(atom("C", 0));
    container.addAtom(atom("H", 0));
    container.addAtom(atom("H", 0));
    container.addAtom(atom("C", 0));
    container.addAtom(atom("H", 0));
    container.addAtom(atom("H", 0));
    container.addAtom(atom("C", 0));
    container.addAtom(atom("H", 0));
    container.addAtom(atom("C", 0));
    container.addAtom(atom("H", 0));
    container.addAtom(atom("H", 0));
    container.addAtom(atom("C", 0));
    container.addAtom(atom("H", 0));
    container.addAtom(atom("H", 0));
    container.addAtom(atom("C", 0));
    container.addAtom(atom("H", 0));
    container.addAtom(atom("C", 0));
    container.addAtom(atom("H", 0));
    container.addAtom(atom("H", 0));
    container.addAtom(atom("H", 0));
    container.addAtom(atom("C", 0));
    container.addAtom(atom("H", 0));
    container.addAtom(atom("H", 0));
    container.addAtom(atom("H", 0));
    container.addAtom(atom("C", 0));
    container.addAtom(atom("H", 0));
    container.addAtom(atom("H", 0));
    container.addAtom(atom("C", 0));
    container.addAtom(atom("C", 0));
    container.addAtom(atom("H", 0));
    container.addAtom(atom("C", 0));
    container.addAtom(atom("H", 0));
    container.addAtom(atom("C", 0));
    container.addAtom(atom("H", 0));
    container.addAtom(atom("C", 0));
    container.addAtom(atom("H", 0));
    container.addAtom(atom("C", 0));
    container.addAtom(atom("H", 0));
    container.addBond(0, 1, IBond.Order.SINGLE);
    container.addBond(1, 2, IBond.Order.SINGLE);
    container.addBond(2, 3, IBond.Order.DOUBLE);
    container.addBond(2, 4, IBond.Order.SINGLE);
    container.addBond(4, 5, IBond.Order.SINGLE);
    container.addBond(4, 6, IBond.Order.SINGLE);
    container.addBond(6, 7, IBond.Order.SINGLE);
    container.addBond(6, 8, IBond.Order.SINGLE);
    container.addBond(8, 9, IBond.Order.DOUBLE);
    container.addBond(8, 10, IBond.Order.SINGLE);
    container.addBond(10, 11, IBond.Order.SINGLE);
    container.addBond(10, 12, IBond.Order.SINGLE);
    container.addBond(12, 13, IBond.Order.SINGLE);
    container.addBond(12, 14, IBond.Order.SINGLE);
    container.addBond(12, 15, IBond.Order.SINGLE);
    container.addBond(15, 16, IBond.Order.SINGLE);
    container.addBond(15, 17, IBond.Order.SINGLE);
    container.addBond(15, 18, IBond.Order.SINGLE);
    container.addBond(18, 19, IBond.Order.SINGLE);
    container.addBond(18, 20, IBond.Order.SINGLE);
    container.addBond(20, 21, IBond.Order.SINGLE);
    container.addBond(20, 22, IBond.Order.SINGLE);
    container.addBond(20, 23, IBond.Order.SINGLE);
    container.addBond(10, 23, IBond.Order.SINGLE);
    container.addBond(23, 24, IBond.Order.SINGLE);
    container.addBond(23, 25, IBond.Order.SINGLE);
    container.addBond(18, 26, IBond.Order.SINGLE);
    container.addBond(26, 27, IBond.Order.SINGLE);
    container.addBond(26, 28, IBond.Order.SINGLE);
    container.addBond(28, 29, IBond.Order.SINGLE);
    container.addBond(28, 30, IBond.Order.SINGLE);
    container.addBond(28, 31, IBond.Order.SINGLE);
    container.addBond(26, 32, IBond.Order.SINGLE);
    container.addBond(32, 33, IBond.Order.SINGLE);
    container.addBond(32, 34, IBond.Order.SINGLE);
    container.addBond(32, 35, IBond.Order.SINGLE);
    container.addBond(4, 36, IBond.Order.SINGLE);
    container.addBond(36, 37, IBond.Order.SINGLE);
    container.addBond(36, 38, IBond.Order.SINGLE);
    container.addBond(36, 39, IBond.Order.SINGLE);
    container.addBond(39, 40, IBond.Order.DOUBLE);
    container.addBond(40, 41, IBond.Order.SINGLE);
    container.addBond(40, 42, IBond.Order.SINGLE);
    container.addBond(42, 43, IBond.Order.SINGLE);
    container.addBond(42, 44, IBond.Order.DOUBLE);
    container.addBond(44, 45, IBond.Order.SINGLE);
    container.addBond(44, 46, IBond.Order.SINGLE);
    container.addBond(46, 47, IBond.Order.SINGLE);
    container.addBond(46, 48, IBond.Order.DOUBLE);
    container.addBond(39, 48, IBond.Order.SINGLE);
    container.addBond(48, 49, IBond.Order.SINGLE);
    String[] expected = {"HOCO", "OC=O", "COO", "O=CO", "CR", "HC", "NC=O", "HNCO", "C=ON", "O=CN", "CR", "HC",
            "CR", "HC", "HC", "CR", "HC", "HC", "CR", "HC", "CR", "HC", "HC", "CR", "HC", "HC", "CR", "HC", "CR",
            "HC", "HC", "HC", "CR", "HC", "HC", "HC", "CR", "HC", "HC", "CB", "CB", "HC", "CB", "HC", "CB", "HC",
            "CB", "HC", "CB", "HC"};
    String[] actual = INSTANCE.symbolicTypes(container);
    Assert.assertArrayEquals(expected, actual);
}