Refactoring
This commit is contained in:
parent
3772ca021a
commit
c5ba489931
19
test/fixtures/page_generation/page.py
vendored
19
test/fixtures/page_generation/page.py
vendored
@ -1199,6 +1199,10 @@ class PagePartitioner(abc.ABC):
|
||||
def generate_content_boxes(self, box: Rectangle, depth=0):
|
||||
raise NotImplementedError
|
||||
|
||||
@abc.abstractmethod
|
||||
def generate_child_boxes(self, box: Rectangle) -> Tuple[Rectangle, Rectangle]:
|
||||
pass
|
||||
|
||||
def recurse(self, depth):
|
||||
return random.random() <= self.recursion_probability(depth)
|
||||
|
||||
@ -1214,20 +1218,19 @@ class RandomPagePartitioner(PagePartitioner):
|
||||
if depth >= self.max_recursion_depth:
|
||||
yield box
|
||||
else:
|
||||
child_boxes = generate_random_child_boxes(box, self.recursive_margin_percentage)
|
||||
child_boxes = self.generate_child_boxes(box)
|
||||
if self.recurse(depth):
|
||||
yield from (self.generate_content_boxes(b, depth + 1) for b in child_boxes)
|
||||
else:
|
||||
yield child_boxes
|
||||
|
||||
def generate_child_boxes(self, box: Rectangle) -> Tuple[Rectangle, Rectangle]:
|
||||
axis = random.choice(["x", "y"])
|
||||
|
||||
def generate_random_child_boxes(box: Rectangle, margin_percentage) -> Tuple[Rectangle, Rectangle]:
|
||||
axis = random.choice(["x", "y"])
|
||||
|
||||
edge_anchor_point, edge_length = (box.x1, box.width) if axis == "x" else (box.y1, box.height)
|
||||
split_coordinate = random.uniform(0.3, 0.7) * edge_length + edge_anchor_point
|
||||
child_boxes = get_child_boxes(box, split_coordinate, axis, margin_percentage)
|
||||
return child_boxes
|
||||
edge_anchor_point, edge_length = (box.x1, box.width) if axis == "x" else (box.y1, box.height)
|
||||
split_coordinate = random.uniform(0.3, 0.7) * edge_length + edge_anchor_point
|
||||
child_boxes = get_child_boxes(box, split_coordinate, axis, self.recursive_margin_percentage)
|
||||
return child_boxes
|
||||
|
||||
|
||||
def get_child_boxes(box: Rectangle, split_coordinate, axis, margin_percentage) -> Tuple[Rectangle, Rectangle]:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user