diff --git a/test/fixtures/page_generation/page.py b/test/fixtures/page_generation/page.py index 7fdc36d..9ac1615 100644 --- a/test/fixtures/page_generation/page.py +++ b/test/fixtures/page_generation/page.py @@ -460,13 +460,13 @@ class RandomContentRectangle(ContentRectangle): class Size(Enum): - SMALL = 100 - MEDIUM = 500 - LARGE = 2500 + SMALL = 1000 + MEDIUM = 5000 + LARGE = 10000 def get_size_class(rectangle: Rectangle): - size = sqrt(area(rectangle)) + size = get_size(area(rectangle)) if size < Size.SMALL.value: return Size.SMALL elif size < Size.LARGE.value: @@ -475,6 +475,11 @@ def get_size_class(rectangle: Rectangle): return Size.LARGE +def get_size(rectangle: Rectangle): + size = sqrt(area(rectangle)) + return size + + class RecursiveRandomTable(RandomContentRectangle): def __init__(self, x1, y1, x2, y2, seed=None, border_width=3): super().__init__(x1, y1, x2, y2, seed=seed) @@ -495,21 +500,33 @@ class RecursiveRandomTable(RandomContentRectangle): def generate_cells_with_content(self): for cell in self.generate_table(): self.draw_single_cell_borders(cell) - inner_region = cell # shrink_rectangle(cell, 0.1) - choice = random.choice(["text", "plot", "recurse", "plain_table"]) - size_class = get_size_class(inner_region) + def inner(cell): - if choice == "text" and size_class is Size.SMALL: - cell.content = generate_random_text_block(inner_region, n_sentences=1).content - elif choice == "plot" and size_class in (Size.MEDIUM, Size.LARGE): - cell.content = generate_random_plot(inner_region).content - elif choice == "plain_table" and size_class in (Size.MEDIUM, Size.LARGE): - cell.content = generate_random_table(inner_region).content - elif choice == "recurse" and size_class is Size.LARGE: - cell.content = generate_recursive_random_table(inner_region, border_width=0).content - else: # Leave blank - pass + inner_region = shrink_rectangle(cell, 0.1) + choice = random.choice(["text", "plot", "recurse", "plain_table"]) + size = get_size(inner_region) + + if size <= Size.LARGE.value: + if choice == "recurse": + return generate_recursive_random_table(cell, border_width=0) + elif choice == "plot" and is_square_like(cell): + return generate_random_plot(cell) + else: + return generate_random_table(cell) + elif size <= Size.MEDIUM.value: + if choice == "plain_table": + return generate_random_table(cell) + elif choice == "text": + return generate_random_text_block(inner_region) + else: + return generate_random_text_block(inner_region) + elif size <= Size.SMALL.value: + if choice == "text": + return generate_random_text_block(inner_region) + return cell + + cell.content = inner(cell).content assert cell.content.mode == "RGBA"