From a740a31e2d4e3cbfa227604cff3c58eddfa2ab6a Mon Sep 17 00:00:00 2001 From: Zhong Date: Wed, 21 Mar 2018 13:42:13 +0800 Subject: [PATCH] APACHE-KYLIN-3306: Fix the rarely happened unit test exception of generic algorithm --- .../cube/cuboid/algorithm/generic/RouletteWheelSelection.java | 9 ++++----- .../kylin/cube/cuboid/algorithm/ITGeneticAlgorithmTest.java | 6 ++---- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/RouletteWheelSelection.java b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/RouletteWheelSelection.java index db84171..b93ed31 100755 --- a/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/RouletteWheelSelection.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/cuboid/algorithm/generic/RouletteWheelSelection.java @@ -18,15 +18,14 @@ package org.apache.kylin.cube.cuboid.algorithm.generic; -import java.util.List; - +import com.google.common.collect.Lists; import org.apache.kylin.cube.cuboid.algorithm.generic.lib.Chromosome; import org.apache.kylin.cube.cuboid.algorithm.generic.lib.ChromosomePair; import org.apache.kylin.cube.cuboid.algorithm.generic.lib.ListPopulation; import org.apache.kylin.cube.cuboid.algorithm.generic.lib.Population; import org.apache.kylin.cube.cuboid.algorithm.generic.lib.SelectionPolicy; -import com.google.common.collect.Lists; +import java.util.List; public class RouletteWheelSelection implements SelectionPolicy { @@ -48,8 +47,8 @@ public class RouletteWheelSelection implements SelectionPolicy { } private Chromosome rouletteWheel(final List chromosomes, final double totalFitness) { - float rnd = (float) (GeneticAlgorithm.RANDGEN.get().nextDouble() * totalFitness); - float runningScore = 0; + double rnd = (GeneticAlgorithm.RANDGEN.get().nextDouble() * totalFitness); + double runningScore = 0; for (Chromosome o : chromosomes) { if (rnd >= runningScore && rnd <= runningScore + o.getFitness()) { return o; diff --git a/kylin-it/src/test/java/org/apache/kylin/cube/cuboid/algorithm/ITGeneticAlgorithmTest.java b/kylin-it/src/test/java/org/apache/kylin/cube/cuboid/algorithm/ITGeneticAlgorithmTest.java index f227789..7e03af6 100755 --- a/kylin-it/src/test/java/org/apache/kylin/cube/cuboid/algorithm/ITGeneticAlgorithmTest.java +++ b/kylin-it/src/test/java/org/apache/kylin/cube/cuboid/algorithm/ITGeneticAlgorithmTest.java @@ -18,13 +18,11 @@ package org.apache.kylin.cube.cuboid.algorithm; -import java.util.List; - import org.apache.kylin.cube.cuboid.algorithm.generic.GeneticAlgorithm; -import org.junit.Ignore; import org.junit.Test; -@Ignore("testBPUSCalculator() is unsable; whole test takes too long") +import java.util.List; + public class ITGeneticAlgorithmTest extends ITAlgorithmTestBase { @Test -- 2.5.4 (Apple Git-61)