From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id B5C487EE4B for ; Mon, 7 Oct 2013 10:36:08 +0200 (CEST) Received-SPF: Neutral (mail3-smtp-sop.national.inria.fr: domain of simon.cruanes.2007@m4x.org does not assert whether or not 129.104.30.34 is permitted sender) identity=pra; client-ip=129.104.30.34; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="SRS0=VYG6=TR=m4x.org=simon.cruanes.2007@bounces.m4x.org"; x-sender="simon.cruanes.2007@m4x.org"; x-conformance=sidf_compatible; x-record-type="spf2.0" Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of SRS0=VYG6=TR=m4x.org=simon.cruanes.2007@bounces.m4x.org designates 129.104.30.34 as permitted sender) identity=mailfrom; client-ip=129.104.30.34; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="SRS0=VYG6=TR=m4x.org=simon.cruanes.2007@bounces.m4x.org"; x-sender="SRS0=VYG6=TR=m4x.org=simon.cruanes.2007@bounces.m4x.org"; x-conformance=sidf_compatible; x-record-type="spf2.0" Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of postmaster@mx1.polytechnique.org designates 129.104.30.34 as permitted sender) identity=helo; client-ip=129.104.30.34; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="SRS0=VYG6=TR=m4x.org=simon.cruanes.2007@bounces.m4x.org"; x-sender="postmaster@mx1.polytechnique.org"; x-conformance=sidf_compatible; x-record-type="v=spf1" X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjYBAE9yUlKBaB4inGdsb2JhbABZFoMpwSKBYhYOAQEBAQEGFgk8glOBDjQFSYgZDJkmoQmSd4EEA5gAgTCTdw X-IPAS-Result: AjYBAE9yUlKBaB4inGdsb2JhbABZFoMpwSKBYhYOAQEBAQEGFgk8glOBDjQFSYgZDJkmoQmSd4EEA5gAgTCTdw X-IronPort-AV: E=Sophos;i="4.90,1048,1371074400"; d="scan'208";a="29342594" Received: from mx1.polytechnique.org ([129.104.30.34]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/ADH-AES256-SHA; 07 Oct 2013 10:35:59 +0200 Received: from emmental.inria.fr (emmental.inria.fr [128.93.0.14]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ssl.polytechnique.org (Postfix) with ESMTPSA id CA49414006ED1 for ; Mon, 7 Oct 2013 10:35:58 +0200 (CEST) Date: Mon, 7 Oct 2013 10:35:49 +0200 From: Simon Cruanes To: OCaml users Message-ID: <20131007083549.GA22920@emmental.inria.fr> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="ZGiS0Q5IWpPtfppv" Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Mon Oct 7 10:35:58 2013 +0200 (CEST)) X-Spam-Flag: No, tests=bogofilter, spamicity=0.000000, queueID=E2E3D1400B391 X-Org-Mail: simon.cruanes.2007@polytechnique.org Subject: [Caml-list] [ANN] QCheck 0.1 --ZGiS0Q5IWpPtfppv Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hello, I'm happy to announce the first release of a small QuickCheck implementation for OCaml, named `QCheck`. It consists in writing invariants as function t -> bool for some type t, and then checking that the invariant holds on randomly generated instances of t. QCheck is designed so that writing tests is as easy as possible[1], especially for Arbitrary instances (the part where you generate random values of a type) where it provides many combinators. The library requires OCaml >=3D 4.00.1, and is available under the BSD license on opam via: $ opam install qcheck You can find documentation at: http://cedeela.fr/~simon/software/qcheck/QCheck.html source code at: https://github.com/c-cube/qcheck and some explanations here: http://cedeela.fr/quickcheck-for-ocaml.html Feedback or comments welcome! Cheers, --=20 Simon [1] your mileage might vary ;) --ZGiS0Q5IWpPtfppv Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.13 (GNU/Linux) iQIcBAEBAgAGBQJSUnJlAAoJEErAHQhJqmK2wXkQAJfcUjqD+78l+4HBJG+RhiDj Q65a3f8Uxf2Hw7GRFjrWcea4aopAZj6j1DFCVBa+sZXnN3Z1V03KRevgAj4IpBGj hUWmdODpagcmET01J0gD+K7RKbQRjbBcWJubpY1XrVuzTJnpYYvbzwAkBdomz3Ny fcq5szVPPyUgf63vFBUdb4C0yzRHG5+yJ+wsK+EHjHpIYIw3AHo8QTi0HiQhoMoY WMiXFD/y/j/7ipUb4XfmqrWEY77WRrUw3PpH2Mj/1Niks82eTWq8lSG28Pv8AsxI QbaTi50g7gnjB+Nm7Qg7/ntPCYZjA+iYokCx1LuuJ0EzSvFhdkMMrwY8yJrkc1fR t8SjM3kEJjzePJVntQlRfVQvwWO7KFAHCYKIuefIyI6h9VoHEBaF9068aaqYCUkJ /KZ4xus1Siy6dTp9nJ+dxC5HfLMVfRfSbtJowwt9n+nh0+Ygjh3VZIr5Cd46WAoX q9br+yvAhlVP0w2TSPTkL+erVYWjRTLUQhDCSpo4cxM4eFhCdwxoh03lIbD9saXd /jivg2NptXRGr3lOGA1s1onKWBHOIrE0Xz+eShGkbImAXF2jHxXmUfYX8aSPGj/z ywdPOkAoDdEu+/yGLqdnCgLRvaaCHbtduz43KKrDEVcJX+4veyFCi8I/qVvxoti6 xJr/DgMHNdM5vjmfJZyS =tJGC -----END PGP SIGNATURE----- --ZGiS0Q5IWpPtfppv--