docs: def _drop_oldest_chunk(self):
          '''
          To handle the case when the items comming in the chunk
          is more than the maximum capacity of the chunk. Our intent
          behind is to remove the oldest chunk. So that the items come
          flowing in.
          >>> s = StreamCounter(5,5)
          >>> data_stream = ['a','b','c','d']
          >>> for item in data_stream:
          ...     s.add(item)
          >>> min(s.chunked_counts.keys())
          0
          >>> s.chunked_counts
          {0: {'a': 1, 'b': 1, 'c': 1, 'd': 1}}
          >>> data_stream = ['a','b','c','d','a','e','f']
          >>> for item in data_stream:
          ...     s.add(item)
          >>> min(s.chunked_counts.keys())
          2
          >>> s.chunked_counts
          {2: {'f': 1}}
          '''
          chunk_id = min(self.chunked_counts.keys())
          chunk = self.chunked_counts.pop(chunk_id)
  
          self.n_counts -= len(chunk)
          for k, v in list(chunk.items()):
              self.counts[k] -= v
              self.counts_total -= v