parameters: (self, img1, img2, skip_area=None)
return_statement: return rms < 8
docstring: Compare two screenshots using Root-Mean-Square Difference (RMS).
          @param img1: screenshot to compare.
          @param img2: screenshot to compare.
          @return: equal status.
docstring_summary: Compare two screenshots using Root-Mean-Square Difference (RMS).
docstring_tokens: Compare two screenshots using Root - Mean - Square Difference ( RMS ) .
function: def equal(self, img1, img2, skip_area=None):
          """Compare two screenshots using Root-Mean-Square Difference (RMS).
          @param img1: screenshot to compare.
          @param img2: screenshot to compare.
          @return: equal status.
          """
          if not HAVE_PIL:
              return None
  
          # Trick to avoid getting a lot of screen shots only because the time in the windows
          # clock is changed.
          # We draw a black rectangle on the coordinates where the clock is locates, and then
          # run the comparison.
          # NOTE: the coordinates are changing with VM screen resolution.
          if skip_area:
              # Copying objects to draw in another object.
              img1 = img1.copy()
              img2 = img2.copy()
              # Draw a rectangle to cover windows clock.
              for img in (img1, img2):
                  self._draw_rectangle(img, skip_area)
  
          # To get a measure of how similar two images are, we use
          # root-mean-square (RMS). If the images are exactly identical,
          # this value is zero.
          diff = ImageChops.difference(img1, img2)
          h = diff.histogram()
          sq = (value * ((idx % 256)**2) for idx, value in enumerate(h))
          sum_of_squares = sum(sq)
          rms = math.sqrt(sum_of_squares/float(img1.size[0] * img1.size[1]))
  
          # Might need to tweak the threshold.
          return rms < 8
function_tokens: def equal ( self , img1 , img2 , skip_area = None ) : if not HAVE_PIL : return None # Trick to avoid getting a lot of screen shots only because the time in the windows # clock is changed. # We draw a black rectangle on the coordinates where the clock is locates, and then # run the comparison. # NOTE: the coordinates are changing with VM screen resolution. if skip_area : # Copying objects to draw in another object. img1 = img1 . copy ( ) img2 = img2 . copy ( ) # Draw a rectangle to cover windows clock. for img in ( img1 , img2 ) : self . _draw_rectangle ( img , skip_area ) # To get a measure of how similar two images are, we use # root-mean-square (RMS). If the images are exactly identical, # this value is zero. diff = ImageChops . difference ( img1 , img2 ) h = diff . histogram ( ) sq = ( value * ( ( idx % 256 ) ** 2 ) for idx , value in enumerate ( h ) ) sum_of_squares = sum ( sq ) rms = math . sqrt ( sum_of_squares / float ( img1 . size [ 0 ] * img1 . size [ 1 ] ) ) # Might need to tweak the threshold. return rms < 8