寺田です.
樋口さん:
> 今、力学シミュレータを作っているのですが、
> 何せ、「そもそもリアルタイムで動作する上に、
> 結果が数値的にどうなるのかわからない」:-)
> という状態なので、もっぱら目視判定になっちゃってます。
> うーん、よくないですねぇ。
やっぱりそうですよね.
でも,そういうプログラムでも,コード中に幾つかの assert 文を埋め込んでい
くことはある程度は可能ですよね.例えば,この値は正でなくてはおかしいとか,
この範囲に収まっていないとダメだ,などという程度なら.
実コードの内部に埋め込む assert 文は,
・private メソッドもテストできる
・関数内のローカル変数や private 変数にもアクセスできる
・関数の先頭/末尾だけでなく,計算の途中に埋め込むことが出来る
というユニットテストにはない特徴があります.この特徴は,力学シミュレータ
や幾何計算のようなプログラムのテスト(というより簡単なチェックに過ぎませ
んが)には必須なものではないかと感じています.この辺にユニットテストの限
界を感じます.
樋口さん:
> 精度保証付き計算とか区間演算と呼ばれています。
> これは結構メジャーなので
> (といっても、知ってるのは一部の研究者くらいのようですが)
> 検索すれば適当な資料が見つかるかと思います。
「区間演算」の名で聞いたことがありますが,特に詳しく調べたことはありませ
んでした.改めて聞くと,なかなか面白そうですね.
これを使えば,「期待通りの精度保証ができているか」という視点からしっかり
としたユニットテストが記述可能かもしれません.
少し調べて,実験してみようと思います.(← 暇があれば・・・)
樋口さん:
> あと、幾何的な構造から、幾何情報を崩さないようにするアプローチもあります。
> この本に詳しく書いてあります。(まだ、完全に読みきってませんが…)
> 培風館「計算幾何工学」杉原厚吉著
> ISBN4-563-03642-0
> こっちはかなりマイナーなようです。
あ,この本は持っています.私は実にいい本だと思いました.
# これってそんなにマイナーな本だったんですか.
以上です.
--
Y.Terada <terada@....jp>