Advertisement
teeks99

Localization Homework Tests

Feb 23rd, 2012
819
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.31 KB | None | 0 0
  1. '''Test data as specified in the video, with ability to run tests
  2.  
  3. Created on Feb 23, 2012
  4. I've input the data that was in the video (only about 12 decimals of precision)
  5. for testing my code.  In addition, there is a very simplistic testing system
  6. embedded within the file (I didn't use PyUnit so that it could be run in the
  7. browser based interperter).  However, there is none of my solution at all here,
  8. I just put in a simple hard-coded p array where my algorithm would go, which
  9. in turn makes the first test pass.  Put your algorithm in place of this.
  10.  
  11. @author: tomkent
  12. '''
  13. colors = [['red', 'green', 'green', 'red' , 'red'],
  14.           ['red', 'red', 'green', 'red', 'red'],
  15.           ['red', 'red', 'green', 'green', 'red'],
  16.           ['red', 'red', 'red', 'red', 'red']]
  17.  
  18. measurements = ['green', 'green', 'green' ,'green', 'green']
  19.  
  20.  
  21. motions = [[0,0],[0,1],[1,0],[1,0],[0,1]]
  22.  
  23. sensor_right = 0.7
  24.  
  25. p_move = 0.8
  26.  
  27. def show(p):
  28.     for i in range(len(p)):
  29.         print p[i]
  30.  
  31. #DO NOT USE IMPORT
  32. #ENTER CODE BELOW HERE
  33. #ANY CODE ABOVE WILL CAUSE
  34. #HOMEWORK TO BE GRADED
  35. #INCORRECT
  36.  
  37. def test_vals1():
  38.     colors = [['green','green','green'],
  39.               ['green','red','green'],
  40.               ['green','green','green']]
  41.     measurements = ['red']
  42.     motions = [[0,0]]
  43.     sensor_right = 1.0
  44.     p_move = 1.0
  45.     p_expected = [[0,0,0],[0,1.0,0],[0,0,0]]
  46.     return colors, measurements, motions, sensor_right, p_move, p_expected
  47.  
  48. def test_vals2():
  49.     colors = [['green','green','green'],
  50.               ['green','red','red'],
  51.               ['green','green','green']]
  52.     measurements = ['red']
  53.     motions = [[0,0]]
  54.     sensor_right = 1.0
  55.     p_move = 1.0
  56.     p_expected = [[0,0,0],[0,0.5,0.5],[0,0,0]]    
  57.     return colors, measurements, motions, sensor_right, p_move, p_expected
  58.  
  59. def test_vals3():
  60.     colors = [['green','green','green'],
  61.               ['green','red','red'],
  62.               ['green','green','green']]
  63.     measurements = ['red']
  64.     motions = [[0,0]]
  65.     sensor_right = 0.8
  66.     p_move = 1.0
  67.     p_expected = [[0.066666666666666,0.066666666666666,0.066666666666666],
  68.                   [0.066666666666666,0.266666666666666,0.266666666666666],
  69.                   [0.066666666666666,0.066666666666666,0.066666666666666]]    
  70.     return colors, measurements, motions, sensor_right, p_move, p_expected
  71.    
  72. def test_vals4():
  73.     colors = [['green','green','green'],
  74.               ['green','red','red'],
  75.               ['green','green','green']]
  76.     measurements = ['red','red']
  77.     motions = [[0,0],[0,1]]
  78.     sensor_right = 0.8
  79.     p_move = 1.0
  80.     p_expected = [[0.033333333333333,0.033333333333333,0.033333333333333],
  81.                   [0.133333333333333,0.133333333333333,0.533333333333333],
  82.                   [0.033333333333333,0.033333333333333,0.033333333333333]]
  83.     return colors, measurements, motions, sensor_right, p_move, p_expected
  84.    
  85. def test_vals5():
  86.     colors = [['green','green','green'],
  87.               ['green','red','red'],
  88.               ['green','green','green']]
  89.     measurements = ['red','red']
  90.     motions = [[0,0],[0,1]]
  91.     sensor_right = 1.0
  92.     p_move = 1.0
  93.     p_expected = [[0,0,0],[0,0,1.0],[0,0,0]]    
  94.     return colors, measurements, motions, sensor_right, p_move, p_expected
  95.  
  96. def test_vals6():
  97.     colors = [['green','green','green'],
  98.               ['green','red','red'],
  99.               ['green','green','green']]
  100.     measurements = ['red','red']
  101.     motions = [[0,0],[0,1]]
  102.     sensor_right = 0.8
  103.     p_move = 0.5
  104.     p_expected = [[0.028985507246,0.028985507246,0.028985507246],
  105.                   [0.072463768115,0.289855072463,0.463768115942],
  106.                   [0.028985507246,0.028985507246,0.028985507246]]    
  107.     return colors, measurements, motions, sensor_right, p_move, p_expected
  108.  
  109. def test_vals7():
  110.     colors = [['green','green','green'],
  111.               ['green','red','red'],
  112.               ['green','green','green']]
  113.     measurements = ['red','red']
  114.     motions = [[0,0],[0,1]]
  115.     sensor_right = 1.0
  116.     p_move = 0.5
  117.     p_expected = [[0,0,0],
  118.                   [0,0.333333333333,0.666666666666],
  119.                   [0,0,0]]    
  120.     return colors, measurements, motions, sensor_right, p_move, p_expected
  121.  
  122. def test_vals8():
  123.     colors = [['red','green','green','red','red'],
  124.               ['red','red','green','red','red'],
  125.               ['red','red','green','green','red'],
  126.               ['red','red','red','red','red']]
  127.     measurements = ['green','green','green','green','green']
  128.     motions = [[0,0],[0,1],[1,0],[1,0],[0,1]]
  129.     sensor_right = 0.7
  130.     p_move = 0.8
  131.     p_expected = [[0.011059807427,0.024640415784,0.067996628067,0.044724870458,0.024651531216],
  132.                   [0.007153204183,0.010171326481,0.086965960026,0.079884299659,0.009350668508],
  133.                   [0.007397366886,0.008943730670,0.112729646702,0.353507229552,0.040655492078],
  134.                   [0.009106505805,0.007153204183,0.014349221618,0.043133291358,0.036425599329]]    
  135.     return colors, measurements, motions, sensor_right, p_move, p_expected
  136.  
  137. def run_test(colors, measurements, motions, sensor_right, p_move, p_expected):
  138.     p = []
  139.     p = my_algorithm(colors, measurements, motions, sensor_right, p_move, p)
  140.    
  141.     results = True
  142.     for p_row, exp_row in zip(p,p_expected):
  143.         for p_val, exp_val in zip(p_row,exp_row):
  144.             if abs(p_val - exp_val) > 1e-8:
  145.                 results = False
  146. # If you want to see individual failures and their expected values, uncomment
  147. # the next line
  148. #                print str(p_val) + " != " + str(exp_val)
  149.  
  150. # If you want to compare your results with the expected results for each failed
  151. # test, uncomment the next five lines
  152. #    if not results:
  153. #        print "test p"
  154. #        show(p)
  155. #        print "test expected p"
  156. #        show(p_expected)
  157.  
  158.     return results
  159.  
  160. def run_all_tests():
  161.     results = []
  162.     # The *(xxx) expands the resultant tuple into arguments
  163.     results.append(run_test(*(test_vals1())))
  164.     results.append(run_test(*(test_vals2())))
  165.     results.append(run_test(*(test_vals3())))
  166.     results.append(run_test(*(test_vals4())))
  167.     results.append(run_test(*(test_vals5())))
  168.     results.append(run_test(*(test_vals6())))
  169.     results.append(run_test(*(test_vals7())))
  170.     results.append(run_test(*(test_vals8())))
  171.     print "Test results are: " + str(results)
  172.  
  173. def my_algorithm(colors, measurements, motions, sensor_right, p_move, p):
  174.     '''The location of your code to solve the problem
  175.    
  176.    Put all your stuff in here, the algorithm below that hard-codes p (to pass
  177.    test #1) is obviously too simple.
  178.    '''
  179.     # My algorithm here is obviously too simple
  180.     p = [[0,0,0],[0,1.0,0],[0,0,0,]]
  181.    
  182.     # This is the important part of it all
  183.     return p
  184.  
  185. # Continue with the code supplied by the instructor
  186. p = []
  187.  
  188. ################################################################################
  189. # IMPORTANT...you need to un-comment the correct line...for testing your
  190. # algorithm, select the run_all_tests() line.  For the code you actually want to
  191. # submit, uncomment the #p = my_algorithm(co... line.
  192. ################################################################################
  193. #run_all_tests()
  194. #p = my_algorithm(colors, measurements, motions, sensor_right, p_move, p)
  195.  
  196. #Your probability array must be printed
  197. #with the following code.
  198.  
  199. show(p)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement