test_class.file: tool/hash/src/test/java/org/openscience/cdk/hash/PerturbedAtomHashGeneratorTest.java
test_class.identifier: PerturbedAtomHashGeneratorTest
test_case.body: @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))));
  
      }
test_case.class_method_signature: PerturbedAtomHashGeneratorTest.testGenerate()
test_case.full_signature: @Test public void testGenerate()
test_case.identifier: testGenerate
test_case.invocations: cyclopentylcyclopentane decahydronaphthalene unsuppressed assertThat generate is generate assertThat generate is not generate
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testGenerate()
focal_class.declarator: factory
focal_class.modifier: private final
focal_class.original_string: private final StereoEncoderFactory      factory;
focal_class.type: StereoEncoderFactory
focal_class.var_name: factory
focal_class.declarator: simple
focal_class.modifier: private final
focal_class.original_string: private final AbstractAtomHashGenerator simple;
focal_class.type: AbstractAtomHashGenerator
focal_class.var_name: simple
focal_class.declarator: seeds
focal_class.modifier: private final
focal_class.original_string: private final AtomHashGenerator         seeds;
focal_class.type: AtomHashGenerator
focal_class.var_name: seeds
focal_class.declarator: finder
focal_class.modifier: private final
focal_class.original_string: private final EquivalentSetFinder       finder;
focal_class.type: EquivalentSetFinder
focal_class.var_name: finder
focal_class.declarator: suppression
focal_class.modifier: private final
focal_class.original_string: private final AtomSuppression           suppression;
focal_class.type: AtomSuppression
focal_class.var_name: suppression
focal_class.file: tool/hash/src/main/java/org/openscience/cdk/hash/PerturbedAtomHashGenerator.java
focal_class.identifier: PerturbedAtomHashGenerator
focal_class.interfaces: implements AtomHashGenerator
focal_class.class_method_signature: PerturbedAtomHashGenerator.PerturbedAtomHashGenerator(SeedGenerator seeds, AbstractAtomHashGenerator simple, Pseudorandom pseudorandom,
              StereoEncoderFactory factory, EquivalentSetFinder finder, AtomSuppression suppression)
focal_class.full_signature: public  PerturbedAtomHashGenerator(SeedGenerator seeds, AbstractAtomHashGenerator simple, Pseudorandom pseudorandom,
              StereoEncoderFactory factory, EquivalentSetFinder finder, AtomSuppression suppression)
focal_class.identifier: PerturbedAtomHashGenerator
focal_class.modifiers: public
focal_class.parameters: (SeedGenerator seeds, AbstractAtomHashGenerator simple, Pseudorandom pseudorandom,
              StereoEncoderFactory factory, EquivalentSetFinder finder, AtomSuppression suppression)
focal_class.signature:  PerturbedAtomHashGenerator(SeedGenerator seeds, AbstractAtomHashGenerator simple, Pseudorandom pseudorandom,
              StereoEncoderFactory factory, EquivalentSetFinder finder, AtomSuppression suppression)
focal_class.class_method_signature: PerturbedAtomHashGenerator.generate(IAtomContainer container)
focal_class.full_signature: @Override public long[] generate(IAtomContainer container)
focal_class.identifier: generate
focal_class.modifiers: @Override public
focal_class.parameters: (IAtomContainer container)
focal_class.return: long[]
focal_class.signature: long[] generate(IAtomContainer container)
focal_class.class_method_signature: PerturbedAtomHashGenerator.generate(IAtomContainer container, long[] seeds, StereoEncoder encoder, int[][] graph)
focal_class.full_signature: private long[] generate(IAtomContainer container, long[] seeds, StereoEncoder encoder, int[][] graph)
focal_class.identifier: generate
focal_class.modifiers: private
focal_class.parameters: (IAtomContainer container, long[] seeds, StereoEncoder encoder, int[][] graph)
focal_class.return: long[]
focal_class.signature: long[] generate(IAtomContainer container, long[] seeds, StereoEncoder encoder, int[][] graph)
focal_class.class_method_signature: PerturbedAtomHashGenerator.combine(long[][] perturbed)
focal_class.full_signature:  long[] combine(long[][] perturbed)
focal_class.identifier: combine
focal_class.parameters: (long[][] perturbed)
focal_class.return: long[]
focal_class.signature: long[] combine(long[][] perturbed)
focal_class.superclass: extends AbstractHashGenerator
focal_method.body: @Override
      public long[] generate(IAtomContainer container) {
          int[][] graph = toAdjList(container);
          return generate(container, seeds.generate(container), factory.create(container, graph), graph);
      }
focal_method.class_method_signature: PerturbedAtomHashGenerator.generate(IAtomContainer container)
focal_method.full_signature: @Override public long[] generate(IAtomContainer container)
focal_method.identifier: generate
focal_method.invocations: toAdjList generate generate create
focal_method.modifiers: @Override public
focal_method.parameters: (IAtomContainer container)
focal_method.return: long[]
focal_method.signature: long[] generate(IAtomContainer container)