-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtest_convert_pig_latin
executable file
·98 lines (85 loc) · 5.88 KB
/
test_convert_pig_latin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/bin/bash
GREEN='\033[0;32m'
RED='\033[0;31m'
MAGENTA='\033[0;95m'
NC='\033[0m'
if [ $# -eq 0 ] || [ $# -gt 3 ]; then
echo "Your command line contains 0 arguments. The first argument should be the path to your C file."
echo "If you want to test your MIPS code too, please provide your ASM file as the secondary argument, and the path to MARS as your third argument."
exit 1
fi
if [ $# -eq 2 ]; then
echo "If you want to test your MIPS code, please provide your ASM file as the secondary argument, and the path to MARS as your third argument."
exit 1
fi
PATH_CONVERT_PIG_LATIN_C="$1"
PATH_CONVERT_PIG_LATIN_S="$2"
PATH_MARS="$3"
if ! [ -f "$PATH_CONVERT_PIG_LATIN_C" ]; then
echo "Could not find C file: $PATH_CONVERT_PIG_LATIN_C"
exit 1
fi
gcc $PATH_CONVERT_PIG_LATIN_C -o convert_pig_latin
if [ "$?" -ne 0 ]; then
exit 1
fi
USE_MARS=0
if [ -f "$PATH_MARS" ] && [ -f "$PATH_CONVERT_PIG_LATIN_S" ]; then
USE_MARS=1;
else
echo -e "${RED}Could not find MARS or the piglatin assembler source. Running without testing MIPS code.${NC}\n"
fi
ALL_SUCCESS=1
function check {
echo -e "Testing Input: $1"
local s1=$(echo -e $(echo -e "$1" | ./convert_pig_latin))
if [ "$s1" == "$2" ]
then
echo -e "\t${GREEN}Success${NC}: C program passed."
else
ALL_SUCCESS=0
echo -e "\t${RED}FAIL${NC}: C program failed."
echo -e "${RED}$(diff <(echo -e $s1) <(echo -e $2))${NC}" | sed -e 's/^/ /'
fi
if [ $USE_MARS -eq 1 ]; then
local s2=$(echo -e $(echo -e "$1" | DISPLAY="" java -Dapple.awt.UIElement=true -jar $PATH_MARS nc sm $PATH_CONVERT_PIG_LATIN_S))
if [ "$s2" == "$2" ]
then
echo -e "\t${GREEN}Success${NC}: MIPS program passed."
else
ALL_SUCCESS=0
echo -e "\t${RED}FAIL${NC}: MIPS program failed."
echo -e "${RED}$(diff <(echo -e $s2) <(echo -e $2))${NC}" | sed -e 's/^/ /'
fi
fi
echo ""
}
check "Testing test test!" "Enter input: output: Estingtay esttay esttay!"
check "...!!!..." "Enter input: output: ...!!!..."
check ".. HELLO .. allo .. a .." "Enter input: output: .. ELLOHAY .. alloay .. aay .."
check "A..capital..Letter" "Enter input: output: AAY..apitalcay..Etterlay"
check "THESE-WORDS Have-hyphens..and..-Punctu-ation" "Enter input: output: ESE-WORDSTHAY Ave-hyphenshay..anday..-Unctu-ationpay"
check "Hello-" "Enter input: output: Ellohay-"
check "COMPOUND-WORDS" "Enter input: output: OMPOUND-WORDSCAY"
check "simple" "Enter input: output: implesay"
check "" "Enter input: output:"
check "ths hs n vwls" "Enter input: output: thsay hsay nay vwlsay"
check "A" "Enter input: output: AAY"
check "a" "Enter input: output: aay"
check "Aye-aye captain, Say SIMPLE thanks! ty." "Enter input: output: Aye-ayeay aptaincay, Aysay IMPLESAY anksthay! tyay."
check "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" "Enter input: output: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaay aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaay"
check "hi mom this is a lot o wordsss lawwlll yu see what im talkin abuuut lolzter Yuuuu-puuu kikukuk eeeoak nmnjabj oeokeleleoelk okwpoaw kwpoaw dud WOOO SUPERMAN FLYING BROOMS A,nd some. pi;nctuattttt Like mieal Mooore Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis naque penatibus THISWORDISFIFTYCHARSLONGIFYOUDOITONCELIKEICECUBEYH et magnis dis parturient montes, nascetur ridiculus mus. Donec thiswordisfiftycharslongifyoudoitoncelikeicecubeyh arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede mollis pretium. Integer tincidunt. Cras dapibus. Vivamus elementum semper nisi. Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim. orem ante, dapibus in, viverra quis, feugiat a, tellus. Phasellus viverra nulla ut metus varius laoreet. Quisque rutrum. Aenean imperdiet. Etiam ultricies Thiswordisfiftycharslongifyoudoitoncelikeicecubeyh h" "Enter input: output: ihay ommay isthay isay aay otlay oay ordsssway awwllllay uyay eesay atwhay imay alkintay abuuutay olzterlay Uuuu-puuuyay ikukukkay eeeoakay abjnmnjay oeokeleleoelkay okwpoaway oawkwpay udday OOOWAY UPERMANSAY INGFLYAY OOMSBRAY AAY,nday omesay. ipay;uatttttnctay Ikelay iealmay Oooremay Oremlay ipsumay olorday itsay ametay, onsectetuercay adipiscingay elitay. Aeneanay ommodocay igulalay egetay olorday. Aeneanay assamay. Umcay ociissay aquenay enatibuspay ISWORDISFIFTYCHARSLONGIFYOUDOITONCELIKEICECUBEYHTHAY etay agnismay isday arturientpay ontesmay, asceturnay idiculusray usmay. Onecday iswordisfiftycharslongifyoudoitoncelikeicecubeyhthay arcuay. Inay enimay ustojay, oncusrhay utay, imperdietay aay, enenatisvay itaevay, ustojay. Ullamnay ictumday elisfay euay edepay ollismay etiumpray. Integeray incidunttay. Ascray apibusday. Ivamusvay elementumay empersay isinay. Aeneanay ulputatevay eleifenday ellustay. Aeneanay eolay igulalay, orttitorpay euay, onsequatcay itaevay, eleifenday acay, enimay. oremay anteay, apibusday inay, iverravay uisqay, eugiatfay aay, ellustay. Asellusphay iverravay ullanay utay etusmay ariusvay aoreetlay. Uisqueqay utrumray. Aeneanay imperdietay. Etiamay ultriciesay Iswordisfiftycharslongifyoudoitoncelikeicecubeyhthay hay"
check "Jaguar F-TYPE, F-type, or f-type?" "Enter input: output: Aguarjay EF-TYPAY, Ef-typay, oray ef-typay?"
rm convert_pig_latin
echo ""
echo -e "${MAGENTA}==============================================${NC}"
if [ $USE_MARS -eq 0 ]; then
echo -e "${MAGENTA}Note${NC}: ${RED}You are only testing your C code!${NC}\n"
fi
if [ $ALL_SUCCESS -eq 1 ]; then
echo -e "${MAGENTA}Final result${NC}: ${GREEN}All tests ran successfully.${NC}"
else
echo -e "${MAGENTA}Final result${NC}: Some tests ${RED}FAILED.${NC}"
fi
echo -e "${MAGENTA}==============================================${NC}"
echo ""