@Test
    public void testInstance() throws Exception {
        SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance());
        IAtomContainer ac = sp.parseSmiles("Nc1ccccc1");
        IAtomContainer g1 = new AtomContainer(ac);

        AdjacencyList adj = new AdjacencyList();

        List<Node> nodes = new ArrayList<Node>();
        int counter = 0;
        for (IAtom atom0 : g1.atoms()) {
            nodes.add(counter++, new Node(atom0));
        }

        for (Node atom0 : nodes) {
            for (Node atom1 : nodes) {
                IBond bond = g1.getBond(atom0.getAtom(), atom1.getAtom());
                if (bond != null) {
                    adj.addEdge(atom0, atom1, bond);
                }
            }
        }

        for (int i = 0; i < nodes.size(); i++) {
            for (int j = 0; j < nodes.size(); j++) {
                if (i < j) {
                    IBond bond = g1.getBond(nodes.get(i).getAtom(), nodes.get(j).getAtom());
                    if (bond != null) {
                        adj.addEdge(nodes.get(i), nodes.get(j), bond);
                    }
                }
            }
        }

        for (Node node : nodes) {
            AdjacencyList minBranching = new EdmondsChuLiu().getMinBranching(node, adj);
            Assert.assertEquals(6, minBranching.getAllEdges().size());
        }
    }