int tab_page_index(PAGE *page) { if (page_compare(page, &A3) == 0) return(A3_INDEX) ; else if (page_compare(page, &A4) == 0) return(A4_INDEX) ; else if (page_compare(page, &USletter) == 0) return(USLETTER_INDEX) ; else if (page_compare(page, &USlegal) == 0) return(USLEGAL_INDEX) ; else if (page_compare(page, &USexecutive) == 0) return(USEXECUTIVE_INDEX) ; else return(SPECIAL_INDEX) ; }
void setup_pagename(PAGE *page) { if (page_compare(page, &A3) == 0) strcpy(page->nom, A3.nom) ; else if (page_compare(page, &A4) == 0) strcpy(page->nom, A4.nom) ; else if (page_compare(page, &USletter) == 0) strcpy(page->nom, USletter.nom) ; else if (page_compare(page, &USlegal) == 0) strcpy(page->nom, USlegal.nom) ; else if (page_compare(page, &USexecutive) == 0) strcpy(page->nom, USexecutive.nom) ; else strcpy(page->nom, Special.nom) ; }
float* measure_wraps_test(Stats_Log *log, Buffer_Set *buffers, int test_repitions, void *scratch, int scratch_size, Record_Statistics *stats_out, float font_height, float max_width){ Sample_Machine machine; machine = begin_machine(test_repitions, &scratch, &scratch_size); float *wrap_ys, *wrap_ys2; wrap_ys = (float*)malloc(sizeof(float)*buffers->buffer.line_count); wrap_ys2 = (float*)malloc(sizeof(float)*buffers->buffer.line_count); for (int i = 0; i < test_repitions; ++i){ start(&machine); buffer_measure_wrap_y(&buffers->buffer, wrap_ys, font_height, max_width); machine.samples[i].buffer = stop(&machine); start(&machine); buffer_measure_wrap_y(&buffers->gap_buffer, wrap_ys2, font_height, max_width); machine.samples[i].gap_buffer = stop(&machine); if (i == 0) page_compare((char*)wrap_ys, (char*)wrap_ys2, sizeof(float)*buffers->buffer.line_count); start(&machine); buffer_measure_wrap_y(&buffers->multi_gap_buffer, wrap_ys2, font_height, max_width); machine.samples[i].multi_gap_buffer = stop(&machine); if (i == 0) page_compare((char*)wrap_ys, (char*)wrap_ys2, sizeof(float)*buffers->buffer.line_count); start(&machine); buffer_measure_wrap_y(&buffers->rope_buffer, wrap_ys2, font_height, max_width); machine.samples[i].rope_buffer = stop(&machine); if (i == 0) page_compare((char*)wrap_ys, (char*)wrap_ys2, sizeof(float)*buffers->buffer.line_count); } free(wrap_ys2); end_machine(&machine, stats_out, __FUNCTION__); log_sample_set(log, litstr("measure-wrap-ys"), stats_out, machine.samples, machine.count); return wrap_ys; }
void stream_check_test(Buffer_Set *buffers, void *scratch, int scratch_size){ int i, page_size, size; size = buffer_size(&buffers->buffer); { int size2; size2 = buffer_size(&buffers->gap_buffer); hard_assert_4tech(size == size2); size2 = buffer_size(&buffers->multi_gap_buffer); hard_assert_4tech(size == size2); size2 = buffer_size(&buffers->rope_buffer); hard_assert_4tech(size == size2); } page_size = 1 << 10; char *page_1 = (char*)scratch; char *page_2 = page_1 + page_size; scratch_size -= page_size*2; hard_assert_4tech(scratch_size > 0); for (i = 0; i < size; i += page_size){ int end = i + page_size; if (end > size) end = size; buffer_stringify(&buffers->buffer, i, end, page_1); buffer_stringify(&buffers->gap_buffer, i, end, page_2); page_compare(page_1, page_2, page_size); buffer_stringify(&buffers->multi_gap_buffer, i, end, page_2); page_compare(page_1, page_2, page_size); buffer_stringify(&buffers->rope_buffer, i, end, page_2); page_compare(page_1, page_2, page_size); } for (i = size-1; i > 0; i -= page_size){ int end = i - page_size; if (end < 0) end = 0; buffer_backify(&buffers->buffer, i, end, page_1); buffer_backify(&buffers->gap_buffer, i, end, page_2); page_compare(page_1, page_2, page_size); buffer_backify(&buffers->multi_gap_buffer, i, end, page_2); page_compare(page_1, page_2, page_size); buffer_backify(&buffers->rope_buffer, i, end, page_2); page_compare(page_1, page_2, page_size); } }
void measure_check_test(Buffer_Set *buffers){ int count; count = buffers->buffer.line_count; assert_4tech(count == buffers->buffer.widths_count); assert_4tech(count == buffers->gap_buffer.line_count); assert_4tech(count == buffers->multi_gap_buffer.line_count); assert_4tech(count == buffers->rope_buffer.line_count); assert_4tech(count == buffers->gap_buffer.widths_count); assert_4tech(count == buffers->multi_gap_buffer.widths_count); assert_4tech(count == buffers->rope_buffer.widths_count); page_compare(buffers->buffer.line_starts, buffers->gap_buffer.line_starts, sizeof(int)*count); page_compare(buffers->buffer.line_starts, buffers->multi_gap_buffer.line_starts, sizeof(int)*count); page_compare(buffers->buffer.line_starts, buffers->rope_buffer.line_starts, sizeof(int)*count); page_compare(buffers->buffer.line_widths, buffers->gap_buffer.line_widths, sizeof(float)*count); page_compare(buffers->buffer.line_widths, buffers->multi_gap_buffer.line_widths, sizeof(float)*count); page_compare(buffers->buffer.line_widths, buffers->rope_buffer.line_widths, sizeof(float)*count); }