From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id EC72A7EE35 for ; Sun, 3 Apr 2016 14:49:21 +0200 (CEST) IronPort-PHdr: 9a23:b3HqCBY2iYl9rYHKpaPlNE//LSx+4OfEezUN459isYplN5qZpcmybnLW6fgltlLVR4KTs6sC0LqG9fu9EjFYqb+681k8M7V0HycfjssXmwFySOWkMmbcaMDQUiohAc5ZX0Vk9XzoeWJcGcL5ekGA6ibqtW1aJBzzOEJPK/jvHcaK1oLsh7D0oMCYPl0ArQH+SI0xBS3+lR/WuMgSjNkqAYcK4TyNnEF1ff9Lz3hjP1OZkkW0zM6x+Jl+73YY4Kp5pIYTGZn9KoMTRLlcRCk9PnourJngvBzHCA+O/Wc0U2MMkxMODRKTvz/gWZKkiSr/sew18zOHNMv7VvhgQjWn6KEtQwX1gSEKLHhjqDmIosksnORcuh339E83+JLdfIzAbKk2RajaZ95PHWc= Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=Neutral smtp.pra=simon.cruanes.2007@m4x.org; spf=Pass smtp.mailfrom=SRS0=LZHp=P6=m4x.org=simon.cruanes.2007@bounces.m4x.org; spf=Pass smtp.helo=postmaster@mx1.polytechnique.org Received-SPF: Neutral (mail2-smtp-roc.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=mail2-smtp-roc.national.inria.fr; envelope-from="SRS0=LZHp=P6=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 (mail2-smtp-roc.national.inria.fr: domain of SRS0=LZHp=P6=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=mail2-smtp-roc.national.inria.fr; envelope-from="SRS0=LZHp=P6=m4x.org=simon.cruanes.2007@bounces.m4x.org"; x-sender="SRS0=LZHp=P6=m4x.org=simon.cruanes.2007@bounces.m4x.org"; x-conformance=sidf_compatible; x-record-type="spf2.0" Received-SPF: Pass (mail2-smtp-roc.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=mail2-smtp-roc.national.inria.fr; envelope-from="SRS0=LZHp=P6=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: A0BjAgBfEAFXkyIeaIFdFoN0fQGocIsAhz6CFYI6gnaBXToSAQEBAQEBAQERAQEBAQkLCQkhL0ESAYFZgj4EgQ4TDgIRBSkgiDoEAQmZeo9dkS0IjnODNoJWBZMYhGAIAYVziAsKgjaMVwKPGicCgW8BCwGCJmoFhiOBYgEBAQ X-IPAS-Result: A0BjAgBfEAFXkyIeaIFdFoN0fQGocIsAhz6CFYI6gnaBXToSAQEBAQEBAQERAQEBAQkLCQkhL0ESAYFZgj4EgQ4TDgIRBSkgiDoEAQmZeo9dkS0IjnODNoJWBZMYhGAIAYVziAsKgjaMVwKPGicCgW8BCwGCJmoFhiOBYgEBAQ X-IronPort-AV: E=Sophos;i="5.24,436,1454972400"; d="asc'?scan'208";a="211871427" Received: from mx1.polytechnique.org ([129.104.30.34]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/ADH-AES256-GCM-SHA384; 03 Apr 2016 14:49:21 +0200 Received: from carty.lan (4va54-h02-176-130-250-55.dsl.sta.abo.bbox.fr [176.130.250.55]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ssl.polytechnique.org (Postfix) with ESMTPSA id 9B3105646E7 for ; Sun, 3 Apr 2016 14:49:20 +0200 (CEST) Date: Sun, 3 Apr 2016 14:46:55 +0200 From: Simon Cruanes To: OCaml users Message-ID: <20160403124655.GS24122@carty.lan> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="tuFXEhzhBeitrIAu" Content-Disposition: inline User-Agent: Mutt/1.5.23.1 (2014-03-12) X-AV-Checked: ClamAV using ClamSMTP at svoboda.polytechnique.org (Sun Apr 3 14:49:20 2016 +0200 (CEST)) X-Spam-Flag: No, tests=bogofilter, spamicity=0.000000, queueID=D7A4556483C X-Org-Mail: simon.cruanes.2007@polytechnique.org Subject: [Caml-list] [ANN] qtest 2.2, merged with qcheck --tuFXEhzhBeitrIAu Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hello, I'm very happy to announce that Qtest, a tool that allows one to write tests in comments directly next to the tested functions (originally developed for testing batteries-included), and QCheck, a quickcheck clone I have been developing for a while, have been merged in the release qtest-2.2. Qtest provides facilities to write both unit tests (based on OUnit), as in (*$T [1;2;3] =3D List.sort compare [3;2;1] *) and quickcheck-like random tests, as in (*$Q Q.(list int) (fun l -> sort l =3D sort (sort l)) *) The support for random tests now relies upon qcheck. Our goal with this merge is to provide both a tool for people who want to keep tests as close as possible to their code (even for versions of OCaml that do not support ppx), and a feature-full library for people who prefer to keep their tests separate. Documentation for qcheck (the library) can be found at http://cedeela.fr/~simon/software/qcheck/ . Documentation for qtest (the tool, and how to use it) can be found at https://github.com/vincent-hugot/iTeML/blob/3bc5ecca75487771db512902d6e533a= b059b8e34/README.adoc Note that this release breaks compatibility with the previous versions of qcheck (mostly because the `'a arbitrary` type is now much richer, packing together a random generator, a printer, a shrinking functions=E2=80=A6). To upgrade tests from qcheck, it is easy to convert a random generator into an `'a arbitrary` using `QCheck.make`. For writing complex generators, Gabriel Scherer's library might be useful: https://github.com/gasche/random-generator . Cheers! --=20 Simon Cruanes http://weusepgp.info/ key 49AA62B6, fingerprint 949F EB87 8F06 59C6 D7D3 7D8D 4AC0 1D08 49AA 62B6 --tuFXEhzhBeitrIAu Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v2 iQIcBAEBCAAGBQJXARC9AAoJEErAHQhJqmK2UTMQALa74f6025ROceUeUayoEWXY GUZwFVT628YLY3EMAs6zR4K+8E6n9iupN9hS2/lrttJnPaby3Viw8TauwtDvoqYl IbZCsxWSBw9KsBhCipgv95BPZK3HSkrmZZDCGpdEaSmLgNOFOVqnJ3tqxLgzwaGm qMBTfdA0IEquT7aKkG8v6mi/Gb4eRome3CpWQVVqa375MIVAwyEriIlTZGzEqAz4 /H5zeqBM00muExERPbi0k9Ev7xLvnKAS2MWa+k0MBZcc2rooaYCR5RbM3GOPJrHd CMxnzX6TOTenAzXacF+X+qKuv7XYH7Vrr1uRkufGM94f60Bm9ihThuMXNHAQqXo7 sGQ91KuiXIkoE2etp18bbIofKorX8OXapXOUYk/xCd9kA4dD0GvDDElmHu+sqmbb GWf0NK4iGn/fw3v84qcnNSUhDAS3ZV40y4mIpsMABTc93oq7V3qE0sb7EQ7Is4HA 1rk0qTDCmOwFeNeNPjgwsdNOL19qoNASemYhqr8zC5ByikDUQPVqEQlcqKAjACL7 XUDAB4C8+2exgTLsHUsEp68T4GxEM3kjizL0n7hJ1qbD/c8hlgrJJ8tQsK1ehO0d J79MCyiLH0mXLSuVcZDKtLHFscUL7c48rLRANLg76/QPN/+GVFX1XENtuR2SQqtP UaupHjgDz8NQGMyhbbOn =umzf -----END PGP SIGNATURE----- --tuFXEhzhBeitrIAu--