Tweak content selecton logic
This commit is contained in:
parent
9c7c5e315f
commit
5e51fd1d10
51
test/fixtures/page_generation/page.py
vendored
51
test/fixtures/page_generation/page.py
vendored
@ -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"
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user