ScalaCheck – 有序数组生成器
发布时间:2020-12-16 18:57:13 所属栏目:安全 来源:网络整理
导读:我是第一次尝试 ScalaCheck,我想生成一个有序的Ints数组. 我阅读了文档并做了一些搜索,但我找不到办法. 有人可以对此有所了解吗? 谢谢 解决方法 我假设你想要一个已经排序的任意整数数组,对吧?如果是这种情况,您可以使用以下任一方法获取Gen [Array [Int]]
我是第一次尝试
ScalaCheck,我想生成一个有序的Ints数组.
我阅读了文档并做了一些搜索,但我找不到办法. 有人可以对此有所了解吗? 谢谢 解决方法
我假设你想要一个已经排序的任意整数数组,对吧?如果是这种情况,您可以使用以下任一方法获取Gen [Array [Int]]:
val genIntArray = Gen.containerOf[Array,Int]( Gen.chooseNum(Int.MinValue,Int.MaxValue) ) 要么: val genIntArray = implicitly[Arbitrary[Array[Int]]].arbitrary 然后,您可以使用map修改生成器以对其结果进行排序: val genSortedIntArray = genIntArray.map(_.sorted) 现在你可以运行genSortedIntArray.sample.get几次来说服自己结果是一个随机整数的排序数组. 如果你想要一个排序的整数数组的任意,最好定义一个包装器,而不是隐藏默认的Arbitrary [Array [Int]].例如,您可以编写以下内容: case class SortedIntArray(value: Array[Int]) extends AnyVal object SortedIntArray { implicit val arb: Arbitrary[SortedIntArray] = Arbitrary( genSortedIntArray.map(SortedIntArray(_)) ) } 然后: forAll { (a: SortedIntArray) => confirmThatMyFunctionOnSortedIntArraysWorks(a.value) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |