updated
authorChristian Urban <urbanc@in.tum.de>
Mon, 10 Dec 2018 02:23:30 +0000
changeset 244 a359976a6f3e
parent 243 9bb36426c781
child 245 975d34506e88
updated
marking3/compare
marking3/knight1_test.sh
marking3/knight1_test3a.scala
marking3/knight1_test3b.scala
marking3/knight1_test4.scala
marking3/knight1_test5.scala
marking3/tails
solutions5/bf.scala
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/marking3/compare	Mon Dec 10 02:23:30 2018 +0000
@@ -0,0 +1,18 @@
+#!/bin/sh
+###set -e
+
+trap "exit" INT
+
+files=${1:-assignment20188-*}
+
+for sd in $files; do
+  cd $sd
+  cp output output1
+  #cmp -s output output1 > /dev/null
+  #if [ $? -eq 1 ]; then
+  #    echo $sd + "is different"
+  #fi
+  cd ..
+done
+
+
--- a/marking3/knight1_test.sh	Sun Dec 09 01:36:49 2018 +0000
+++ b/marking3/knight1_test.sh	Mon Dec 10 02:23:30 2018 +0000
@@ -31,6 +31,15 @@
   (ulimit -t 30; JAVA_OPTS="-Xmx1g" scala -nc -i "$1" "$2" -e "" 2> /dev/null 1> /dev/null)
 }
 
