Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '''Test data as specified in the video, with ability to run tests
- Created on Feb 23, 2012
- I've input the data that was in the video (only about 12 decimals of precision)
- for testing my code. In addition, there is a very simplistic testing system
- embedded within the file (I didn't use PyUnit so that it could be run in the
- browser based interperter). However, there is none of my solution at all here,
- I just put in a simple hard-coded p array where my algorithm would go, which
- in turn makes the first test pass. Put your algorithm in place of this.
- @author: tomkent
- '''
- colors = [['red', 'green', 'green', 'red' , 'red'],
- ['red', 'red', 'green', 'red', 'red'],
- ['red', 'red', 'green', 'green', 'red'],
- ['red', 'red', 'red', 'red', 'red']]
- measurements = ['green', 'green', 'green' ,'green', 'green']
- motions = [[0,0],[0,1],[1,0],[1,0],[0,1]]
- sensor_right = 0.7
- p_move = 0.8
- def show(p):
- for i in range(len(p)):
- print p[i]
- #DO NOT USE IMPORT
- #ENTER CODE BELOW HERE
- #ANY CODE ABOVE WILL CAUSE
- #HOMEWORK TO BE GRADED
- #INCORRECT
- def test_vals1():
- colors = [['green','green','green'],
- ['green','red','green'],
- ['green','green','green']]
- measurements = ['red']
- motions = [[0,0]]
- sensor_right = 1.0
- p_move = 1.0
- p_expected = [[0,0,0],[0,1.0,0],[0,0,0]]
- return colors, measurements, motions, sensor_right, p_move, p_expected
- def test_vals2():
- colors = [['green','green','green'],
- ['green','red','red'],
- ['green','green','green']]
- measurements = ['red']
- motions = [[0,0]]
- sensor_right = 1.0
- p_move = 1.0
- p_expected = [[0,0,0],[0,0.5,0.5],[0,0,0]]
- return colors, measurements, motions, sensor_right, p_move, p_expected
- def test_vals3():
- colors = [['green','green','green'],
- ['green','red','red'],
- ['green','green','green']]
- measurements = ['red']
- motions = [[0,0]]
- sensor_right = 0.8
- p_move = 1.0
- p_expected = [[0.066666666666666,0.066666666666666,0.066666666666666],
- [0.066666666666666,0.266666666666666,0.266666666666666],
- [0.066666666666666,0.066666666666666,0.066666666666666]]
- return colors, measurements, motions, sensor_right, p_move, p_expected
- def test_vals4():
- colors = [['green','green','green'],
- ['green','red','red'],
- ['green','green','green']]
- measurements = ['red','red']
- motions = [[0,0],[0,1]]
- sensor_right = 0.8
- p_move = 1.0
- p_expected = [[0.033333333333333,0.033333333333333,0.033333333333333],
- [0.133333333333333,0.133333333333333,0.533333333333333],
- [0.033333333333333,0.033333333333333,0.033333333333333]]
- return colors, measurements, motions, sensor_right, p_move, p_expected
- def test_vals5():
- colors = [['green','green','green'],
- ['green','red','red'],
- ['green','green','green']]
- measurements = ['red','red']
- motions = [[0,0],[0,1]]
- sensor_right = 1.0
- p_move = 1.0
- p_expected = [[0,0,0],[0,0,1.0],[0,0,0]]
- return colors, measurements, motions, sensor_right, p_move, p_expected
- def test_vals6():
- colors = [['green','green','green'],
- ['green','red','red'],
- ['green','green','green']]
- measurements = ['red','red']
- motions = [[0,0],[0,1]]
- sensor_right = 0.8
- p_move = 0.5
- p_expected = [[0.028985507246,0.028985507246,0.028985507246],
- [0.072463768115,0.289855072463,0.463768115942],
- [0.028985507246,0.028985507246,0.028985507246]]
- return colors, measurements, motions, sensor_right, p_move, p_expected
- def test_vals7():
- colors = [['green','green','green'],
- ['green','red','red'],
- ['green','green','green']]
- measurements = ['red','red']
- motions = [[0,0],[0,1]]
- sensor_right = 1.0
- p_move = 0.5
- p_expected = [[0,0,0],
- [0,0.333333333333,0.666666666666],
- [0,0,0]]
- return colors, measurements, motions, sensor_right, p_move, p_expected
- def test_vals8():
- colors = [['red','green','green','red','red'],
- ['red','red','green','red','red'],
- ['red','red','green','green','red'],
- ['red','red','red','red','red']]
- measurements = ['green','green','green','green','green']
- motions = [[0,0],[0,1],[1,0],[1,0],[0,1]]
- sensor_right = 0.7
- p_move = 0.8
- p_expected = [[0.011059807427,0.024640415784,0.067996628067,0.044724870458,0.024651531216],
- [0.007153204183,0.010171326481,0.086965960026,0.079884299659,0.009350668508],
- [0.007397366886,0.008943730670,0.112729646702,0.353507229552,0.040655492078],
- [0.009106505805,0.007153204183,0.014349221618,0.043133291358,0.036425599329]]
- return colors, measurements, motions, sensor_right, p_move, p_expected
- def run_test(colors, measurements, motions, sensor_right, p_move, p_expected):
- p = []
- p = my_algorithm(colors, measurements, motions, sensor_right, p_move, p)
- results = True
- for p_row, exp_row in zip(p,p_expected):
- for p_val, exp_val in zip(p_row,exp_row):
- if abs(p_val - exp_val) > 1e-8:
- results = False
- # If you want to see individual failures and their expected values, uncomment
- # the next line
- # print str(p_val) + " != " + str(exp_val)
- # If you want to compare your results with the expected results for each failed
- # test, uncomment the next five lines
- # if not results:
- # print "test p"
- # show(p)
- # print "test expected p"
- # show(p_expected)
- return results
- def run_all_tests():
- results = []
- # The *(xxx) expands the resultant tuple into arguments
- results.append(run_test(*(test_vals1())))
- results.append(run_test(*(test_vals2())))
- results.append(run_test(*(test_vals3())))
- results.append(run_test(*(test_vals4())))
- results.append(run_test(*(test_vals5())))
- results.append(run_test(*(test_vals6())))
- results.append(run_test(*(test_vals7())))
- results.append(run_test(*(test_vals8())))
- print "Test results are: " + str(results)
- def my_algorithm(colors, measurements, motions, sensor_right, p_move, p):
- '''The location of your code to solve the problem
- Put all your stuff in here, the algorithm below that hard-codes p (to pass
- test #1) is obviously too simple.
- '''
- # My algorithm here is obviously too simple
- p = [[0,0,0],[0,1.0,0],[0,0,0,]]
- # This is the important part of it all
- return p
- # Continue with the code supplied by the instructor
- p = []
- ################################################################################
- # IMPORTANT...you need to un-comment the correct line...for testing your
- # algorithm, select the run_all_tests() line. For the code you actually want to
- # submit, uncomment the #p = my_algorithm(co... line.
- ################################################################################
- #run_all_tests()
- #p = my_algorithm(colors, measurements, motions, sensor_right, p_move, p)
- #Your probability array must be printed
- #with the following code.
- show(p)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement