Skip to content

Arb.list fails within edge cases in case of null values  #3981

Closed
@oliverblaha

Description

@oliverblaha

Test case: Arb.list(Arb.constant(null), 1..100).edgecases().forAll { }

Expected: Passes and generates lists of null with a variable length.
Actual: java.util.NoSuchElementException: Collection is empty. in collections.kt, Line 108.

Note: This passes if the lower boundary is set to 0.

Currently, edge cases returning null will lead to the conclusion "there is no edge case for this arb" and subsequently fall back to use a random value. If this is null, too, then the particular edge case for the list is ignored. However, this is not only incorrect (either the edge case or the random value might actually be null), but causes no edge case to be left; therefore the random selection of edge cases fails with "Collection is empty."

I'll submit a PR to address this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bug 🐛Issues that report a problem or error in the code.property-testing 📏Related to the property testing mechanisms within the testing framework.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions