[ https://issues.apache.org/jira/browse/GROOVY-8537?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16429826#comment-16429826 ]
Venkatesh-Prasad Ranganath commented on GROOVY-8537: ---------------------------------------------------- A PR to fix this issue has been submitted – https://github.com/apache/groovy/pull/682. > GroovyCollections.combinations(Iterable) exhibits incorrect (asymmetric) > behavior > --------------------------------------------------------------------------------- > > Key: GROOVY-8537 > URL: https://issues.apache.org/jira/browse/GROOVY-8537 > Project: Groovy > Issue Type: Bug > Components: groovy-jdk > Affects Versions: 2.4.15 > Reporter: Venkatesh-Prasad Ranganath > Priority: Major > Labels: easyfix > > h4. *Issue* > When GroovyCollections.combinations() is invoked on a collection of iterables > with at least one empty iterable, the expected return value is an empty list > of combinations. > Instead, in version 2.4.15 (and I am guessing in earlier versions at least > since 2.2.0), the return value of combinations() is sensitive to the order of > iterables in the input collection. Here are two instances of such behavior. > h4. Repro > {{groovy:000> assert [[1,3], []].combinations() == [[], > [1,3]].combinations()}} > {{ERROR org.codehaus.groovy.runtime.powerassert.PowerAssertionError:}} > {{assert [[1,3], []].combinations() == [[], [1,3]].combinations()}} > {{ | | |}} > {{ [] false [[1], [3]]}} > > {{groovy:000> assert [[1,3], [2], []].combinations() == [[1,3], [], > [2]].combinations()}} > {{ERROR org.codehaus.groovy.runtime.powerassert.PowerAssertionError:}} > {{assert [[1,3], [2], []].combinations() == [[1,3], [], [2]].combinations()}} > {{ | | |}} > {{ [] false [[2]]}} > h4. *Fix* > Add a short-circuiting check at the start of combinations(Iterable) method to > return an empty list of combination if any of the input iterables are empty. -- This message was sent by Atlassian JIRA (v7.6.3#76005)