| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- #! /bin/bash
- # ecs60 Program 1
- # This script compares the example output with the output from your program.
- # It does not grade your programs.
- echo "Running your programs (sortedverification.sh, consistentresultverification.sh, timealgorithms.sh) on examples.."
- echo "Building test environment.."
- chmod u+x *.sh
- rm -rf testerDirectory
- mkdir -p testerDirectory
- mkdir -p testerDirectory/diff
- cd testerDirectory
- cp /home/rsgysel/public/60-Program1-Examples/* . &> /dev/null
- echo "..."
- cp ../* . &> /dev/null
- echo "...."
- numExamples=100
- totalTestsPassed=0
- # Sorted Verification
- testsPassed=0
- program=SortedVerification
- echo "Checking sortedverification.sh.."
- echo ${program} > Results.txt
- for i in {1..100}; do
- testFile=Example${i}
- ./sortedverification.sh ${testFile}.json > ${testFile}-${program}Submission.json
- diff -w ${testFile}-${program}Submission.json ${testFile}-${program}Solution.json > ./diff/${testFile}-${program}Diff.txt
- diffFile=./diff/${testFile}-${program}Diff.txt
- if [ ! -s $diffFile ]; then
- echo ${testFile}.json: Pass >> Results.txt
- testsPassed=$((testsPassed+1))
- else
- echo ${testFile}.json: Fail. See $diffFile >> Results.txt
- fi
- done
- echo ./sortedverification.sh ${testsPassed} tests passed of $numExamples total tests
- echo
- echo >> Results.txt
- totalTestsPassed=$(($totalTestsPassed + $testsPassed))
- # Consistent Result Verificaiton
- testsPassed=0;
- program=ConsistentResultVerification
- echo "Checking ./consistentresultverification.sh.."
- echo ${program} >> Results.txt
- for i in {1..99}; do
- testFile1=Example${i}
- j=$((i+1))
- testFile2=Example${j}
- testFile=${testFile1}-${testFile2}
- ./consistentresultverification.sh ${testFile1}.json ${testFile2}.json > ${testFile}-${program}Submission.json
- diff -w ${testFile}-${program}Submission.json ${testFile}-${program}Solution.json > ./diff/${testFile}-${program}Diff.txt
- diffFile=./diff/${testFile}-${program}Diff.txt
- if [ ! -s $diffFile ]; then
- echo ${testFile1}.json ${testFile2}.json: Pass >> Results.txt
- testsPassed=$((testsPassed+1))
- else
- echo ${testFile1}.json ${testFile2}.json: Fail. See $diffFile >> Results.txt
- fi
- done
- echo ./consistentresultverification.sh ${testsPassed} tests passed of 99 total tests
- echo
- echo >> Results.txt
- totalTestsPassed=$(($totalTestsPassed + $testsPassed))
- # Time Algorithms
- testsPassed=0;
- program=TimedAlgorithms
- echo "Checking ./timealgorithms.sh.. (Timing columns are ignored during comparison and are 0's in the Solution files, your time values should not be 0)"
- echo ${program} >> Results.txt
- for i in {1..100}; do
- testFile=Example${i}
- ./timealgorithms.sh ${testFile}.json > ${testFile}-${program}Submission.csv
- # cut timing fields
- cut --complement -f 2,5,8 -d, ${testFile}-${program}Submission.csv > temp.csv
- mv temp.csv ${testFile}-${program}Submission.csv
- cut --complement -f 2,5,8 -d, ${testFile}-${program}Solution.csv > temp.csv
- mv temp.csv ${testFile}-${program}Solution.csv
- #head -n1 ${testFile}-${program}Submission.csv > temp.csv
- # pipe into wc so only #lines printed
- #k=$(cat ${testFile}-${program}Submission.csv | wc -l)
- #k=$((k-1))
- #tail -n$k ${testFile}-${program}Submission.csv | cut --complement -f 2,5,8 -d, >> temp.csv
- #mv temp.csv ${testFile}-${program}Submission.csv
- #head -n1 ${testFile}-${program}Solution.csv > temp.csv
- #k=$(cat ${testFile}-${program}Solution.csv | wc -l)
- #k=$((k-1))
- #tail -n$k ${testFile}-${program}Solution.csv | cut --complement -f 2,5,8 -d, >> temp.csv
- #mv temp.csv ${testFile}-${program}Solution.csv
- #diff -w ${testFile}-${program}Submission.csv ${testFile}-${program}Solution.csv > ./diff/${testFile}-${program}Diff.txt
- diffFile=./diff/${testFile}-${program}Diff.txt
- if [ ! -s $diffFile ]; then
- echo ${testFile}.json: Pass >> Results.txt
- testsPassed=$((testsPassed+1))
- else
- echo ${testFile}.json: Fail. See $diffFile >> Results.txt
- fi
- done
- echo ./timealgorithms.sh ${testsPassed} tests passed of $numExamples total tests
- echo
- totalTestsPassed=$(($totalTestsPassed + $testsPassed))
- # Cleanup
- cp Results.txt ../
- cp -r diff ../
- cd ..
- rm -rf testerDirectory
- echo "Testing finished, you passed $totalTestsPassed out of $((3*$numExamples)) total tests. See Results.txt for details. Be sure to include your compile.sh in your submission, which was not tested by this script."
|