1. stress Linux:
  2. if [ "$3" == "" ] || [ "$4" != "" ] ; then
  3. echo "Usage: <okSol> <mySol> <gen>"
  4. exit 1
  5. fi
  6. if [ -e $1 ] && [ -e $2 ] && [ -e $3 ] ; then
  7. for ((i = 1; i < 1000000000; i++))
  8. do
  9. echo -n -e "\rtest $i \x1b[32mOK\x1b[0m"
  10. ./$3 $i >testIn
  11. ./$2 <testIn >myAns
  12. ./$1 <testIn >okAns
  13. diff myAns okAns >/dev/null || break
  14. done
  15. echo -n -e "\rtest $i \x1b[31mWA\x1b[0m"
  16. echo ""
  17. cat testIn
  18. echo ""
  19. echo "my answer:"
  20. cat myAns
  21. echo ""
  22. echo "right answer:"
  23. cat okAns
  24. echo ""
  25. else
  26. echo "some files don't exist"
  27. fi
  28.  
  29. stress Windows:
  30. @echo off
  31. for /L %%i in (1, 1, 100000000000000) do (
  32. %3.exe %%i >input.txt
  33. %2.exe <input.txt >outputOk.txt
  34. %1.exe <input.txt >output.txt
  35. FC outputOk.txt output.txt >null
  36. echo %%i
  37. if errorlevel 1 (
  38. echo wa
  39. exit
  40. ) else (
  41. echo ok
  42. )
  43. )
  44.  
  45. compile Linux:
  46. name=${1:0:-2}
  47. run=$2
  48. if [ "$2" == "" ] ; then
  49. if [ "$name.c" == "$1" ] ; then
  50. run=$name
  51. else
  52. run=${1:0:-4}
  53. fi
  54. fi
  55. g++ $1 -o $run -std=c++17 -Wall -pedantic -Wpedantic -Wextra -fsanitize=address,undefined