+function scala_assert_long {
+  (ulimit -t 60; JAVA_OPTS="-Xmx1g" scala -nc -i "$1" "$2" -e "" 2> /dev/null 1> /dev/null)
+}
+
+function scala_assert_elong {
+  (ulimit -t 90; JAVA_OPTS="-Xmx1g" scala -nc -i "$1" "$2" -e "" 2> /dev/null 1> /dev/null)
+}
+
+
 # purity test
 
 function scala_vars {
@@ -115,12 +124,12 @@
 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" >>  $out
-  echo "       3: 0,0,0,0,0,0,0,0,0" >>  $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
   
-  if (scala_assert "knight1.scala" "knight1_test3a.scala") 
+  if (time scala_assert_elong "knight1.scala" "knight1_test3a.scala") 
   then
      echo "  --> success" | tee -a $out
      marks=$(( marks + 1 ))
@@ -133,7 +142,7 @@
 then
   echo " enum_tours(5, List((0,2)) ) => 56 tours? and all correct?" | tee -a $out
   
-  if (scala_assert "knight1.scala" "knight1_test3b.scala") 
+  if (time scala_assert "knight1.scala" "knight1_test3b.scala") 
   then
      echo "  --> success" | tee -a $out
      marks=$(( marks + 1 ))
@@ -143,7 +152,7 @@
 fi
 
 
-### knight2a test
+### knight4 test
 
 if [ $tsts1 -eq 0 ]
 then
@@ -161,17 +170,17 @@
 fi
 
 
-### knight2b test
+### knight5 test
 
 if [ $tsts1 -eq 0 ]
 then
   echo " is first_tour(8, List((0, 0))) ok? " | tee -a $out
   echo " is first_tour(4, List((0, 0))) == None " | tee -a $out
 
-  if (scala_assert "knight1.scala" "knight5_test.scala") 
+  if (time scala_assert_long "knight1.scala" "knight1_test5.scala") 
   then
      echo "  --> success" | tee -a $out
-     marks=$(( marks + 2 ))
+     marks=$(( marks + 1 ))
   else
     echo "  --> test failed" | tee -a $out
   fi
--- a/marking3/knight1_test3a.scala	Sun Dec 09 01:36:49 2018 +0000
+++ b/marking3/knight1_test3a.scala	Mon Dec 10 02:23:30 2018 +0000
@@ -1,32 +1,12 @@
 
-type Pos = (Int, Int)    // a position on a chessboard 
-type Path = List[Pos]    // a path...a list of positions
+//type Pos = (Int, Int)    // a position on a chessboard 
+//type Path = List[Pos]    // a path...a list of positions
 
 def count_all_tours_urban(dim: Int) = {
   for (i <- (0 until dim).toList; 
        j <- (0 until dim).toList) yield count_tours(dim, List((i, j)))
 }
 
-def add_pair_urban(x: Pos)(y: Pos): Pos = 
-  (x._1 + y._1, x._2 + y._2)
-
-def is_legal_urban(dim: Int, path: Path)(x: Pos): Boolean = 
-  0 <= x._1 && 0 <= x._2 && x._1 < dim && x._2 < dim && !path.contains(x)
-
-def moves_urban(x: Pos): List[Pos] = 
-  List(( 1,  2),( 2,  1),( 2, -1),( 1, -2),
-       (-1, -2),(-2, -1),(-2,  1),(-1,  2)).map(add_pair_urban(x))
-
-def legal_moves_urban(dim: Int, path: Path, x: Pos): List[Pos] = 
-  moves_urban(x).filter(is_legal_urban(dim, path))
-
-def correct_urban(dim: Int)(p: Path): Boolean = p match {
-  case Nil => true
-  case x::Nil => true
-  case x::y::p => if (legal_moves_urban(dim, p, y).contains(x)) correct_urban(dim)(y::p) else false
-}
-
-
 
 assert(count_all_tours_urban(1) == List(1))
 assert(count_all_tours_urban(2) == List(0, 0, 0, 0))
--- a/marking3/knight1_test3b.scala	Sun Dec 09 01:36:49 2018 +0000
+++ b/marking3/knight1_test3b.scala	Mon Dec 10 02:23:30 2018 +0000
@@ -1,11 +1,6 @@
 
-type Pos = (Int, Int)    // a position on a chessboard 
-type Path = List[Pos]    // a path...a list of positions
-
-def count_all_tours_urban(dim: Int) = {
-  for (i <- (0 until dim).toList; 
-       j <- (0 until dim).toList) yield count_tours(dim, List((i, j)))
-}
+//type Pos = (Int, Int)    // a position on a chessboard 
+//type Path = List[Pos]    // a path...a list of positions
 
 def add_pair_urban(x: Pos)(y: Pos): Pos = 
   (x._1 + y._1, x._2 + y._2)
--- a/marking3/knight1_test4.scala	Sun Dec 09 01:36:49 2018 +0000
+++ b/marking3/knight1_test4.scala	Mon Dec 10 02:23:30 2018 +0000
@@ -1,5 +1,5 @@
 
 val f = (x:(Int, Int)) => if (x._1 > 3) Some(List(x)) else None
 
-assert(CW7b.first(List((1,0),(2,0),(3,0),(4,0)), f) == Some(List((4,0))))
-assert(CW7b.first(List((1,0),(2,0),(3,0)), f) == None)
+assert(first(List((1,0),(2,0),(3,0),(4,0)), f) == Some(List((4,0))))
+assert(first(List((1,0),(2,0),(3,0)), f) == None)
--- a/marking3/knight1_test5.scala	Sun Dec 09 01:36:49 2018 +0000
+++ b/marking3/knight1_test5.scala	Mon Dec 10 02:23:30 2018 +0000
@@ -1,6 +1,6 @@
 
-type Pos = (Int, Int)    // a position on a chessboard 
-type Path = List[Pos]    // a path...a list of positions
+//type Pos = (Int, Int)    // a position on a chessboard 
+//type Path = List[Pos]    // a path...a list of positions
 
 def add_pair_urban(x: Pos)(y: Pos): Pos = 
   (x._1 + y._1, x._2 + y._2)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/marking3/tails	Mon Dec 10 02:23:30 2018 +0000
@@ -0,0 +1,19 @@
+#!/bin/sh
+###set -e
+
+trap "exit" INT
+
+files=${1:-assignment20188-*}
+
+for sd in $files; do
+  cd $sd
+  #echo $sd
+  marksone=$(( `tail -1 output` ))
+  markstwo=$(( `tail -1 output1` ))
+  if [ "$marksone" != "$markstwo" ]; then
+      echo $sd + "is different"
+  fi
+  cd ..
+done
+
+
--- a/solutions5/bf.scala	Sun Dec 09 01:36:49 2018 +0000
+++ b/solutions5/bf.scala	Mon Dec 10 02:23:30 2018 +0000
@@ -107,6 +107,7 @@
 def run(prog: String, m: Mem = Map()) = compute(prog, 0, 0, m)
 
 
+
 /*
 
 // some sample bf-programs collected from the Internet
@@ -138,9 +139,13 @@
 
 // hello world program 2
 run("""++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>+
-      +.<<+++++++++++++++.>.+++.------.--------.>+.>.""")
+       +.<<+++++++++++++++.>.+++.------.--------.>+.>.""")
 
+// hello world program 3
+run("""+++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..
+       +++.>-.------------.<++++++++.--------.+++.------.--------.>+.""")
 
+ 
 // draws the Sierpinski triangle
 run("""++++++++[>+>++++<<-]>++>>+<[-[>>+<<-]+>>]>+[-<<<[
       ->[+[-]+>++>>>-<<]<[<]>>++++++[<<+++++>>-]+<<++.[-]<<