Giter Club home page Giter Club logo

atcoder-tools's Issues

testerが出力判定で改行コードの差を許容しない

自分でテストケースを追加したとき、out_(問題id)_(サンプルid).txtの改行コードが、プログラムが出力する改行コードと異なるとWAを出力する。

$ atcoder-tester
# in_D_1.txt ... PASSED
...
# in_D_s2.txt ... PASSED
# in_D_s3.txt ... WA
[Input]
...
[Expected]
2
[Received]
2

Some cases FAILED (passed 5 of 6)
$ cat -e out_D_s3.txt
2^M$
$ ./a < in_D_s3.txt | cat -e
2$

また,ファイルの最後の改行のある無しの違いでもWAが出るため,改善したい.

Rustの出力コード改善

  • せっかく型が厳密なので、i64, u64, usizeを使い分けたいです。(そしてas usize地獄を消したい。)
  • 不要なmutの削除(ベクトルのみ必要なはず)。

特殊ジャッジ対策

誤差ジャッジや特殊ジャッジの時にsampleにACできないですが、sampleを通さなくてもsubmitできる機能があると嬉しいかも。(あと、sampleが0個の時はsubmitしないのは仕様ですか?)

ディレクトリファイルが実行可能プログラムとみなされる

tester.pyを実行する際に、カレントディレクトリにサブディレクトリが存在すると、サブディレクトリが実行可能プログラムとみなされ警告が出力される。ディレクトリは候補から除外するべき。

$ atcoder-tester
WARNING: There're multiple executable files. This time, './a.exe' is selected. candidates = ['./a.exe', './in', './out']
# in_C_1.txt ... PASSED
# in_C_2.txt ... PASSED
# in_C_3.txt ... PASSED
# in_C_4.txt ... PASSED
Passed all testcases!!!
$ ls -l
合計 20648
-rwxr-xr-x 1 ユーザ名 なし   158346 11月 19 00:22 a.exe
(略)
drwxr-xr-x 1 ユーザ名 なし        0 11月 15 00:50 in
(略)
drwxr-xr-x 1 ユーザ名 なし        0 11月 15 00:50 out
(以下略)

readmeのDemoが消えてる

This recording has been archived になってます。
対応としては軽めのgifにしてGitHubのIssuesやWikiにuploadするのがおすすめです。

生成物の可視化ツールを作る

ドキュメント・自動生成されたコード、どの問題を確認できるWebapp(もしくはページ)を作る
以下があると嬉しいですね

  • ユーザーが正誤を指摘できる
  • 生成精度とかが見れる

コード自動生成機能だけ利用できるコマンドがほしい

現状はコード自動生成機能は atcoder-tools gen CONTEST_ID のサブコマンドを用いて間接的にしか利用できません。これは「単独の問題ごとの利用ができない」「ディレクトリ構造が固定される」などの不都合があります。なので、単体でこの機能を使えるサブコマンドがほしいです。

具体的なインターフェースの形としては atcoder-tools codegen [-l LANGUAGE] URL > PATHatcoder-tools codegen URL PATH (言語は PATH から判別) などが使いやすいかなと思います。
対象の指定方法は url であるべきのはずです。task_id だけの指定では contest_id の復元が不可能であり、contest_id と task_id をふたつ指定するのは url コピペするだけに比べて煩雑なためです。
出力先は特定のディレクトリ構造に依存するべきでないので (そういう趣旨でのコマンドの追加なので)、標準出力を使うか引数として受けとるべきです。

解析結果の一覧ページのAPI化とコード自動生成機能のuserscript化

https://kyuridenamida.github.io/atcoder-tools/#/quality/summary のページには全問題の解析結果が含まれていることに気付きました。これの内部に含まれているデータをもうすこし扱いやすい形式で (たとえば https://kyuridenamida.github.io/atcoder-tools/api.json のようなURLを叩くだけなど) で提供してほしいです。
用途は、userscriptからatcoder-toolsを使えるようにすることです。

入力だけでなく出力の自動生成もしたい

例えば以下のようなコードが生成できるようになってほしいです。
出力部分を書かなくていいのは単に楽ですし、これができれば自動でサンプルをテストする機能を生成コードの中に組み込めたりもしてうれしいです。

bool solve(int n) {
    ...
    return answer;
}

int main() {
    ...
    bool answer = solve(n);
    cout << (answer ? "Yes" : "No") << endl;
}

gen コマンドの --without-login をデフォルトにしたい

ログインしなくても見れるページしか触らない場合でもパスワードの入力が要求されてしまっています。必要もないのにパスワードを聞いてくるプログラムにパスワードを入力するのは勇気が必要であり、ユーザに優しくないです。なので --without-login はデフォルトにしたいです。

C++ のコード生成結果には scanf と std::cin が混ざっているのをやめたい

統一される (文字列の場合があるので std::cin になる) と嬉しくて、選択可能になるともっとうれしいです。速度の問題で cin.tie(0) をしたりしなかったりとか、出力結果を加工してさらに何かするときの都合です。

実装の選択肢は以下のふたつになると思います。template は言語ごとに独立なので定義される値を足しても困ることはなく、実装や利用の単純さから後者がよいはずです。

  1. code generator を追加する
  2. {{input_part}} だけでなくて {{input_part_cin}} {{input_par_scanf}} を用意する

変な文字

ものすごくどうでもいいんですが"PythonはすごいのでリストXに対してX[0::2]"の直後に変な文字が入っています。miとかで開くと可視化されます。
たしかMacで、日本語を入力→スペースキー→バックスペースとやるとこの文字が入った気がする。

コード生成にUDFが使えるようにする

ユーザーにテンプレートパラメータ生成のための関数(User-defined function)を定義させられるようにする。

(中間形式, 問題文内定数) → ディクショナリ

みたいなUDFを想定

Abolish "--replacement"

Replacementとtemplateを分ける理由がどれくらいあるかというかかなり不明なのでreplacementを無くす

Speed up prediction

今でも十分早いかもしれないが、TestFormatPrediction.test_overallを実行するのに手元で43秒かかるのでもう少し早くしたい。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.