ライブラリはsrcディレクトリにあり、データ定義があります。A.テストに関するコードは、多くのチュートリアルで示唆されているように、テストディレクトリにあります。シリアル・インスタンスは、テストケースを生成し、以下のリンクを参照します testing(tasty-smallcheck)とファイル構成と孤立インスタンスの回避
instance Monad m => Serial m A where ...
cabal test
これはまったく問題ですか?関連するコードをテストする際に孤立したインスタンスを残すことはどれほど難しいでしょうか?それは、関連するコードをテストで孤児のインスタンスを残すためにどのように悪い慣習
SmallCheck: Making types instance of typeclass Serial
How to use SmallCheck in Haskell?
実践では実例コードでインスタンスを宣言しているようですが、私も嫌いです。私の個人的なプロジェクトでは、私は孤立したインスタンスと一緒に暮らすことができると思います。しかし、生産コードにこれらのインスタンスを含めることは面白いかもしれません。なぜなら、他の人があなたのデータ型について新しいテストを構築しやすくなるからです。 –
@ Jean-BaptistePotonnier、内部テストに使用される「任意の」インスタンスは、あなたが公開したいものと意図的に異なる場合があります。たとえば、バランスのとれたツリーの実装が最大限にアンバランスなツリーでも機能することを確認したい場合があります。 – dfeuer
@dfeuer私は見る!私は、データの異なる分布について異なるインスタンスを持つ、いくつかのパフォーマンステストを行うことも想像することができます。 –