快速检查类:QuickCheck通用类型类

[bsd3型,图书馆,测试][建议标签]

此库提供QuickCheck属性以确保类型类实例遵循一套法律他们应该这样做。还有其他图书馆也这样做类似的东西,例如“genvalidity-hspec”和跳棋.此库与其他解决方案的不同之处在于没有引入用户需要学习的任何新类型类。

注:对于GHC<8.5,此库使用更高种类的类型类(数据。函数。课程。显示1,数据。函数。课程。等式1,数据。函数。课程。订单1等),但对于大于等于8.5的GHC,它使用“-XQuantifiedConstraints”来表示这些约束更加清晰。


[跳到自述]

旗帜

手动标记

姓名描述违约
伊森

您可以禁用伊森使用“-f-aeson”打包。

这可能有助于加快专家用户在沙箱中的构建。

已启用
半群胚

您可以禁用半群胚使用“-f-半群胚”的包。

这可能有助于加快专家用户在沙箱中的构建。

已启用
半环

您可以禁用半环使用“-f半环”的包。

这可能有助于加快专家用户在沙箱中的构建。

已启用
矢量

您可以禁用矢量使用“-f矢量”的包。

这可能有助于加快专家用户在沙箱中的构建。

已启用
一元定律

包括用于测试一元类型构造函数的类定律的基础结构。要求此标志与“一元法则”标志的值匹配是在建立“快速检查类库”时给出的。

已启用
二元定律

包括用于测试二进制类型构造函数的类法则的基础结构。要求此标志与“一元法则”标志的值匹配是在建立“快速检查类库”时给出的。禁用一元定律`而保持启用“二进制定律”是不受支持的配置。

已启用

使用-f<标志>启用标志,或-f-<标志>禁用该标志。更多信息

下载

注意:此软件包具有元数据修订在阴谋集团的描述中比tarball中包含的要新。要打开包括修订版在内的包装,请使用“cabal get”。

维修人员角落

包装维护人员

对于包维护者和黑客托管者

候选人

版本[RSS(RSS)] 0.1,0.2,0.3,0.3.1,0.3.2,0.3.3,0.4.0,0.4.1,0.4.2,0.4.3,0.4.4,0.4.5,0.4.6,0.4.7,0.4.8,0.4.9,0.4.10,0.4.11,0.4.11.1,0.4.12,0.4.13,0.4.14,0.4.14.1,0.4.14.2,0.4.14.3,0.5.0.0,0.6.0.0,0.6.1.0,0.6.2.0,0.6.2.1,0.6.2.2,0.6.3.0,0.6.4.0,0.6.5.0(信息)
更改日志 changelog.md
依赖关系 伊森(>=0.9),基础(>=4.5 && <5),容器(>=0.4.2.1),失败,ghc-prim公司,原始的(>=0.6.4 && <0.10),基本地址(>=0.1.0.2 && <0.2),快速检查(>=2.10.0),快速检查类库(>=0.6.2 && <0.7),半群胚,半群(>=0.17),半环(>=0.4.2),已标记,变压器(>=0.5.0 && <0.7),矢量(>=0.12)[细节]
许可证 BSD-3条款
版权所有 2018安德鲁·马丁
作者 安德鲁·马丁,切塞
维护人员 andrew.thaddeus@gmail.com
修订过的 第3次修订制造商安德鲁哈德2024-04-24T12:43:41Z年4月24日
类别 测试
主页 https://github.com/andrewthad/quickcheck-classes#自述文件
源回购 头部:git克隆https://github.com/andrewthad/quickcheck类
已上传 通过安德鲁哈德2021-04-12T11:35:35Z
分配 架构(architecture):0.6.5.0,LTSHaskell公司:0.6.5.0,NixOS:0.6.5.0,堆叠:0.6.5.0
反向依赖关系 6直接,0间接[细节]
下载 总计19876(过去30天内128)
额定值 (尚未投票)[估算人贝叶斯平均]
您的评分
  • λ
  • λ
  • λ
状态 用户上传的文档
生成状态未知[还没有报告]

快速检查类自述-0.6.5.0

[返回包描述]

快速检查类

这个库提供了一组属性,这些属性应该用于公共类型类,以及三(3)个可以用来测试它们的简单函数。

法律检查:

用于测试GHCi特性的便利函数。例如,在GHCi:

>>>lawsCheck(monoidLaws(代理::代理排序))Monoid:联想+++OK,通过了100次测试。Monoid:左身份+++正常,通过100次测试。Monoid:正确身份+++OK,通过100次测试。

假设任意的的实例订购很好,我们现在有信心单体的实例订购满足monoid定律。

法律检查许多:

检查多个类型类实例的便利函数多种类型。考虑以下Haskell源文件:

导入数据。代理(代理(..))导入数据。地图(Map)导入数据。集合(Set)--“Set”“Int”的“Proxy”。setInt::代理(Set Int)setInt=代理--“Map”“Int”“Int”的“Proxy”。mapInt::代理(映射Int)mapInt=代理myLaws::代理a->[Laws]myLaws p=[eqLaws p,monoidLaws p]namedTests::[(字符串,[Laws])]命名测试=[(“设置Int”,myLaws setInt),(“地图国际”,myLaws地图国际)]

现在,在GHCi中:

>>>法律检查许多命名测试测试常用类型类的属性---------------设置Int---------------等式:Transitive+++OK,通过100次测试。等式:对称+++正常,通过100次测试。等式:反射+++正常,通过100次测试。Monoid:Associative+++OK,通过100次测试。Monoid:左身份+++正常,通过100次测试。Monoid:正确的身份+++OK,通过了100次测试。Monoid:级联+++正常,通过了100次测试。-------------------映射Int Int-------------------等式:Transitive+++OK,通过100次测试。等式:对称+++正常,通过100次测试。等式:反射+++正常,通过100次测试。Monoid:Associative+++OK,通过100次测试。Monoid:左身份+++OK,通过了100次测试。Monoid:正确的身份+++OK,通过了100次测试。Monoid:级联+++正常,通过了100次测试。

法律CheckOne

一个方便的函数,允许检查多个类型类相同类型的实例。

例如,在GHCi中:

>>>lawsCheckOne(Proxy::Proxy Word)[jsonLaws,showReadLaws]ToJSON/FromJSON:编码等于值+++OK,通过了100个测试。ToJSON/FromJSON:部分同构+++OK,通过了100个测试。显示/读取:部分同构+++正常,通过了100个测试。