Advertisement
danielvitor23

testsT

Oct 11th, 2020 (edited)
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 2.15 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. green="\e[0;32m"
  4. blue="\e[0;34m"
  5. purple="\e[1;35m"
  6. red="\e[0;31m"
  7. cian="\e[0;36m"
  8. endcolor="\e[0m"
  9.  
  10. if [[ ! -f $2 ]];
  11. then
  12.     echo -e "File not found";
  13.     exit
  14. fi
  15.  
  16. if [[ $2 == *.cpp ]];
  17. then
  18.     name=$(basename -s .cpp "$2")
  19. fi
  20.  
  21. if [[ $2 == *.py  ]];
  22. then
  23.     name=$(basename -s .py "$2")
  24. fi
  25.  
  26. dir="${PWD}/.$name"
  27.  
  28. if [ ! -d "$dir" ]; then
  29.     mkdir "$dir"
  30. fi
  31.  
  32. num_arq=$(ls -lR "$dir" | grep '^-' | wc -l)
  33. next=$((num_arq/2))
  34.  
  35. if [[ $1 -eq 1 ]];
  36. then
  37.     echo "Put in:"
  38.     read -d '$' input
  39.     echo -e '\n'
  40.  
  41.     echo "Put out:"
  42.     read -d '$' output
  43.  
  44.     echo -e "$input" >> "$dir/$next.in"
  45.     echo -e "$output" >> "$dir/$next.out"
  46.     echo -e '\n'
  47. fi
  48.  
  49. if [[ $1 -eq 2 ]];
  50. then
  51.     if [[ $next -eq 0 ]];
  52.     then
  53.         echo -e "Test set is empty"
  54.         exit
  55.     fi
  56.  
  57.     if [[ $2 == *.cpp ]];
  58.     then
  59.         g++ -std=c++17 $2 -o exe 2> erro
  60.         if [ ! -s erro ];
  61.         then
  62.             echo -e "${green}Compiled${endcolor}"
  63.             for (( i=0; i<$next; i++ ));
  64.             do
  65.                 begin=$(date +%s%N)
  66.  
  67.                 ./exe < $dir/$i.in > saida
  68.  
  69.                 end=$(date +%s%N)
  70.  
  71.                 dur=$((($end-$begin)/1000000))
  72.  
  73.                 diff -Z -q $dir/$i.out saida > dff
  74.  
  75.                 echo -e "----- Test $i -----"
  76.                 if [ ! -s dff ];
  77.                 then
  78.                     if [[ $dur -le 1000 ]];
  79.                     then
  80.                         echo -e "${green}AC${endcolor}"
  81.                     else
  82.                         echo -e "${blue}TLE${endcolor}"
  83.                     fi
  84.                 else
  85.                     echo -e "${red}WA${endcolor}"
  86.                 fi
  87.                 echo -e "${purple}$dur ms${endcolor}"
  88.             done
  89.             rm exe
  90.             rm erro
  91.             rm dff
  92.             rm saida
  93.         else
  94.             echo -e "${cian}Not compiled${endcolor}"
  95.             cat erro
  96.             rm erro
  97.         fi
  98.     fi
  99.  
  100.     if [[ $2 == *.py ]];
  101.     then
  102.         for (( i=0; i<$next; i++));
  103.         do
  104.             begin=$(date +%s%N)
  105.  
  106.             python3 $2 < $dir/$i.in > saida
  107.  
  108.             end=$(date +%s%N)
  109.  
  110.             dur=$((($end-$begin)/1000000))
  111.  
  112.             diff -Z -q $dir/$i.out saida > dff
  113.  
  114.             echo -e "----- Test $i -----"
  115.             if [ ! -s dff ];
  116.             then
  117.                 if [[ $dur -le 1000 ]];
  118.                 then
  119.                     echo -e "${green}AC${endcolor}"
  120.                 else
  121.                     echo -e "${blue}TLE${endcolor}"
  122.                 fi
  123.        
  124.             else
  125.                 echo -e "${red}WA${endcolor}"
  126.             fi
  127.            
  128.             echo -e "${purple}$dur ms${endcolor}"
  129.  
  130.             rm saida
  131.             rm dff
  132.         done   
  133.     fi
  134. fi
  135.  
  136. if [[ $1 -eq 3 ]];
  137. then
  138.     rm -r "$dir/"
  139. fi
  140.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement