問題タブ [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.
haskell - Arbitrary のインスタンスを使用してトリプル (Network.HTTP.ResponseCode) を生成します
Network.HTTP から ResponseCode を受け取る関数があります。QuickCheck でテストするために、ResponseCode の Arbitrary のインスタンスを書きたいと思いました。(ご存じない場合は、ResponseCode は、そのライブラリ内の int のトリプルにすぎません: type ResponseCode = (Int, Int, Int))。
だから私はこのようなものを書きました:
まず第一に、GHC は、私が型を使用している方法が標準的な Haskell ではないので、いくつかのコンパイラ フラグを使用する必要があると文句を言っています (これは、この単純な問題に対して、フラグ)。
次に、任意の関数の型が間違っています。これは明らかです。しかし、その後、1 から 6 の範囲のランダムな Int を持つトリプルを返す関数の書き方が本当にわかりませんでした。
誰かがここで私を助けてくれれば幸いです。
ありがとうございました。
haskell - QuickCheck1 から QuickCheck2 に変換するための「クックブック」?
QuickCheck1 から QuickCheck2 に変換できるクックブックはありますか?
いくつかの例として、defaultConfig
(に置き換えArgs
) とtrivial
が削除され、CoArbitrary
導入されました。
私はQuickCheck 2の新機能を読みました(単一の回答で...) 。
haskell - CoffeeScriptのクイックチェック
それは存在しますか?見つかりません。ウィキペディアに掲載されていません。(つまり、存在しないということです:))
node.jsにあることは知っています。私のノードアプリをcoffeescriptで記述し、クイックチェックを適用することが機能するかどうかはわかりません。
http://en.wikipedia.org/wiki/Quick_check
手がかりはありますか?
testing - QuickCheck で入力を生成して Parsec パーサーをテストする
私は一連の Parsec パーサーのテストを書きたいと思っています。QuickCheck でテストしたいパーサーの簡単な例を次に示します。
したがって、理想的には、QuickCheck が有効な識別子を生成し、正しい結果が返されるようにし、無効な識別子を生成してParseError
. この種のことを簡単にするユーティリティはありますか? そのような入力を生成するために、いわば「パーサーを逆に実行する」方法はありますか?
一般に、このパーサーの QuickCheck テストの適切なスイートはどのようなものでしょうか? ある程度、徹底的なテストを行うには、QuickCheck のパーサーのロジックを基本的に複製する必要があるように思えます。それは本当に良い考えですか、それとも、これはおそらく HUnit のような従来のツールが QuickCheck よりも適している状況ですか?
java - Ploeh の AutoFixture for .Net に代わる Java はありますか?
.Net の AutoFixture と同様に、テストで匿名変数(値を気にしない変数)を作成する Java ツールを探しています。AutoFixture の readmeへのリンクを次に示します。ここには、それが何をするかのかなり良い例があります。
以下は、同じ readme から抜粋した短い例です。
Javaの世界にそのようなツールはありますか?
編集:
私はQuickCheckを試してみましたが、探していたようなことをすることができました:
このツールは、インターフェイスでのみ機能するようです。テストをクラスに変更し、メソッドをフィールドに変更すると、ジェネレーターはインターフェイスのみがサポートされているという例外をスローします。
特にドキュメントが深刻に不足しているため、より良いものがあることを心から願っています。
haskell - 非ブールテストのクイックチェック
QuickCheckを使用して、数値計算のためにコードをテストしています。基本的に、私は正確な関数とそれのいくつかの近似を持っており、はるかに効率的です。
私は現在、次のようなテストを行うプロパティを実装しています。
しかし、それぞれの近似アルゴリズムがどれほど正確であるかを正確に知り、それらを互いに比較することは本当に素晴らしいことです。これを行う簡単な方法の1つは、不等式の左側の平均と標準偏差のレポートを取得することです。これはどういうわけか可能ですか?
haskell - 型クラスの課題:可変個引数と結果の両方を持つ
いくつかのArbitrary
インスタンスを作成しているときに、次の非常に機械的なパターンでいくつかの関数を実装しました。
私はこれらの関数を手作業で書きましたがshrink7
、それで十分だと思います。しかし、私はどうしようもありません。これは合理的に自動化できるのでしょうか。次のようなソリューションのボーナスポイント:
- を可能にします
shrink0 f = []
- すべての収縮器を生成します
- 型クラスのハッカーがたくさんあります、私はそれが大好きです
- インコヒーレント/決定不能/重複インスタンスなどの恐ろしい拡張機能をスキップします
- ケーキを持って食べさせてくれます。渡すときにカレーをかけたり、、、、に適用するときにカレー
f
を塗ったりする必要はありません。shrinkX f
a
b
c
haskell - クイックチェックで修飾子を使用する方法(私の場合は正)
rev
3つの型クラスにある型の値を返す関数があります。
クイックチェックでそれに関するいくつかのプロパティをテストしたいと思います。ただし、ベースライブラリに型がInteger
ないために使用しているため、整数型の負の値をテストすることには興味がありません。Natural
だから私は、生成された値が負のときに生成された値の反対を取りましょう、そして私は大丈夫だと思いました:
(テストされたプロパティはここでは重要ではありません-特にそれは非常に基本的な値には当てはまりません、そして私はそれを知っています、それはこの質問の主題ではありません)
次に、修飾子に遭遇しPositive
、テストは機能しているものの、より良い方法で実装するとよいと思いました。だから私は試しました:
それが編集されたとき、私は驚いたことを認めなければなりません。しかし、テストの実行時にエラーが発生しました。
だから私は、「うーん、これPositive
をインスタンスとして宣言しなければならない」と思いましたRead
。だから私はまさにそれをしました、しかしインスタンスはすでにquickCheckライブラリで宣言されています、それはghciが私に叫んだからだと思われます。
そして、この時点で私は迷子になっています。良いドキュメントが見つからないからです(もしあれば)。
クイックチェックライブラリの修飾子やその他の優れた点を理解するのに役立つポインタをいただければ幸いです。
haskell - QuickCheck NonEmpty 文字列 - listOf
私はquickcheck(およびhaskellも)を学んでいます。次のコードがあります:
私の質問は、listOf が空 (NonEmpty) を返さないようにする方法についてです。これは、生成された一部のデータで {unFN = "http://.net"} のような文字列を受け取るためです。
haskell - パラメータの有効なリスト インデックスのみを生成するように QuickCheck に指示する方法は?
関数の単体テストを書きたいとし(!!)
ます。
n を有効なインデックスのみに制限したいのですが、次のようなことができることはわかっています
しかし、これにより、生成されたケースの大部分が無効になり、破棄されます。xs
QuickCheck が最初にリストを生成し、その値を使用して有効なケースのみを生成するように設定する方法はありn
ますか?