実装をチェックするためのプログラム

概要

実装がバグってないかをチェックするためのプログラム

実装

シェルスクリプトとして動くプログラム。出力の一致によって確認する。

以下を用意して利用する。

  • ケース生成プログラム(gen)

  • 確認対象プログラム と 正しい解を出力するプログラム (prog1, prog2)

# a program for generating testcase
gen="python3 gen.py"
# programs for check (execute these command with generated testcase)
prog1="python3 a.py"
prog2="./a.out"

while :; do
  $gen > input.txt
  out1=`$prog1 < input.txt`
  out2=`$prog2 < input.txt`

  if [ "$out1" != "$out2" ]; then
    # failed
    echo "===== input ====="
    cat input.txt
    echo "===== output1 '$prog1' ====="
    echo $out1
    echo "===== output2 '$prog2' ====="
    echo $out2
    break
  fi
done