code: def _update_pref(self, lmin, lmax, cur):
          
          rate_of_change_positive = 10
          rate_of_change_negative = 2
          add_positive = 10
          add_negative = 2
          if lmin == lmax:
              self.rating -= int(abs(lmin - cur)*100) / 10
          else:
              if lmin <= cur:
                  self.rating += (int(abs(lmin - cur)*rate_of_change_positive)) + add_positive
              else:
                  self.rating -= (int(abs(lmin - cur)*rate_of_change_negative)) + add_negative
              if lmax >= cur:
                  self.rating += (int(abs(lmax - cur)*rate_of_change_positive)) + add_positive
              else:
                  self.rating -= (int(abs(lmax - cur)*rate_of_change_negative)) + add_negative
docs: update the self rating based on the parameters.
          If min max is a range (ie not equal) then add fixed value
          to rating depending if current value is in range, otherwise
          compare distance away from min/max (same value)