[
https://issues.apache.org/jira/browse/KYLIN-3306?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16407495#comment-16407495
]
Shaofeng SHI commented on KYLIN-3306:
-------------------------------------
kylin-it/src/test/java/org/apache/kylin/cube/cuboid/algorithm/ITGeneticAlgorithmTest.java:24:8:
无用导入 - org.junit.Ignore 。 [UnusedImports]
> Fix the rarely happened unit test exception of generic algorithm
> ----------------------------------------------------------------
>
> Key: KYLIN-3306
> URL: https://issues.apache.org/jira/browse/KYLIN-3306
> Project: Kylin
> Issue Type: Bug
> Reporter: Zhong Yanghong
> Assignee: Zhong Yanghong
> Priority: Major
> Fix For: v2.3.1
>
> Attachments: APACHE-KYLIN-3306.patch, APACHE-KYLIN-3306.patch
>
>
> There's a bug in the following code:
> {code}
> private Chromosome rouletteWheel(final List<Chromosome> chromosomes, final
> double totalFitness) {
> float rnd = (float)
> (GeneticAlgorithm.getRandomGenerator().nextDouble() * totalFitness);
> float runningScore = 0;
> for (Chromosome o : chromosomes) {
> if (rnd >= runningScore && rnd <= runningScore + o.getFitness()) {
> return o;
> }
> runningScore += o.getFitness();
> }
> return null;
> }
> {code}
> We should use double instead of float.
> For example, (float) (0.9999999988948809 * 40.510999999999996) = 40.511 >
> 40.510999999999996
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)