Automatic Synthesis of Random Generators for Numerically Constrained Algebraic Recursive Types

  title={Automatic Synthesis of Random Generators for Numerically Constrained Algebraic Recursive Types},
  author={Ghiles Ziat and Vincent Botbol and Matthieu Dien and Arnaud Gotlieb and Martin P'epin and Catherine Dubois},
. In program verification, constraint-based random testing is a powerful technique which aims at generating random test cases that satisfy functional properties of a program. However, on recursive constrained data-structures (e.g., sorted lists, binary search trees, quadtrees), and, more generally, when the structures are highly constrained, generating uniformly distributed inputs is difficult. In this paper, we present Testify: a framework in which users can define algebraic data-types dec-orated… 

Figures from this paper



FocalTest: A Constraint Programming Approach for Property-Based Testing

This paper proposes a technique and tool called FocalTest, which adopt a test-and-generate approach through the usage of constraint reasoning, which utilizes the property to prune the search space during the test data generation process.

A uniform random test data generator for path testing

Boltzmann Samplers for the Random Generation of Combinatorial Structures

A surprisingly simple framework for the random generation of combinatorial configurations based on what the authors call Boltzmann models is proposed, which can be implemented easily, be analysed mathematically with great precision, and, when suitably tuned, tend to be very efficient in practice.

A Linear Algorithm for the Random Sampling from Regular Languages

This work presents the first linear algorithm for the random sampling from regular languages, which has worst-case space bit-complexity O(n) and mean time bit- complexes O( n) and is combined with a new divide-and-conquer scheme.

Automated Random Testing of Numerical Constrained Types

Solution sampling with random table constraints

This paper proposes an algorithm, inspired from Meel's ApproxMC algorithm on SAT, to add hashing constraints to a CP model in order to split the search space into small cells, and ensures the randomness by introducing a new family of hashing constraints: randomly generated tables, which keeps the cost of the hashing process tractable.

Property-Based Test Case Generators for Free

This work proposes an approach to relieve the programmer from the task of writing generators and allows the automatic, efficient generation of input test values that satisfy a given specification.

Generic Programming in OCaml

This work presents a library for generic programming in OCAML, adapting some techniques borrowed from other functional languages, and presents a type-safe deserialization function that respects type abstraction.

QuickCheck Testing for Fun and Profit

One of the nice things about purely functional languages is that functions often satisfy simple properties, and enjoy simple algebraic relationships. Indeed, if the functions of an API satisfy

Generating good generators for inductive relations

This work shows how to use ideas from narrowing to compile a large subclass of Coq's inductive relations into efficient generators, avoiding the interpretive overhead of previous implementations.