Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CSAプロトコルとUSIプロトコルの統合テストを半自動化する。 #677

Open
sunfish-shogi opened this issue Nov 24, 2023 · 3 comments
Assignees
Labels
enhancement New feature or request

Comments

@sunfish-shogi
Copy link
Owner

sunfish-shogi commented Nov 24, 2023

概要

事前に決めたコマンドを送信する USI エンジンと CSA サーバーを用意して、リアルなサーバーやエンジンに依存せずに WCSC や電竜戦、Floodgate を想定した動作テストを可能にする。

詳細

  • 開発環境
    • 言語は TypeScript でなくてもよい。
    • electron-shogi とは別リポジトリで開発する。
  • 機能
    • CSA サーバーと USI エンジンが常にペアで動く。
    • 事前に決めておいたコマンドをやりとりするため、実際の対局相手は存在しない。
    • 想定外のコマンドを受信したらエラーレポートを出力する。
    • USI エンジンが bestmove を送信してから CSA サーバーに着手が来るまでのレイテンシーを測定する。
    • 全ての送受信ログを出力する。
    • テストシナリオを YAML で管理する。
    • ログインパスワードでテストシナリオを選択できる。
    • electron-shogi 以外の GUI でも使える。
@sunfish-shogi sunfish-shogi self-assigned this Nov 24, 2023
@sunfish-shogi sunfish-shogi added the enhancement New feature or request label Nov 24, 2023
@sunfish-shogi
Copy link
Owner Author

シナリオの記述方法のイメージ

games:
  - gameId: test-game-01
    turn: sente
    totalTime: 300
    byoyomi: 0
    increment: 10
    moves:
      - move: +7776FU,T1
        delay: 0
      - move: -3334FU,T1
        delay: 0
      - move: +2726FU,T1
        delay: 0
      - move %TORYO
        delay: 0

@sunfish-shogi
Copy link
Owner Author

Node.js で作る場合に 1 ミリ秒未満の時間計測をどうすればよいのかと思ったが、 hrtime でできるらしい。

@sunfish-shogi
Copy link
Owner Author

sunfish-shogi commented Dec 19, 2023

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: No status
Development

No branches or pull requests

1 participant