Codeへの愛とCuriosity

CodeIQ への出題・解説解題・その周辺について、思いつくままに。

テストデータのこと

オフラインリアルタイムどう書く( http://atnd.org/events/43825 )のテストデータは、表形式のほかに、C / C++ / Javaソースコードの形式で提供している。
でも、今回のCodeIQでの出題ではそうせず、表形式だけにした。

そもそも。

どう書くでソースコード形式のテストデータを提供しているのは、JavaC言語で参戦する人への配慮というところからスタートしている。
rubyperl の人たちは、表全体を選択→copy→エディタにpaste で作った長い文字列を自力でパースしてテストコードを作ればいい。あるいは、HTML で提供されているんだから、HTML のソースから必要な部分を抜き出してそれをパースしてもいい。いずれにせよ、10分はかからないと思う。
一方。Javaの人もそうなんだけど、それ以上にC言語文化圏の人は文字列の加工がすごく苦手だ(という先入観を私は持っている)。ぼんやりとした文字列でテストデータが与えられている状況からテストが出来るところまで持っていくのに10分ではたぶん厳しい。制限時間1時間というなかで貴重な10分、20分をテストデータの整形に使ってしまうと、ただでさえ不利なC言語が絶望的に不利な状況になってしまいかねない。言語によって有利不利の差があまりない方がゲームとして(どう書くは、ゲームです)楽しいと思うので、JavaC言語の人を支援するためにソースコード形式でのテストデータを提供することにした。

で、CodeIQ。
どうするのがよいか考えたんだけど、表形式だけにした。理由は、制限時間がないから。
JavaC言語の人はちょっとつらく感じるかもしれないんだけど、制限時間がないので、1個1個 copy & paste しても十分現実的だと思う。HTML形式も提供されているのでそこからエディタの置換とかでテストコードに持って行ってもいい。
もちろん ruby や groovy の人はぼんやりとしたテキストから正規表現でも何でも使ってテストデータに仕立て上げればいい。それが一番楽だからね。

というわけで、CodeIQ では、たぶん次回もテストデータを提供するけど表形式のみにすると思う。
どう書くの方は、たぶんこれからずっと、ソースコード形式も提供すると思う。

とはいえ、こう決めたってほどでもないので、変わるかもしれない。