Testing properties of generic functions

  • Authors:
  • Patrik Jansson;Johan Jeuring;Laurence Cabenda;Gerbo Engels;Jacob Kleerekoper;Sander Mak;Michiel Overeem;Kees Visser

  • Affiliations:
  • CSE, Chalmers University of Technology, Sweden;ICS, Utrecht University, The Netherlands; ;Utrecht University;Utrecht University;Utrecht University;Utrecht University;Utrecht University

  • Venue:
  • IFL'06 Proceedings of the 18th international conference on Implementation and application of functional languages
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

A datatype-generic function is a family of functions indexed by (the structure of) a type. Examples include equality tests, maps and pretty printers. Property based testing tools like QuickCheck and Gast support the definition of properties and test-data generators, and they check if a monomorphic property is satisfied by the test cases. Generic functions satisfy generic properties and this paper discusses specifying and testing such properties. It shows how generic properties and generators can be expressed, and explains three bugs we found and corrected in the Generic Haskell library.