diff -r a057dc4457fc -r 87b9e3e2c1a7 marking/mark02 --- a/marking/mark02 Tue Oct 29 11:11:44 2019 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,226 +0,0 @@ -#!/bin/bash -set -e - -out=${1:-output} - -echo "" > $out - -echo "Below is the feedback and provisional mark for your submission" >> $out -echo "for CW 7, Part 1. Please note all marks are provisional until" >> $out -echo "ratified by the assessment board -- this is not an official" >> $out -echo "results transcript." >> $out -echo "" >> $out - -function scala_vars { - (egrep 'var|return|ListBuffer|mutable' "$1" 2> /dev/null 1> /dev/null) -} - - -# compilation tests - -function scala_compile { - (scala "$1" 2> /dev/null 1> /dev/null) -} - - -# functional tests - -function scala_assert { - (scala -i "$1" "$2" -e "" 2> /dev/null 1> /dev/null) -} - - -# marks for CW2 -marks=$(( 0 )) - -# knights1: var, comments test - -echo "knight1.scala does not contain vars, returns etc?" | tee -a $out - -if (scala_vars knight1.scala) -then - echo " --> fail" | tee -a $out - tsts0=$(( 1 )) -else - echo " --> yes" | tee -a $out - tsts0=$(( 0 )) -fi - - -# compilation test - -if [ $tsts0 -eq 0 ] -then - echo "knight1.scala runs?" | tee -a $out - - if (scala_compile knight1.scala.bak) - then - echo " --> yes" | tee -a $out - tsts1=$(( 0 )) - else - echo " --> scala did not run knight1.scala" | tee -a $out - tsts1=$(( 1 )) - fi -else - tsts1=$(( 1 )) -fi - -### knight1a test - -if [ $tsts1 -eq 0 ] -then - echo " is_legal(8, Nil) (3,4) == true " | tee -a $out - echo " is_legal(8, (4,1) (1,0)) (4,1) == false " | tee -a $out - echo " is_legal(2, Nil) (0,0) == true" | tee -a $out - - if (scala_assert "knight1.scala.bak" "../../../marking/knight1c_test.scala") - then - echo " --> success" | tee -a $out - marks=$(( marks + 1 )) - else - echo " --> test failed" | tee -a $out - fi -fi - -if [ $tsts1 -eq 0 ] -then - echo " legal_moves(8, Nil, (2,2)) = (3,4), (4,3), (4,1), (3,0), (1,0), (0,1), (0,3), (1,4)" | tee -a $out - echo " legal_moves(8, Nil, (7,7)) = (6,5), (5,6)" | tee -a $out - echo " legal_moves(8, (4,1), (1,0), (2,2)) = (3,4), (4,3), (3,0), (0,1), (0,3), (1,4)" | tee -a $out - echo " legal_moves(8, (6,6), (7,7)) = (6,5), (5,6)" | tee -a $out - echo " legal_moves(1, Nil, (0,0)) = Nil" | tee -a $out - echo " legal_moves(2, Nil, (0,0)) = Nil" | tee -a $out - echo " legal_moves(3, Nil, (0,0)) = (1,2), (2,1)" | tee -a $out - - if (scala_assert "knight1.scala.bak" "../../../marking/knight1_test.scala") - then - echo " --> success" | tee -a $out - marks=$(( marks + 1 )) - else - echo " --> test failed" | tee -a $out - fi -fi - -### knight1b test - -if [ $tsts1 -eq 0 ] -then - echo " all_tours from every position on the board" | tee -a $out - echo " dim = 1: 1" | tee -a $out - echo " 2: 0,0,0,0" | tee -a $out - echo " 3: 0,0,0,0,0,0,0,0,0" | tee -a $out - echo " 4: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0" | tee -a $out - echo " 5: 304,0,56,0,304,0,56,0,56,0,56,0,64,0,56,0,56,0,56,0,304,0,56,0,304" | tee -a $out - echo " enum_tours(5, (0,2) ) = 56 and all correct?" | tee -a $out - - if (scala_assert "knight1.scala.bak" "../../../marking/knight1b_test.scala") - then - echo " --> success" | tee -a $out - marks=$(( marks + 2 )) - else - echo " --> test failed" | tee -a $out - fi -fi - - - -# knights2: var, comments test - -echo "knight2.scala does not contain vars, returns etc?" | tee -a $out - -if (scala_vars knight2.scala) -then - echo " --> fail" | tee -a $out - tsts0=$(( 1 )) -else - echo " --> yes" | tee -a $out - tsts0=$(( 0 )) -fi - - -# compilation test -if [ $tsts0 -eq 0 ] -then - echo "knight2.scala runs?" | tee -a $out - - if (scala_compile knight2.scala.bak) - then - echo " --> yes" | tee -a $out - tsts1=$(( 0 )) - else - echo " --> scala did not run knight2.scala" | tee -a $out - tsts1=$(( 1 )) - fi -else - tsts1=$(( 1 )) -fi - -### knight2 test - -if [ $tsts1 -eq 0 ] -then - echo " Let f = (x:(Int, Int)) => if (x._1 > 3) Some(List(x)) else None " | tee -a $out - echo " first((1,0),(2,0),(3,0),(4,0), f) == Some(List((4,0)))" | tee -a $out - echo " first((1,0),(2,0),(3,0), f) == None" | tee -a $out - - if (scala_assert "knight2.scala.bak" "../../../marking/knight2_test.scala") - then - echo " --> success" | tee -a $out - marks=$(( marks + 1 )) - else - echo " --> test failed" | tee -a $out - fi -fi - -### knight2b test - -if [ $tsts1 -eq 0 ] -then - echo " is first_tour(8, (0, 0)) ok? " | tee -a $out - echo " is first_tour(4, (0, 0)) == None " | tee -a $out - - if (scala_assert "knight2.scala.bak" "../../../marking/knight2b_test.scala") - then - echo " --> success" | tee -a $out - marks=$(( marks + 2 )) - else - echo " --> test failed" | tee -a $out - fi -fi - - -# knights3: var, comments test -# -#echo "knight3.scala does not contain vars, returns etc?" | tee -a $out - -#if (scala_vars knight3.scala) -#then -# echo " --> fail" | tee -a $out -# tsts0=$(( 1 )) -#else -# echo " --> success" | tee -a $out -# tsts0=$(( 0 )) -#fi - - -# compilation test -#if [ $tsts0 -eq 0 ] -#then -# echo "knight3.scala runs?" | tee -a $out -# -# if (scala_compile knight3.scala.bak) -# then -# echo " --> success" | tee -a $out -# tsts1=$(( 0 )) -# else -# echo " --> scala did not run knight3.scala" | tee -a $out -# tsts1=$(( 1 )) -# fi -#else -# tsts1=$(( 1 )) -#fi - - -## final marks -echo "Overall mark for CW 2, Part 1 " | tee -a $out -echo "$marks" | tee -a $out