テストステ論

高テス協会会長が, テストステロンに関する情報をお届けします.

(rust report) coreutilsのtsortを実装します

Rustは引退したと言いましたが, もう少しだけやろうと思います.

coreutilsにはtsort(トポロジカルソート)があります. https://www.gnu.org/software/coreutils/manual/html_node/tsort-invocation.html

エッジ情報を与えてあげると, 出力をするというものです. ちなみにこのフォーマットは, 私の実装した平安京ビューの入力フォーマットにも似てます. tsortのものに変更しようかしら?そしてcoreutils平安京ビューを提案しましょうか?*1

https://github.com/akiradeveloper/HeiankyoView

仕事で少し触れることがあったので, coreutilsでまた未実装ならやろうかなと思って調べたら, 最初に手を挙げたやつがgive upして放り投げたというステイタスでした. ちょうどいいので手を挙げました. https://github.com/uutils/coreutils/pull/284

彼の名誉のために言っておくと, Rustは学ぶのが辛い言語なので, 他のコードを見てちゃちゃっと作れる上っ面だけを作ってgive upすることは恥じることではありません. それに, 途中のものでも実装を公開して, 結果として私が引き継いでるのだから, 努力はある程度報われてる.

引き継ぎって大事だと思います. 仕事をして, give upなりretireするならば, 仕事内容は引き継ぐ. OSSならば, こういう感じにコードを公開してあとは頼んだ!とダイイングメッセージを残せば誰かが勝手に引き継いでくれることもありますが, ふつうの仕事ってやつはそうも行かないことが多いです. つらぽよですなぁ

やり方としては, splitの時と同様に, 別プロジェクトを作って自動テストを書こうと思います. https://github.com/akiradeveloper/rust-tsort

*1:平安京ビューは, 私の学部時代の研究テーマです. この実装はオリジナルのもののアルゴリズム改良版. 木構造のエッジ情報を与えると, 各ノードのポジションと大きさを出力します. 木構造を可視化するために利用することが出来ます