nick8325 / nick8325/quickcheck

Subrandom numbers

Open
#165 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

discussion
Dominant language
Haskell
Stars
790
Forks
130
Avg merge
16h 41m
Merged PRs (30d)
2

Description

I was surfing Wikipedia one night when I came across the page on low-discrepancy sequences, or subrandom numbers. These are sequences designed to cover the maximum "area" possible in a given range. They appear to be useful in situations which don't require randomness as much as they require even spacing between numbers, like quasi-Monte Carlo simulations.

This prompted me to wonder what it is exactly about random numbers that makes them suited for generating test data. Random numbers are prone to clustering and gaps, in a way which seems, to me, to be disadvantageous for property-based testing. Despite this, I asked around, and I wasn't able to find a case of subrandom numbers being used for property-based testing. Is this something anyone here has tried? Is it worth adding to property-based testing libraries? It should require fairly few changes for monadic varieties.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. Start by reading the linked low-discrepancy-sequence background and examining how QuickCheck generates test data, including the monadic varieties mentioned. Done would require a concrete implementation scope and tests, neither of which this exploratory issue currently specifies.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
testing
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.