def test_footer_with_implicit_padding(params_footer_with_implicit_padding): params = params_footer_with_implicit_padding dtree = params['dtree'] assert model.get_size(dtree.root.footer) == 14 assert model.get_size(dtree.root.footer) == dtree.root.footer.footer_size assert model.get_size(dtree.root.items) == 12 assert model.get_size(dtree.root) == 33
def test_footer_complex(params_footer_complex): params = params_footer_complex dtree = params['dtree'] assert model.get_size(dtree.root.footer) == 14 assert model.get_size(dtree.root.footer) == dtree.root.footer.footer_size assert model.get_size(dtree.root.footer.footer_contents) == 6 assert memoryview(dtree.root.footer.footer_contents) == 'footer' assert memoryview(dtree.root.contents) == 'some random data' assert model.get_size(dtree.root) == 30
def test_array_items(params_array_items): params = params_array_items dtree, sizeof_array = params['dtree'], params['sizeof_array'] assert len(dtree.integers) == 10 assert model.get_size(dtree.integers) == sizeof_array for i in range(10): mapped_i = (i * 7) % 10 assert dtree.integers[mapped_i].value == mapped_i
def test_sst_index_block(spec_sst_index, data_sst_index_block_1): data, nb_entries = (data_sst_index_block_1['data'], data_sst_index_block_1['nb_entries']) dtree = model.DataTree(data, spec_sst_index) assert len(dtree.entries) == nb_entries last_index = None for i, entry in enumerate(dtree.entries): last_index = i model.make_python_object(entry) assert last_index == nb_entries - 1 assert len(dtree.restarts) == dtree.nb_restarts assert model.get_size(dtree.restarts) == dtree.nb_restarts * 4
def test_slack_span_simple(params_simple): params = params_simple dtree, lengths, control_size = (params['dtree'], params['lengths'], params['control_size']) if 'data_lengths' in params: data_lengths = params['data_lengths'] else: data_lengths = lengths assert len(dtree.blocks) == len(lengths) for i, block in enumerate(dtree.blocks): contents = memoryview(block.contents) assert len(contents) == lengths[i] assert contents[:data_lengths[i]] == ''.join([chr(i)] * data_lengths[i]) assert model.get_size(block) >= 10 assert model.get_size(block) == model.get_size(dtree.blocks[i:i + 1]) padding_len = max(10 - (control_size + lengths[i]), 0) try: assert (memoryview(block.padding) == '\xff' * padding_len) except AttributeError: assert padding_len == 0
def test_slack_static_span(params_subblocks): import sys #model.enable_debug_mode() params = params_subblocks dtree, block_counts = params['dtree'], params['block_counts'] cur_offset = 0 for (blocktype, block_array) in enumerate([ dtree.huge_blocks, dtree.big_blocks, dtree.avg_blocks, dtree.small_blocks ]): assert len(block_array) == block_counts[blocktype] for block in block_array: for sub_block in block.sub_blocks: assert model.get_offset(sub_block) == cur_offset contents = model.make_python_object(sub_block.contents) assert contents == ''.join([chr(blocktype)] * len(contents)) cur_offset += model.get_size(sub_block)