Esempio n. 1
0
 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
Esempio n. 2
0
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:])
Esempio n. 3
0
 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
Esempio n. 4
0
 def __add__(self, other):
     if isinstance(other, BufferView):
         collator = BufferCollator()
         collator.append(self)
         collator.append(other)
         return collator.collapse()
     else:
         return NotImplemented
Esempio n. 5
0
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:])
Esempio n. 6
0
 def __add__(self, other):
     if isinstance(other, BufferView):
         collator = BufferCollator()
         collator.append(self)
         collator.append(other)
         return collator.collapse()
     else:
         return NotImplemented
Esempio n. 7
0
 def test_single_item(self, buf):
     view = buf.view()
     collator = BufferCollator()
     collator.append(view)
     assert collator.collapse() is view