テストデータのこと
オフラインリアルタイムどう書く( http://atnd.org/events/43825 )のテストデータは、表形式のほかに、C / C++ / Java のソースコードの形式で提供している。
でも、今回のCodeIQでの出題ではそうせず、表形式だけにした。
そもそも。
どう書くでソースコード形式のテストデータを提供しているのは、Java や C言語で参戦する人への配慮というところからスタートしている。
ruby や perl の人たちは、表全体を選択→copy→エディタにpaste で作った長い文字列を自力でパースしてテストコードを作ればいい。あるいは、HTML で提供されているんだから、HTML のソースから必要な部分を抜き出してそれをパースしてもいい。いずれにせよ、10分はかからないと思う。
一方。Javaの人もそうなんだけど、それ以上にC言語文化圏の人は文字列の加工がすごく苦手だ(という先入観を私は持っている)。ぼんやりとした文字列でテストデータが与えられている状況からテストが出来るところまで持っていくのに10分ではたぶん厳しい。制限時間1時間というなかで貴重な10分、20分をテストデータの整形に使ってしまうと、ただでさえ不利なC言語が絶望的に不利な状況になってしまいかねない。言語によって有利不利の差があまりない方がゲームとして(どう書くは、ゲームです)楽しいと思うので、JavaやC言語の人を支援するためにソースコード形式でのテストデータを提供することにした。
で、CodeIQ。
どうするのがよいか考えたんだけど、表形式だけにした。理由は、制限時間がないから。
Java や C言語の人はちょっとつらく感じるかもしれないんだけど、制限時間がないので、1個1個 copy & paste しても十分現実的だと思う。HTML形式も提供されているのでそこからエディタの置換とかでテストコードに持って行ってもいい。
もちろん ruby や groovy の人はぼんやりとしたテキストから正規表現でも何でも使ってテストデータに仕立て上げればいい。それが一番楽だからね。
というわけで、CodeIQ では、たぶん次回もテストデータを提供するけど表形式のみにすると思う。
どう書くの方は、たぶんこれからずっと、ソースコード形式も提供すると思う。
とはいえ、こう決めたってほどでもないので、変わるかもしれない。