test_class.file: Java/jgenetic/src/test/java/szaq/lcs/ga/impl/SpCrossoverTest.java
test_class.identifier: SpCrossoverTest
test_case.body: @Test
  	public void testCrossover() {
  		final SpCrossover spCrossover = new SpCrossover();
  
  		final Classifier classifier1 = LcsObjects.anyClassifier("rule1", TRUE, FALSE, TRUE, FALSE, TRUE);
  		final Classifier classifier2 = LcsObjects.anyClassifier("rule2", FALSE, TRUE, FALSE, TRUE, FALSE);
  
  		log.info("Before {} VS {}", classifier1.getCondition().toCanonicalString(),
  				classifier2.getCondition().toCanonicalString());
  
  		final Tuple2<Classifier, Classifier> doCrossover = spCrossover.doCrossover(classifier1, classifier2);
  
  		log.info("After {} VS {}", doCrossover._1.getCondition().toCanonicalString(),
  				doCrossover._2.getCondition().toCanonicalString());
  
  	}
test_case.class_method_signature: SpCrossoverTest.testCrossover()
test_case.full_signature: @Test public void testCrossover()
test_case.identifier: testCrossover
test_case.invocations: anyClassifier anyClassifier info toCanonicalString getCondition toCanonicalString getCondition doCrossover info toCanonicalString getCondition toCanonicalString getCondition
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testCrossover()
focal_class.file: Java/jgenetic/src/main/java/szaq/lcs/ga/impl/SpCrossover.java
focal_class.identifier: SpCrossover
focal_class.interfaces: implements CrossoverOperator
focal_class.class_method_signature: SpCrossover.doCrossover(final Classifier parent1, final Classifier parent2)
focal_class.full_signature: @Override public Tuple2<Classifier, Classifier> doCrossover(final Classifier parent1, final Classifier parent2)
focal_class.identifier: doCrossover
focal_class.modifiers: @Override public
focal_class.parameters: (final Classifier parent1, final Classifier parent2)
focal_class.return: Tuple2<Classifier, Classifier>
focal_class.signature: Tuple2<Classifier, Classifier> doCrossover(final Classifier parent1, final Classifier parent2)
focal_class.class_method_signature: SpCrossover.asArray(final MSeq<EnumGene<WildcardGene>> seq)
focal_class.full_signature: private WildcardGene[] asArray(final MSeq<EnumGene<WildcardGene>> seq)
focal_class.identifier: asArray
focal_class.modifiers: private
focal_class.parameters: (final MSeq<EnumGene<WildcardGene>> seq)
focal_class.return: WildcardGene[]
focal_class.signature: WildcardGene[] asArray(final MSeq<EnumGene<WildcardGene>> seq)
focal_class.class_method_signature: SpCrossover.copyChromosomes(final Classifier classifier)
focal_class.full_signature: private MSeq<EnumGene<WildcardGene>> copyChromosomes(final Classifier classifier)
focal_class.identifier: copyChromosomes
focal_class.modifiers: private
focal_class.parameters: (final Classifier classifier)
focal_class.return: MSeq<EnumGene<WildcardGene>>
focal_class.signature: MSeq<EnumGene<WildcardGene>> copyChromosomes(final Classifier classifier)
focal_class.superclass: extends SinglePointCrossover<EnumGene<WildcardGene>, Double>
focal_method.body: @Override
  	public Tuple2<Classifier, Classifier> doCrossover(final Classifier parent1, final Classifier parent2) {
  		final MSeq<EnumGene<WildcardGene>> that = copyChromosomes(parent1);
  		final MSeq<EnumGene<WildcardGene>> other = copyChromosomes(parent2);
  
  		crossover(that, other);
  
  		final WildcardGene[] offspringChromosome1 = asArray(that);
  		final WildcardGene[] offspringChromosome2 = asArray(other);
  
  		final Classifier offspring1 = LcsObjects.anyClassifier(offspringChromosome1);
  		final Classifier offspring2 = LcsObjects.anyClassifier(offspringChromosome2);
  
  		return Tuple.of(offspring1, offspring2);
  	}
focal_method.class_method_signature: SpCrossover.doCrossover(final Classifier parent1, final Classifier parent2)
focal_method.full_signature: @Override public Tuple2<Classifier, Classifier> doCrossover(final Classifier parent1, final Classifier parent2)
focal_method.identifier: doCrossover
focal_method.invocations: copyChromosomes copyChromosomes crossover asArray asArray anyClassifier anyClassifier of
focal_method.modifiers: @Override public
focal_method.parameters: (final Classifier parent1, final Classifier parent2)
focal_method.return: Tuple2<Classifier, Classifier>
focal_method.signature: Tuple2<Classifier, Classifier> doCrossover(final Classifier parent1, final Classifier parent2)