testing1/drumb_test2.scala
changeset 248 1616d06a0893
parent 199 54befaf23648
child 281 87b9e3e2c1a7
equal deleted inserted replaced
247:50a3b874008a 248:1616d06a0893
       
     1 #!/bin/bash
       
     2 set -e
     1 
     3 
     2 assert(get_first_price("GOOG", 1980) == None)
     4 out=${1:-output}
     3 
     5 
     4 assert(get_first_price("GOOG", 2010) == Some(311.349976))
     6 echo "" > $out
       
     7 
       
     8 echo "Below is the feedback for your submission for drumb.scala" >> $out
       
     9 echo "" >> $out
       
    10 
       
    11 # compilation tests
       
    12 
       
    13 function scala_compile {
       
    14   (ulimit -t 30; JAVA_OPTS="-Xmx1g" scala "$1" 2>> $out 1>> $out) 
       
    15 }
       
    16 
       
    17 # functional tests
       
    18 
       
    19 function scala_assert {
       
    20   (ulimit -t 30; JAVA_OPTS="-Xmx1g" scala -i "$1" "$2" -e "") #2> /dev/null 1> /dev/null)
       
    21 }
       
    22 
       
    23 # purity test
       
    24 
       
    25 function scala_vars {
       
    26    (egrep '\bvar\b|\breturn\b|\.par|ListBuffer|mutable' "$1" 2> /dev/null 1> /dev/null)
       
    27 }
     5 
    28 
     6 
    29 
       
    30 # var, .par return, ListBuffer test
       
    31 #
       
    32 echo "drumb.scala does not contain vars, returns etc?" >> $out
       
    33 
       
    34 if (scala_vars drumb.scala)
       
    35 then
       
    36   echo "  --> fail (make triple-sure your program conforms to the required format)" >> $out
       
    37   tsts0=$(( 0 ))
       
    38 else
       
    39   echo "  --> success" >> $out
       
    40   tsts0=$(( 0 )) 
       
    41 fi
     7 
    42 
     8 
    43 
       
    44 # compilation test
       
    45 if  [ $tsts0 -eq 0 ]
       
    46 then 
       
    47   echo "drumb.scala runs?" >> $out
       
    48 
       
    49   if (scala_compile drumb.scala)
       
    50   then
       
    51     echo "  --> success" >> $out
       
    52     tsts=$(( 0 ))
       
    53   else
       
    54     echo -e "  --> SCALA DID NOT RUN DRUMB.SCALA\n" >> $out    
       
    55     tsts=$(( 1 )) 
       
    56   fi
       
    57 else
       
    58   tsts=$(( 1 ))     
       
    59 fi
       
    60 
       
    61 ### get january data
       
    62 
       
    63 if [ $tsts -eq 0 ]
       
    64 then
       
    65   echo "  get_january_data(\"GOOG\", 1980) == List()" >> $out
       
    66   echo "  get_january_data(\"GOOG\", 2010).head == \"2010-01-04,311.349976\"" >> $out
       
    67 
       
    68   if (scala_assert "drumb.scala" "drumb_test1.scala")
       
    69   then
       
    70     echo "  --> success" >> $out
       
    71   else
       
    72     echo -e "  --> \n ONE TEST FAILED\n" >> $out    
       
    73   fi
       
    74 fi
       
    75 
       
    76 ### get first price
       
    77 
       
    78 if [ $tsts -eq 0 ]
       
    79 then
       
    80   echo "  get_first_price(\"GOOG\", 1980) == None" >> $out
       
    81   echo "  get_first_price(\"GOOG\", 2010) == Some(311.349976)" >> $out
       
    82 
       
    83   if (scala_assert "drumb.scala" "drumb_test2.scala")
       
    84   then
       
    85     echo "  --> success" >> $out
       
    86   else
       
    87     echo "  --> test failed" >> $out
       
    88   fi
       
    89 fi
       
    90 
       
    91 ### get prices tests
       
    92 
       
    93 if [ $tsts -eq 0 ]
       
    94 then
       
    95   echo "  get_prices(List(\"GOOG\", \"AAPL\"), 2010 to 2012) ==" >> $out
       
    96   echo "       List(List(Some(311.349976), Some(20.544939))," >> $out
       
    97   echo "            List(Some(300.222351), Some(31.638695))," >> $out
       
    98   echo "            List(Some(330.555054), Some(39.478039)))" >> $out
       
    99 
       
   100   if (scala_assert "drumb.scala" "drumb_test3.scala")
       
   101   then
       
   102     echo "  --> success" >> $out
       
   103   else
       
   104     echo "  --> test failed" >> $out
       
   105   fi
       
   106 fi
       
   107 
       
   108 ### get_deltas_test
       
   109 
       
   110 #if [ $tsts -eq 0 ]
       
   111 #then
       
   112 #  echo "  get_deltas(get_prices(List(\"GOOG\", \"AAPL\"), 2010 to 2012)) == " >> $out
       
   113 #  echo "    List(List(Some(-0.03573992567129673), Some(0.5399749442411563)), " >> $out
       
   114 #  echo "         List(Some(0.10103412653643493), Some(0.2477771728154912)))" >> $out
       
   115 #  
       
   116 #  if (scala_assert "drumb.scala" "drumb_test2.scala") 
       
   117 #  then
       
   118 #    echo "  --> success" >> $out
       
   119 #  else
       
   120 #    echo "  --> test failed" >> $out
       
   121 #  fi
       
   122 #fi
       
   123 
       
   124 
       
   125 ### yield_tests, investment_test
       
   126 
       
   127 #if [ $tsts -eq 0 ]
       
   128 #then
       
   129 #  echo "  yearly_yield(get_deltas(<<GOOG+AAPL 2010 - 2012>>), 100, 0) == 125" >> $out
       
   130 #  echo "" >> $out
       
   131 #  echo "  investment(rstate_portfolio, 1978 to 2017, 100) == 30895" >> $out
       
   132 #  echo "  investment(bchips_portfolio, 1978 to 2017, 100) == 349597" >> $out
       
   133 #  
       
   134 #  if (scala_assert "drumb.scala" "drumb_test3.scala") 
       
   135 #  then
       
   136 #    echo "  --> success" >> $out
       
   137 #  else
       
   138 #    echo "  --> test failed" >> $out
       
   139 #  fi
       
   140 #fi
       
   141