この記事の最新版は、githubで管理されています。 これはHaskell Advent Calendar 2012の5日目の記事です。 Haskellで作成したパッケージに対して、単体テストを書くための最新情報をお届けします。 要約 要点は4つです。 利用者に見せたい振る舞いは、doctest で書く 利用者に見せたくない振る舞いは、hspec で書く テストを自動化するフレームワークとしては Cabal を使う doctest でも hspec でも、純粋なコードに対しては、できるだけ QuickCheck などの性質テストを書く この記事で一番伝えたいのは、3) です。例題としては、Base64 という符号化を取り上げます。Base64 は知っていると仮定して話を進めますので、知らない人はあらかじめ Wikipedia の Base64 の説明でも読んで下さい。 この記事で利用するコ
プログラムの性能を測定するにはどうすればよいでしょうか? すぐに思いつくのは,プログラムの実行時間を測定することです。しかし,現在のコンピュータの環境では,プログラムの実行が常に一定の速度で行われる保証はありません。また,Haskellではすべての値が遅延評価されるという事情もあります。 そこで,今回はHaskellプログラムの性能を測定するために用意されているベンチマーク・フレームワークである「criterionパッケージ」について説明します。 ベンチマーク・フレームワークを使うべき理由 プログラムの性能を測定する手軽な方法は,timeやtimeit.exeを使ってプログラムの実行時間を計ることです。しかし,OSの上では様々なプロセスが動作しており,それによってプログラムの実行時間にばらつきが生じます。ほかにも,実行時間にばらつきを生じさせる要因は数多く存在します。ばらつきを生じさせるす
This document is for an old version of Python that is no longer supported. You should upgrade and read the Python documentation for the current stable release. 25.2. doctest — Test interactive Python examples¶ The doctest module searches for pieces of text that look like interactive Python sessions, and then executes those sessions to verify that they work exactly as shown. There are several commo
Haskellで一からコードを書くとき、よく型だけ書いて実装はundefinedにすることがあります。これはとても便利な常套手段なんですが、規模が大きくなってきたり、undefinedな数が多くなってくると不便に思うこともあります。 undefinedとplaceholders 一通り関数とその型の概要ができてきて、小さく動かせる範囲で実装していきましょうという段階に入ると、動かしながら実装したくなるものです。 このとき未実装の部分をundefinedにしておくと、実行時には例外が上がります。残念なことにこの例外はどこから上がったものなのかエラーメッセージを見てもわかりません。 例えばこんな感じ… Foo: Prelude.undefinedこれじゃつらいので行番号を出せるようにします!というのがplaceholdersライブラリです。 使い方は簡単で、 f :: MonadFooBar
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く