def METHOD_NAME(self, paneller_mock):
    # Make a pre-cut blanket that's just two quarter-circles and
    # cook up some panel coordinates to cut into the two faces with.
    # We're testing that the panelling is called, and the resulting
    # coordinates are used to cut into the inboard/outboard
    # silhouettes. We check this using the expected areas of the
    # newly-cut shapes.
    # There's a fair bit of mocking going on in this test. Ideally,
    # we'd be passing a fake PanellingDesigner using dependency
    # injection. But, because the PanellingDesigner takes its
    # boundary in the constructor, and the blanket boundary is cut
    # within the BlanketDesigner, we can't initialise the
    # PanellingDesigner first. This probably speaks to a bit of a
    # design issue.
    blanket = make_simple_blanket()
    d = 3 * np.sqrt(2) / 2
    # fmt: off
    ib_panel_coords = np.array([
        [2, 2, 5 - d, 8 - 2 * d, 5, 2],
        [-1.5, 2 * d - 4.5, d - 1.5, 1.5, 1.5, -1.5],
    ])
    ob_panel_coords = np.array([
        [9, 9, 6 + d, 3 + 2 * d, 6],
        [-1.5, 2 * d - 4.5, d - 1.5, 1.5, 1.5],
    ])
    # fmt: on
    paneller_mock.return_value.run.side_effect = [ib_panel_coords, ob_panel_coords]
    r_inner_cut = 3.5
    cut_angle = 3
    designer = BlanketDesigner(
        self.params,
        self.boundary,
        self.silhouette,
        r_inner_cut=r_inner_cut,
        cut_angle=cut_angle,
    )
    with mock.patch.object(designer, "segment_blanket") as sb_mock:
        sb_mock.return_value = blanket
        ib, ob = designer.run()
    # These areas were (painstakingly) worked out by hand
    panel_trapezium_area = 9 / 2 * (4 * np.sqrt(2) - 5)
    circle_segment_area = 9 / 2 * (np.pi / 2 - 1)
    area_removed = panel_trapezium_area - circle_segment_area
    assert ib.area == pytest.approx(blanket.inboard.area - area_removed)
    assert ob.area == pytest.approx(blanket.outboard.area - area_removed)
    assert ib.center_of_mass[0] < ob.center_of_mass[0]