Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- green="\e[0;32m"
- blue="\e[0;34m"
- purple="\e[1;35m"
- red="\e[0;31m"
- cian="\e[0;36m"
- endcolor="\e[0m"
- if [[ ! -f $2 ]];
- then
- echo -e "File not found";
- exit
- fi
- if [[ $2 == *.cpp ]];
- then
- name=$(basename -s .cpp "$2")
- fi
- if [[ $2 == *.py ]];
- then
- name=$(basename -s .py "$2")
- fi
- dir="${PWD}/.$name"
- if [ ! -d "$dir" ]; then
- mkdir "$dir"
- fi
- num_arq=$(ls -lR "$dir" | grep '^-' | wc -l)
- next=$((num_arq/2))
- if [[ $1 -eq 1 ]];
- then
- echo "Put in:"
- read -d '$' input
- echo -e '\n'
- echo "Put out:"
- read -d '$' output
- echo -e "$input" >> "$dir/$next.in"
- echo -e "$output" >> "$dir/$next.out"
- echo -e '\n'
- fi
- if [[ $1 -eq 2 ]];
- then
- if [[ $next -eq 0 ]];
- then
- echo -e "Test set is empty"
- exit
- fi
- if [[ $2 == *.cpp ]];
- then
- g++ -std=c++17 $2 -o exe 2> erro
- if [ ! -s erro ];
- then
- echo -e "${green}Compiled${endcolor}"
- for (( i=0; i<$next; i++ ));
- do
- begin=$(date +%s%N)
- ./exe < $dir/$i.in > saida
- end=$(date +%s%N)
- dur=$((($end-$begin)/1000000))
- diff -Z -q $dir/$i.out saida > dff
- echo -e "----- Test $i -----"
- if [ ! -s dff ];
- then
- if [[ $dur -le 1000 ]];
- then
- echo -e "${green}AC${endcolor}"
- else
- echo -e "${blue}TLE${endcolor}"
- fi
- else
- echo -e "${red}WA${endcolor}"
- fi
- echo -e "${purple}$dur ms${endcolor}"
- done
- rm exe
- rm erro
- rm dff
- rm saida
- else
- echo -e "${cian}Not compiled${endcolor}"
- cat erro
- rm erro
- fi
- fi
- if [[ $2 == *.py ]];
- then
- for (( i=0; i<$next; i++));
- do
- begin=$(date +%s%N)
- python3 $2 < $dir/$i.in > saida
- end=$(date +%s%N)
- dur=$((($end-$begin)/1000000))
- diff -Z -q $dir/$i.out saida > dff
- echo -e "----- Test $i -----"
- if [ ! -s dff ];
- then
- if [[ $dur -le 1000 ]];
- then
- echo -e "${green}AC${endcolor}"
- else
- echo -e "${blue}TLE${endcolor}"
- fi
- else
- echo -e "${red}WA${endcolor}"
- fi
- echo -e "${purple}$dur ms${endcolor}"
- rm saida
- rm dff
- done
- fi
- fi
- if [[ $1 -eq 3 ]];
- then
- rm -r "$dir/"
- fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement