問題タブ [quickcheck]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
122 参照

haskell - Test.QuickCheck の拡張

テストが失敗したときに (単なるシードではなく) より良いメッセージを表示するようにQuickCheckを拡張したいと考えています。たとえば、次のようなものを作成できるようになりたいと考えています。

または ( でMonoid「停止」しSadResult、 で「続行」するインスタンスで、演算子の forHappyResultに似ています)(&&)TestResult

QuickCheck 機能を拡張するにはどうすればよいですか? あるいは、より拡張可能なランダム化されたテスト ライブラリはありますか?

ありがとう!

0 投票する
2 に答える
852 参照

haskell - QuickCheck テストがランダムにハングする

私はHaskellが初めてです。簡単な関数をテストしようとして、QuickCheck テストで遊んでいますcalculateStrengthSingle(以下の testee のソースを参照してください)。

テストはこんな感じ

私が行うと、runhaskell TestFighter.hs出力があり(1 test)(数値が変化している場合も0あり4ます)、CPU は 100% ロードされています。1分ほど何も起こりません。でプログラムを中断するとCtrl+C、次のようなものが吐き出されます

質問:

  1. どこで台無しにしましたか?
  2. このような無限計算のケースをデバッグするにはどうすればよいですか?
0 投票する
2 に答える
1647 参照

haskell - Haskell QuickCheck は、多くの入力変数を持つ関数のランダム データを生成します

次の型シグネチャを持つ関数があります

  • 最初の入力は、負でない厳密に正の整数からの値でなければなりません
  • 2 番目と 3 番目の入力は、閉区間 [0.0,1.0] 内にある必要があります。そうでない場合、関数は意味をなしません。

関数には次のプロパティがあります

maxIdxとのランダム データr1r2個別に生成するにはどうすればよいですか。関数chooseは知っていますが、複数の入力変数で使用する方法がわかりません。

今のところ、プロパティを fixed でテストしましたがidx、これはテストすべき方法ではありません。

0 投票する
1 に答える
1760 参照

testing - QuickCheck があきらめるのはなぜですか?

QuickCheck次のプログラムをテストするために使用しています。

反応はさまざまですが、常にメッセージを受け取ります

これは私が心配すべきことですか?または、テスト入力の性質によって、QuickCheck が実行される時間が決まりますか?

0 投票する
2 に答える
1008 参照

haskell - QuickCheck を使用して意図的なエラー状態をテストする

QuickCheck を使用してモナドおよび非モナドのコードをテストする方法を見てきましたが、エラーを処理するコード、つまりメッセージを出力してから呼び出すコードをテストするにはどうすればよいexitWithでしょうか?

0 投票する
0 に答える
254 参照

haskell - セグメンテーション違反でのquickCheckエラー: 11

私は「Haskell - 関数型プログラミングの技術」に取り組んでおり、本当に奇妙な問題に遭遇しました:

次の 2 つの関数を定義しています。

どちらも望ましい結果を生み出すようです。次に、次の quickCheck プロパティを定義します。

これらのプロパティはすべて、quickCheck prop_nameプロデュースで実行すると次のようになります。

私のモジュール定義は次のとおりです。

このエラー メッセージの原因は何ですか?