tester.sh
 1  #!/bin/bash
 2  
 3  if [ "$1" = "jot" ]; then
 4  	generate="1"
 5  elif [ "$1" = "seq" ]; then
 6  	generate="2"
 7  else
 8  	echo "Usage: ./tester.sh <jot | seq>" >&2
 9  	exit 1
10  fi
11  
12  if ! command -v ./PmergeMe &> /dev/null
13  then
14  	echo "error: Program(PmergeMe) not exist" >&2
15  	exit 1
16  fi
17  
18  RED=$(tput setaf 1)
19  GREEN=$(tput setaf 2)
20  RESET=$(tput sgr0)
21  
22  for ((a = 1, c = 1; a <= 3002;)); do
23  	if [ "$c" -gt 100000 ]; then
24  		c=100000
25  	fi
26  
27  	if [ "$a" -gt 3000 ]; then
28  		a=3000
29  	fi
30  
31  	if [ "$generate" -eq 1 ]; then
32  		args=$(jot -r $a 1 $c | tr '\n' ' ')
33  	elif [ "$generate" -eq 2 ]; then
34  		args=$(seq 1 $a | sort -R)
35  	fi
36  
37  	result=$(./PmergeMe $args 1>/dev/null)
38  
39  	if [ "$?" -eq 1 ]; then
40  		echo "$args"
41  		echo "${RED}KO${RESET}"
42  		exit 1
43  	else
44  		if [ "$generate" -eq 1 ]; then
45  			echo "[jot -r $a 1 $c]: ${GREEN}OK${RESET}"
46  		elif [ "$generate" -eq 2 ]; then
47  			echo "[seq 1 $a | sort -R]: ${GREEN}OK${RESET}"
48  		fi
49  	fi
50  
51  	if [ "$a" -eq 3000 ]; then
52  		./PmergeMe $args
53  		break
54  	fi
55  
56  	if [ "$a" -le 999 ]; then
57  		((a++))
58  		if [ "$generate" -eq 1 ]; then
59  			((c+=1))
60  		fi
61  	else
62  		((a+=11))
63  		if [ "$generate" -eq 1 ]; then
64  			((c+=a))
65  		fi
66  	fi
67  done
68  
69  echo "${GREEN}Test done!${RESET}"