marking1/collatz_test.sh
changeset 210 63a1376cbebd
parent 158 94b11ac19b41
child 212 4bda49ec24da
equal deleted inserted replaced
209:40bdf9064e13 210:63a1376cbebd
    21 marks=$(( 0 ))
    21 marks=$(( 0 ))
    22 
    22 
    23 # compilation tests
    23 # compilation tests
    24 
    24 
    25 function scala_compile {
    25 function scala_compile {
    26   (ulimit -t 30 -m 1024000 ; scala "$1" 2> /dev/null 1> /dev/null)
    26   (ulimit -t 60; JAVA_OPTS="-Xmx1g" scala "$1" 2> /dev/null 1> /dev/null)
    27 }
    27 }
    28 
    28 
    29 # functional tests
    29 # functional tests
    30 
    30 
    31 function scala_assert {
    31 function scala_assert {
    32   (ulimit -t 30 -m 1024000 ; scala -i "$1" "$2" -e "" 2> /dev/null 1> /dev/null)
    32   (ulimit -t 60; JAVA_OPTS="-Xmx1g" scala -i "$1" "$2" -e "" 2> /dev/null 1> /dev/null)
    33 }
    33 }
    34 
    34 
    35 # purity test
    35 # purity test
    36 
    36 
    37 function scala_vars {
    37 function scala_vars {
    39 }
    39 }
    40 
    40 
    41 
    41 
    42 # var, .par return, ListBuffer test
    42 # var, .par return, ListBuffer test
    43 #
    43 #
    44 echo "collatz.scala does not contain vars, returns, Arrays, ListBuffers etc?" | tee -a $out
    44 echo "collatz.scala does not contain vars, return etc?" | tee -a $out
    45 
    45 
    46 if (scala_vars collatz.scala)
    46 if (scala_vars collatz.scala)
    47 then
    47 then
    48   echo "  --> fail" | tee -a $out
    48   echo "  --> test failed" | tee -a $out
    49   tsts0=$(( 1 ))
    49   tsts0=$(( 1 ))
    50 else
    50 else
    51   echo "  --> success" | tee -a $out
    51   echo "  --> success" | tee -a $out
    52   tsts0=$(( 0 )) 
    52   tsts0=$(( 0 )) 
    53 fi
    53 fi
    62   if (scala_compile collatz.scala)
    62   if (scala_compile collatz.scala)
    63   then
    63   then
    64     echo "  --> success" | tee -a $out
    64     echo "  --> success" | tee -a $out
    65     tsts=$(( 0 ))
    65     tsts=$(( 0 ))
    66   else
    66   else
    67     echo "  --> scala did not run collatz.scala" | tee -a $out
    67     echo "  --> scala collatz.scala did not run successfully" | tee -a $out
    68     tsts=$(( 1 )) 
    68     tsts=$(( 1 )) 
    69   fi
    69   fi
    70 else
    70 else
    71   tsts=$(( 1 ))     
    71   tsts=$(( 1 ))     
    72 fi
    72 fi
    74 ### collatz tests
    74 ### collatz tests
    75 
    75 
    76 if [ $tsts -eq 0 ]
    76 if [ $tsts -eq 0 ]
    77 then
    77 then
    78   echo "collatz.scala tests:" | tee -a $out
    78   echo "collatz.scala tests:" | tee -a $out
    79   echo "  collatz(1) == 0,1 or 4" | tee -a $out
    79   echo "  collatz(1) == 0" | tee -a $out
    80   echo "  collatz(6) == 9" | tee -a $out
    80   echo "  collatz(6) == 8" | tee -a $out
    81   echo "  collatz(9) == 20" | tee -a $out
    81   echo "  collatz(9) == 19" | tee -a $out
    82   echo "  collatz(9000) == 48" | tee -a $out
    82   echo "  collatz(9000) == 47" | tee -a $out
    83 
    83 
    84   if (scala_assert "collatz.scala" "collatz_test1.scala")
    84   if (scala_assert "collatz.scala" "collatz_test1.scala")
    85   then
    85   then
    86       echo "  --> success" | tee -a $out
    86       echo "  --> success" | tee -a $out
    87       marks=$(( marks + 2 ))
    87       marks=$(( marks + 2 ))
    92 
    92 
    93 ### collatz-max tests
    93 ### collatz-max tests
    94 
    94 
    95 if [ $tsts -eq 0 ]
    95 if [ $tsts -eq 0 ]
    96 then
    96 then
    97   echo "  collatz_max(10) == (20, 9)" | tee -a $out
    97   echo "  collatz_max(10) == (19, 9)" | tee -a $out
    98   echo "  collatz_max(100) == (119, 97)" | tee -a $out
    98   echo "  collatz_max(100) == (118, 97)" | tee -a $out
    99   echo "  collatz_max(1000) == (179, 871)" | tee -a $out
    99   echo "  collatz_max(1000) == (178, 871)" | tee -a $out
   100   echo "  collatz_max(10000) == (262, 6171)" | tee -a $out
   100   echo "  collatz_max(10000) == (261, 6171)" | tee -a $out
   101   echo "  collatz_max(100000) == (351, 77031)" | tee -a $out
   101   echo "  collatz_max(100000) == (350, 77031)" | tee -a $out
   102   echo "  collatz_max(1000000) == (525, 837799)" | tee -a $out
   102   echo "  collatz_max(1000000) == (524, 837799)" | tee -a $out
   103   echo "  collatz_max(2) == (2, 2)" | tee -a $out
   103   echo "  collatz_max(2) == (1, 2) || collatz_max(2) == (0, 1)" | tee -a $out
   104   echo "  collatz_max(77000) == (340, 52527)" | tee -a $out
   104   echo "  collatz_max(77000) == (339, 52527)" | tee -a $out
   105 
   105 
   106   if (scala_assert "collatz.scala" "collatz_test2.scala") 
   106   if (scala_assert "collatz.scala" "collatz_test2.scala") 
   107   then
   107   then
   108       echo "  --> success" | tee -a $out
   108       echo "  --> success" | tee -a $out
   109       marks=$(( marks + 1 ))
   109       marks=$(( marks + 1 ))