Ruby テスト改善運動進捗 (2)

最近さぼり気味ですが、hash.c (Env 関連含む) 、time.c 、proc.c 、re.c を書いて、現在 80.42% です。目標には到達。ただ、テストが書きにくい M17N 関係のソース (enc/ ディレクトリ以下) を計算に入れてなくて、これらも入れると 78.98% です。

鬼車 (reg*.c) のテストもなかなか難しいですね。Ruby では使われない機能 (Perl 用の \Q \E とか) があったり、コメントが少なくて読みにくかったり、僕が正規表現を知らなすぎたり。

91.79% (1062 of 1157) array.c
92.98% (1113 of 1197) bignum.c
0.00% (0 of 135) blockinlining.c
88.51% (339 of 383) class.c
82.46% (47 of 57) compar.c
84.88% (1903 of 2242) compile.c
96.17% (251 of 261) cont.c
0.00% (0 of 26) debug.c
79.77% (548 of 687) dir.c
69.88% (58 of 83) dln.c
100.00% (2 of 2) dmyext.c
81.39% (433 of 532) encoding.c
99.82% (552 of 553) enum.c
98.87% (175 of 177) enumerator.c
79.68% (443 of 556) error.c
81.34% (837 of 1029) eval.c
67.97% (104 of 153) eval_error.c
70.40% (88 of 125) eval_jump.c
82.95% (219 of 264) eval_method.c
64.44% (29 of 45) eval_safe.c
87.98% (1061 of 1206) file.c
80.15% (634 of 791) gc.c
98.53% (936 of 950) hash.c
100.00% (39 of 39) id.c
100.00% (43 of 43) inits.c
66.36% (1653 of 2491) io.c
41.20% (241 of 585) iseq.c
79.57% (257 of 323) load.c
100.00% (6 of 6) main.c
87.42% (681 of 779) marshal.c
98.69% (151 of 153) math.c
100.00% (3 of 3) miniprelude.c
96.20% (961 of 999) numeric.c
82.98% (580 of 699) object.c
98.87% (872 of 882) pack.c
74.90% (191 of 255) parse.c
96.00% (24 of 25) prec.c
100.00% (4 of 4) prelude.c
95.32% (509 of 534) proc.c
51.15% (444 of 868) process.c
88.89% (160 of 180) random.c
99.13% (340 of 343) range.c
96.30% (1275 of 1324) re.c
80.87% (1881 of 2326) regcomp.c
43.52% (131 of 301) regenc.c
44.10% (71 of 161) regerror.c
66.08% (869 of 1315) regexec.c
76.02% (1940 of 2552) regparse.c
0.00% (0 of 44) regsyntax.c
59.16% (368 of 622) ruby.c
70.19% (226 of 322) signal.c
97.30% (432 of 444) sprintf.c
79.70% (267 of 335) st.c
90.90% (2527 of 2780) string.c
94.92% (299 of 315) struct.c
81.58% (837 of 1026) thread.c
79.65% (137 of 172) thread_pthread.c
75.72% (602 of 795) time.c
89.66% (208 of 232) transcode.c
56.37% (677 of 1201) util.c
76.62% (652 of 851) variable.c
56.25% (9 of 16) version.c
82.58% (659 of 798) vm.c
0.00% (0 of 193) vm_dump.c
100.00% (8 of 8) vm_evalbody.c
90.69% (565 of 623) vm_insnhelper.c
3.23% (1 of 31) enc/big5.c
3.23% (1 of 31) enc/cp949.c
59.34% (54 of 91) enc/euc_jp.c
3.57% (1 of 28) enc/euc_kr.c
64.71% (22 of 34) enc/euc_tw.c
0.62% (1 of 160) enc/gb18030.c
100.00% (3 of 3) enc/gb2312.c
45.16% (14 of 31) enc/gbk.c
1.27% (1 of 79) enc/iso_8859_1.c
5.26% (1 of 19) enc/iso_8859_10.c
20.00% (1 of 5) enc/iso_8859_11.c
5.26% (1 of 19) enc/iso_8859_13.c
5.26% (1 of 19) enc/iso_8859_14.c
5.26% (1 of 19) enc/iso_8859_15.c
5.26% (1 of 19) enc/iso_8859_16.c
5.26% (1 of 19) enc/iso_8859_2.c
5.26% (1 of 19) enc/iso_8859_3.c
5.26% (1 of 19) enc/iso_8859_4.c
7.14% (1 of 14) enc/iso_8859_5.c
20.00% (1 of 5) enc/iso_8859_6.c
7.14% (1 of 14) enc/iso_8859_7.c
20.00% (1 of 5) enc/iso_8859_8.c
5.26% (1 of 19) enc/iso_8859_9.c
7.14% (1 of 14) enc/koi8_r.c
7.14% (1 of 14) enc/koi8_u.c
54.44% (49 of 90) enc/shift_jis.c
65.00% (39 of 60) enc/utf_16be.c
24.14% (14 of 58) enc/utf_16le.c
2.86% (1 of 35) enc/utf_32be.c
2.86% (1 of 35) enc/utf_32le.c
7.14% (1 of 14) enc/windows_1251.c
55.56% (60 of 108) enc/trans/japanese.c
100.00% (6 of 6) enc/trans/korean.c
100.00% (34 of 34) enc/trans/single_byte.c
96.80% (121 of 125) enc/trans/utf_16_32.c
78.98% (33073 of 41873) total