https://github.com/not522/generator
PyYAMLを入れないと動かないと思います。
ライセンスはCC0です。
pull request募集中です。
フォーマット書いたら自動で入力を生成できないかな。
→YAMLで書いてPythonで生成すればrimeにもそのまま使えるし良さそう。
単純な入力のみ対応。
構文解析とかは対応しない。
YAMLを書いて「python generator.py ***.yaml」を叩くだけ。
repeat: 3 filename: test.in format: type: integer range: (0,10) repeat: 10 separator: space delimiter: newline
これを変換すると次のように3つのファイルができます。
#test0.in 7 6 3 2 4 3 7 2 4 5 #test1.in 8 4 2 6 5 2 8 8 7 8 #test2.in 2 6 8 6 4 0 3 5 8 8
最初のrepeat: 3はファイルを3つ出力することを指定しています。
filename: test.inと指定すると入力ファイル名がtest0.in,test1.in,...となります。
format:には入力の形式を記述します。
type:には型を指定します。integerは整数を表します。
range: (0,10)は[0,10)のランダムな数値であることを表します。
repeat: 10は10個数字を出力することを表します
separator:で区切り文字を指定します。
delimiter:は10個出力したあとの区切りを指定します。
repeat: 4 filename: test.in format: - repeat: 10 type: - type: integer range: (2,101) name: h delimiter: space - type: integer range: (1,h-1) delimiter: newline - type: enum value: - '0 0' delimiter: newline
formatの中を配列にすることもできます。
また、typeを入れ子にすることもできます。
整数にnameをつけて他の数値の範囲に使ったり、repeatに指定することができます。
rangeやrepeatには数式を書くこともできます(+-のみ・括弧非対応)。
ドキュメントをちゃんと書く。
いろいろ対応する。
とりあえずuniqueは対応しないとなぁ。
下の形式で対応しました。
repeat: 3 filename: test.in format: type: integer range: (0,10) repeat: 10 separator: space delimiter: newline option: - unique
ソートできるようにしました。
- repeat: 3 filename: asc.in format: type: integer range: (0,10) repeat: 10 separator: space delimiter: newline option: - asc - repeat: 3 filename: desc.in format: type: integer range: (0,10) repeat: 10 separator: space delimiter: newline option: - desc
ファイル名がtest0.in,...,test99.inみたいになるのでtest00.in,...,test99.inにする。
サンプルを作る。
うまく動かなかったらごめんね