async def METHOD_NAME(
    widget,
    probe,
    content1,
    content1_probe,
    content2,
    content2_probe,
):
    """Splitview direction can be changed"""
    two_borders = probe.border_size * 2
    def assert_full_width():
        expected = approx(probe.width - two_borders, abs=1)
        assert content1_probe.width == expected
        assert content2_probe.width == expected
    def assert_full_height():
        expected = approx(probe.height - two_borders, abs=1)
        assert content1_probe.height == expected
        assert content2_probe.height == expected
    def assert_split_width(flex1, flex2):
        total = flex1 + flex2
        assert content1_probe.width == approx(probe.width * flex1 / total, abs=20)
        assert content2_probe.width == approx(probe.width * flex2 / total, abs=20)
    def assert_split_height(flex1, flex2):
        total = flex1 + flex2
        assert content1_probe.height == approx(probe.height * flex1 / total, abs=20)
        assert content2_probe.height == approx(probe.height * flex2 / total, abs=20)
    assert_full_height()
    assert_split_width(1, 1)
    widget.direction = Direction.HORIZONTAL
    await probe.wait_for_split()
    await probe.redraw("Split should now be horizontal")
    assert_full_width()
    if probe.direction_change_preserves_position:
        assert_split_height(1, 1)
    widget.content = [(content1, 3), (content2, 1)]
    await probe.wait_for_split()
    await probe.redraw("Split should be a horizontal 75:25 split")
    assert_full_width()
    assert_split_height(3, 1)
    widget.direction = Direction.VERTICAL
    await probe.wait_for_split()
    await probe.redraw("Split should now be vertical again")
    assert_full_height()
    if probe.direction_change_preserves_position:
        assert_split_width(3, 1)