問題タブ [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 に答える
1810 参照

haskell - Cabal のクイックチェック バージョンのインストールに関する問題

Ubuntu 10.04 に cabal 経由で quickcheck 2 をインストールしようとしています。私が何をしようとしても、私はいつも次のようになります。

これは、ghc6 と cabal-install apt パッケージのみがインストールされたクリーンな Ubuntu 10.04 上にあります。quickcheck をインストールする前に、cabal 経由でバイナリ パッケージをインストールしました。

2.1.1.1 が利用可能であると表示されますが、1.2.0.0 しかインストールされません。実際に最新バージョンをインストールできないのはなぜですか?

0 投票する
4 に答える
2325 参照

haskell - クイックチェックで失敗したテストプロパティの理由を表示するにはどうすればよいですか?

QuickCheckを介してテストするときに、プロパティテストが失敗した理由を表示するためのベストプラクティスは何ですか?

たとえば、次のことを考慮してください。

その場合、セッションは次のようになります。

ただし、デバッグの場合は、quickCheckの偽造可能なレポートの一部として失敗の理由を示すと非常に便利です。

私はこのようにそれをハックしました:

それを行うためのより良い/より良いまたはより迅速な方法はありますか?

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

haskell - 素数を生成してQuickCheckを使用する

バックグラウンド

楽しみのために、RSAを使用した暗号化の背後にある基本的な考え方をテストできるクイックチェック用のプロパティを作成しようとしています。

  • 2つの異なる素数、pおよびを選択しqます。
  • させてN = p*q
  • e互いに素な数です(p-1)(q-1)(実際には、高速エンコーディングの場合、eは通常3です)
  • dモジュロのモジュラ逆数ですe(p-1)(q-1)

xそのようなすべてのために1 < x < N、それは常に真実です(x^e)^d = x modulo N

言い換えると、xは「メッセージ」であり、それをe3乗modに上げることNはメッセージを「エンコード」する行為であり、エンコードされたメッセージをd3乗modに上げることNはそれを「デコード」する行為です。

x = 1(このプロパティは、独自の暗号化である場合にも自明に当てはまります)

コード

これまでにコーディングしたメソッドは次のとおりです。

(モジュラ逆数の実装に感謝します、グーグルとランダムブログ)

質問

問題は明らかなはずです。プロパティには条件が多すぎて、まったく使用できない状態になっています。quickCheck prop_rsaghciで呼び出そうとすると、端末がハングしました。

そこで、QuickCheckのマニュアルを少し調べてみたところ、次のようになっています。

プロパティは次の形式をとることがあります

forAll <generator> $ \<pattern> -> <property>

<generator>素数のを作成するにはどうすればよいですか?または他の制約があるので、quickCheck失敗した状態の束をふるいにかける必要はありませんか?

その他の一般的なアドバイス(特にQuickCheckに関する)は大歓迎です。

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

haskell - QuickCheck:他の任意の観点から任意のインスタンスを定義する

QuickCheck 1を使用していますが、次のデータ型があります。

Arbitraryここで、のインスタンスを定義して、およびの既存のジェネレーターを使用しCC値が生成されるようにします。私はこれをすることになった:AB

これは、固定数の値を明示的に生成するためAB必要ですか、それとも既存のものArbitrariesを新しいものに結合するためのより良い方法がありますか?

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

haskell - 表示-QuickCheckプロパティで使用される関数

1つ以上の関数を入力として受け取るQuickCheckプロパティを作成しようとしています。物事を単純にするために、関数の合成が連続する関数の適用と同等であることを確認するためのプロパティと、手っ取り早いテストドライバーを検討してください。

残念ながら、ShowQuickCheckが失敗の原因となった入力を報告できるようにプロパティへの入力を実装する必要があるため、これはコンパイルされませんがShow、関数の実装はありません。

私はShow関数のために自分の何もしないインスタンスを書いてみました...

...コンパイルしますが、警告をトリガーし-Wallます...

...これを行うにはもっと正しい方法があると思います。

私の腸は答えがTest.QuickCheck.Functionモジュールにあると私に言います、しかしそれは文書化されていません、そして私はそこにあるものが何のためにあるのか、それがどのように使われるのかをタイプシグネチャーを見ただけでは理解できません。

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

haskell - パッケージコードによって提供されるHaskell型クラスインスタンスをどのようにオーバーライドしますか?

QuickCheckテストケースを含む古いHaskellコードがいくつかあります。QuickCheckの新しいバージョン(2.4.0.1にアップグレードしたばかり)には、Arbitrary Word8およびその他の型クラスインスタンスが含まれています。これらは、Test.QuickCheck.Arbitraryの古い2.0.xバージョンには存在しませんでした。

一般的な意味では便利ですが、パッケージで提供されるArbitrary Word8ジェネレーターは、テストスイートで使用したいものではありません。

上記のコードは、コンパイル時に重複インスタンス宣言エラーを引き起こします。このコードを取り出してデフォルトのジェネレーターで処理することはできますが、これを解決する適切な方法を知りたいです。

私が検討した(ただしテストされていない)1つの可能な解決策は、Word8を使用したエイリアシングnewtypeです。それはソース全体で多くの変更を引き起こすので、よりクリーンな方法があることを望んでいます。

編集:以下のコメントで述べられているように、受け入れられた答えは非常にクリーンで実装が簡単でした:

0 投票する
3 に答える
2433 参照

haskell - 隠しパッケージQuickCheck-1.2.0.0のメンバーです、hsファイルの読み込み方法

クイックチェックをインストールし、

再度インストールします cabal install QuickCheck-1.2.0.0

再度ロードするとエラーが発生します

モジュールTest.QuickCheck.Batch': It is a member of the hidden packageQuickCheck-1.2.0.0' が見つかりませんでした。

隠しパッケージですが、どうすればいいですか?

ghc -o tryprog hello.hs -package QuickCheck-1.2.0.0 : -package QuickCheck-1.2.0.0 を満たすことができません (詳細については -v を使用してください)

このエラー以外に、パッケージ quickcheck-1.2.0.0 で .hs ファイルをロードする方法を教えてください。

この質問に 50 ポイントを追加しました

この読み込みの問題について、あなたの助けを心からお願いします!!

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

haskell - quickCheck prop_xxx を起動する関数の書き方

QuickCheck v1 を使用しています。以下は、以下のように定義された単純な prop_xxx です。

これは GHCi で正しくテストできます:

ただし、次のような関数で呼び出しをラップしようとしたとき:

エラーが報告されました:

のようなものを提供しましょうか

どうもありがとう。

-- ラリー

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

php - PHPでのプロパティベースのテスト?

さまざまな機能ベースの言語には、プロパティ ベースのテストを可能にするツール ( Quickcheck など) があります。

PHPでプロパティベースのテストを行うにはどうすればよいですか?

PHP メソッドの in および output プロパティを指定して、カバレッジ テストを実行できるようにしたいと考えています。

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

haskell - 継続的インテグレーションを備えたHUnit/QuickCheck

Bambooのような継続的インテグレーションシステムがテスト結果の詳細なレポートを実行できるようにするHUnitまたはQuickCheckの拡張機能はありますか?

これまでのところ、私の最善のアイデアは、ビルドスクリプトの一部としてテストをトリガーし、ゼロ以外の終了コードで失敗するテストに依存することです。これは、テストが失敗したときに注意を引くのに効果的ですが、ビルドの失敗とテストの失敗を混同し、問題の原因を特定するためにコンソール出力をたどる必要があります。

これが現在のツールで最適なオプションである場合、私の考えは、 JUnit XML形式で出力を生成するHUnitのレポートモジュールを作成し、JavaプロジェクトについてレポートするかのようにCIツールをそのモジュールに向けることです。ただし、これはややハックなように思われるので、既存のオプションと新しい開発の方向性の両方について考えていただければ幸いです。