@Test
public void testGenerate() throws Exception {

    IAtomContainer m1 = cyclopentylcyclopentane();
    IAtomContainer m2 = decahydronaphthalene();
    SeedGenerator seeding = new SeedGenerator(BasicAtomEncoder.ATOMIC_NUMBER);
    Pseudorandom pseudorandom = new Xorshift();
    MoleculeHashGenerator basic = new BasicMoleculeHashGenerator(new BasicAtomHashGenerator(seeding, pseudorandom,
            8));
    MoleculeHashGenerator perturb = new BasicMoleculeHashGenerator(new PerturbedAtomHashGenerator(seeding,
            new BasicAtomHashGenerator(seeding, pseudorandom, 8), pseudorandom, StereoEncoderFactory.EMPTY,
            new MinimumEquivalentCyclicSet(), AtomSuppression.unsuppressed()));
    // basic encoding should say these are the same
    assertThat(basic.generate(m1), is(basic.generate(m2)));
    // perturbed encoding should differentiate them
    assertThat(perturb.generate(m1), is(not(perturb.generate(m2))));
}