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

haskell - 単体テストと Haskell の Cabal の統合の現状は?

単体テストをcabalファイルと統合する方法をグーグルで検索すると、次のいずれかが見つかります

  • http://www.haskell.org/haskellwiki/How_to_write_a_Haskell_program HUnit/QuickCheck と Cabal ファイルの統合について説明していないようです
  • または、「cabal テストをサポートする Cabal xy を待ちます」のようなメッセージが表示されますが、これに関するドキュメントが見つかりません

今日、cabal を使用してすべての単体テストをどのように実行しますか (たとえば、「cabal ビルド」を行うたびに)?

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

haskell - HaskellQuickCheck独自の乱数生成

選択した要素が一度だけ選択されるようにQuickCheckを使用してHaskellでジェネレーターを定義する方法を正確に知っている人はいますか?

「Gen(MaybePositive)」ジェネレーターが必要かもしれないことに気づきましたが、もちろんそれは繰り返しで数を生成します。選ばれた番号が繰り返されることなく選ばれるようにしたいと思います。数字が返される場合はちょうど返されたいし、ランダムがすべて使い果たされている場合はGenNothingが返されるようにします。

ありがとう、

マーク

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

haskell - QuickCheckインスタンスはcabalパッケージのどこに属しますか?

他の開発者に役立つ可能性のあるタイプをエクスポートするcabalパッケージがあります。NBT私はArbitrary自分のタイプのインスタンスを定義するのに苦労しました。私の仕事を統合するコードをテストするために他の開発者にインスタンスを提供しないのは残念です。

ただし、インスタンスが邪魔になるような状況は避けたいと思います。おそらく、他の開発者は、インスタンスがどうあるべきかについて異なる考えを持っています。Arbitraryおそらく、QuickCheckの特定のバージョンに対する私のパッケージの依存関係は、クライアントプロジェクトの依存関係に干渉するか、望ましくない可能性があります。

私の考えは、順不同で、次のとおりです。

  • Arbitraryタイプの定義の横にインスタンスを残し、クライアントがインスタンスのシャドウイングまたはQuickCheckバージョン番号のオーバーライドを処理できるようにします。
  • Arbitrary同じパッケージ内の別のモジュールで、インスタンスを孤立したインスタンスにしますData.NBT.Arbitrary。パッケージ全体のQuickCheckへの依存は残ります。
  • インスタンスを完全に別個のパッケージで提供し、Arbitraryクライアントプロジェクトの別個のテスト依存関係としてリストできるようにします。
  • 条件付きで、ArbitraryインスタンスとQuickCheck依存関係の両方をメインパッケージに含めますが、のようなフラグ-ftestが設定されている場合に限ります。

他のライブラリで使用されているこれらすべての組み合わせを見てきましたが、どれが最適に機能するかについてのコンセンサスは見つかりませんでした。Hackageにアップロードする前に試してみたいと思います。

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

haskell - メインでクイックチェックを使用する方法

私が書いた二分探索関数のテストを書いています。

ghciでquickCheckを使用するとうまく機能しますが、メインを実行しようとするとエラーが発生します

これがメインでは機能しないのに、ghci では機能するのはなぜですか?

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

c - va_listに非vararg関数を適用するにはどうすればよいですか?

裏話

QuickCheckユニットテストフレームワークをCに移植しています( GitHubの作業コードを参照してください)。構文は次のようになります。

propertyたとえば、テストする関数はどこにありますかbool is_odd(int)gen1gen2などは、の入力値を生成する関数ですproperty。整数を生成するもの、文字を生成するもの、文字列を生成するものなどがあります。

for_all任意の入力(任意の数の引数、任意のタイプの引数)を持つ関数を受け入れます。for_allジェネレーターを実行し、プロパティ関数に渡すテスト値を作成します。たとえば、プロパティis_oddはタイプが。の関数bool f(int)です。for_all生成物を使用して100個のテストケースを作成します。プロパティがそれらのいずれかに対してfalseを返す場合for_all、問題のあるテストケース値を出力します。それ以外の場合は、for_allを出力します"SUCCESS"

したがって、ジェネレータにアクセスするにfor_allはを使用する必要があります。va_listジェネレーター関数を呼び出したら、それらをプロパティ関数に渡すにはどうすればよいですか?

is_oddタイプがの場合、次の構文を持つbool f(int)関数をどのように実装しますか?apply()

二次問題

SOを参照してください。

失敗したテストケースの任意の値をインテリジェントに印刷するにはどうすればよいですか?テストケースは、単一の整数、2文字、文字列、または上記の組み合わせの場合がありますか?使用するかどうかは事前にわかりません。

  • printf("%d %d %d\n", some_int, some_int, some_int);
  • printf("%c\n" a_character);
  • printf("%s%s\n", a_string, a_struct_requiring_its_own_printf_function);
0 投票する
2 に答える
272 参照

haskell - QuickCheck プロパティの重複を避ける

99個のHaskell問題を解いてHaskellを学び始めています。 http://www.haskell.org/haskellwiki/H-99:_Ninety-Nine_Haskell_Problems クイックチェックを使用して、各プログラム/関数のテストを書きたいと思います。

次のコードがあります。

myLast''、などと書くかもしれませんmyLast'''。コードを複製してプロパティをクイックチェックすることなく、これらすべてのメソッドをテストできる方法はありますか?

関連する質問: 現在、quickcheck に文字列を使用するように指示しています。さまざまなタイプをランダムに使用してテストする方法はありますか?

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

haskell - HaskellのQuickCheckを使用して特定の長さのリストを生成する

prop_3aをQuickCheckで実行すると、十分な長さのリストが生成されないため、あきらめます。

ランダムな整数よりも長いリストを生成するジェネレーターを作成するにはどうすればよいですか?

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

haskell - Djinn / UU / Examples / Equality.hsにexampleをロードする方法は?

その後cabal install Djinn、QuickCheckを使用すると、実行可能ファイルはになり./.cabal/bin/djinnます。

次に、実行可能ファイルをディレクトリにコピーしますDownloads/Djinn/UU/Examples/

Equality.hs例を実行したい、djinn Equality.hsコマンドを解析できません

その後./djinn:load full path/UU/Examples/Equality.hs

returnはコマンドを解析できません

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

haskell - ByteStringを使用したHaskell QuickCheck2?

RWH の本には、ByteString のサポートを得るには、以下を追加する必要があると書かれています。

しかし、私の GHC 7.2 with QuickCheck 2.4.1.1 は次のように教えてくれます:

ポインタはありますか?