def test_sense():
    R = 'r'
    _ = 'g'

    simple_grid = [
        [_,_,_],
        [_,R,_],
        [_,_,_]
    ]

    p = 1.0 / 9
    initial_beliefs = [
        [p,p,p],
        [p,p,p],
        [p,p,p]
    ]

    observation = R

    expected_beliefs_after = [
        [1/11, 1/11, 1/11],
        [1/11, 3/11, 1/11],
        [1/11, 1/11, 1/11]
    ]

    p_hit  = 3.0
    p_miss = 1.0
    beliefs_after_sensing = localizer.sense(
        observation, simple_grid, initial_beliefs, p_hit, p_miss)

    if helpers.close_enough(beliefs_after_sensing, expected_beliefs_after):
        print("Tests pass! Your sense function is working as expected")
        return
    
    elif not isinstance(beliefs_after_sensing, list):
        print("Your sense function doesn't return a list!")
        return
        
    elif len(beliefs_after_sensing) != len(expected_beliefs_after):
        print("Dimensionality error! Incorrect height")
        return
              
    elif len(beliefs_after_sensing[0] ) != len(expected_beliefs_after[0]):
        print("Dimensionality Error! Incorrect width")
        return
    
    elif beliefs_after_sensing == initial_beliefs:
        print("Your code returns the initial beliefs.")
        return
        
    total_probability = 0.0
    for row in beliefs_after_sensing:
        for p in row:
            total_probability += p
    if abs(total_probability-1.0) > 0.001:
        
        print("Your beliefs appear to not be normalized")
        return
    
    print("Something isn't quite right with your sense function")
 def sense(self):
     color = self.get_observed_color()
     beliefs = deepcopy(self.beliefs)
     new_beliefs = localizer.sense(color, self.grid, beliefs, self.p_hit, self.p_miss)
     if not new_beliefs or len(new_beliefs) == 0:
         print("NOTE! The robot doesn't have a working sense function at this point.")
         self.beliefs = beliefs
     else:
         self.beliefs = new_beliefs
Пример #3
0
 def sense(self):
     color = self.get_observed_color()
     beliefs = deepcopy(self.beliefs)
     new_beliefs = localizer.sense(color, self.grid, beliefs, self.p_hit, self.p_miss)
     if not new_beliefs or len(new_beliefs) == 0:
         print("The localizer sense function returned nothing.")
         self.beliefs = beliefs
     else:
         self.beliefs = new_beliefs
 def sense(self):
     color = self.get_observed_color()
     beliefs = deepcopy(self.beliefs)
     new_beliefs = localizer.sense(color, self.grid, beliefs, self.p_hit,
                                   self.p_miss)
     self.beliefs = new_beliefs