def test_len(self, buf): buf.add_bytes(b"abc") view = buf.view() collator = BufferCollator() collator.append(view) collator.append(view) assert len(collator) == 6
def run_zero_buffer_bench(): d = defaultdict(int) cur_buffer = Buffer.alloc(8192) last_pos = 0 collator = BufferCollator() with open("/usr/share/dict/words") as f: done = False while not done: try: read = cur_buffer.read_from(f.fileno()) except BufferFull: cur_buffer = Buffer.alloc(8192) last_pos = 0 continue except EOFError: read = 0 done = True view = cur_buffer.view(last_pos, last_pos + read) last_pos += read collator.append(view) if b"\n" in view: data = collator.collapse() last_newline_pos = data.rfind(b"\n") for line in data[:last_newline_pos].split(b"\n"): d[chr(line[0])] += 1 collator.append(data[last_newline_pos + 1:])
def test_collapse_clears(self, buf): buf.add_bytes(b"abc") view = buf.view() collator = BufferCollator() collator.append(view) collator.collapse() view = collator.collapse() assert len(view) == 0
def __add__(self, other): if isinstance(other, BufferView): collator = BufferCollator() collator.append(self) collator.append(other) return collator.collapse() else: return NotImplemented
def test_single_item(self, buf): view = buf.view() collator = BufferCollator() collator.append(view) assert collator.collapse() is view