Hatena::Grouptopcoder

cafelier@SRM

cafelier のSRM参加記録です。コンテスト中に考えてたことを執拗に全部書き残すとどうなるだろうかという試み本番中にこういうコードが書きたかったなあ、という後で書いた反省コードを書き残す試み

スパムが来たのでしばらくコメント欄をはてなユーザ限定にしています、すみません、

 | 

2008-12-03

TZTester をどうにかする

| 23:40 | はてなブックマーク -  TZTester をどうにかする - cafelier@SRM

TZTesterというプラグインを使っててだいぶ不満がたまってきたので適当に改造。

改造してから id:nitoyonさんの の存在に気づいた!うわあああああああこれをそのまま使えばよかったー

いちおうこんなん

ソースはこちら

※2009/05/20 : nitoyonさんのテストコード生成を参考にして大幅修正&&naoya_tさんのtimer,double誤差チェックを取り入れてみたバージョン、というか今使ってるもの → jar とソースはこちら

  • 配列でエラーが出ないようにした
  • テストケース増やしやすくした
    • パラメタごとで改行
    • パラメタ変数名を ArgN じゃなくて問題に設定されてるやつにするようにした。返値はRetVal
    • テストケース関数を増やしたら自動でそれを呼び出したりケース番号出力したりするようにtemplateでごにょごにょ
  • その代わりテストケースを個別に実行しにくくなってるけど「N番以降を実行」はできるので、懸案のケースは最後に置けばいいことにする
  • テストコードはグローバルに置くようにした
int Test_(Case_<0>) {
	int dayLength = 4; 
	int yearLength = 1461; 
	int RetVal = 4; 
	return verify_case(RetVal, DesignCalendar().shortestPeriod(dayLength, yearLength)); }
int Test_(Case_<1>) {
	int dayLength = 86400; 
	int yearLength = 31558150; 
	int RetVal = 1728; 
	return verify_case(RetVal, DesignCalendar().shortestPeriod(dayLength, yearLength)); }

こういうテストコードが出ます。さらに Test_(Case_<2>) という関数を定義したらテストランナーが勝手に呼び出す雰囲気

 | 

presented by cafelier/k.inaba under CC0