def METHOD_NAME():
    # axes, axis_names, layout, shapes, expected_out_shapes, expected_layout
    args = [
        ([1], None, "XYZ", [(300, 1, 200), (10, 1, 10)], [(300, 200), (10, 10)], "XZ"),
        ([1, 2], None, "XYZ", [(300, 1, 1), (10, 1, 1)], [(300,), (10,)], "X"),
        ([0, 2], None, "XYZ", [(1, 300, 1), (1, 10, 1)], [(300,), (10,)], "Y"),
        ([0, 2], None, "ABCD", [(1, 1, 1, 1), (1, 1, 1, 1)], [(1, 1,), (1, 1)], "BD"),
        (None, "Z", "XYZ", [(300, 1, 1), (10, 1, 1)], [(300, 1), (10, 1)], "XY"),
        (None, "ZY", "XYZ", [(300, 1, 1), (10, 1, 1)], [(300,), (10,)], "X"),
        ([0], None, "X", [(1)], [()], ""),
        ([1], None, "XYZ", [(100, 0, 0)], [(100, 0)], "XZ"),
        (None, "Z", "XYZ", [(100, 0, 0)], [(100, 0)], "XY"),
        (None, "X", "XYZ", [(100, 0, 0)], [(0, 0)], "YZ"),
    ]
    for axes, axis_names, layout, shapes, expected_out_shapes, expected_layout in args:
        yield _testimpl_squeeze, axes, axis_names, layout, \
              shapes, expected_out_shapes, expected_layout