def test_remove_no_op_split(self):
        """
        Test cases:
        0. No-op split with split_size_or_sections as integer
        1. No-op split with split_size_or_sections as a singleton list
        2. No-op split with split_size > length along split_dim
        3. No-op split with split_dim = -1
        4. Meaningful split
        5. Meaningful split with split_dim = -1
        6. No-op split is a model output
        7. Meaningful split is a model output
        """

        test_cases = (
            # Split is a no-op.
            {
                "split_input_shape": (5,),
                "split_size_or_sections": 5,
                "split_dim": 0,
                "split_is_output": False,
                "should_remove_no_op_split": True,
                "test_name": "test_remove_no_op_split_no_op_0",
            },
            {
                "split_input_shape": (5,),
                "split_size_or_sections": [5],
                "split_dim": -1,
                "split_is_output": False,
                "should_remove_no_op_split": True,
                "test_name": "test_remove_no_op_split_no_op_1",
            },
            {
                "split_input_shape": (2, 3, 4),
                "split_size_or_sections": 10,  # split_size > length along dim=1
                "split_dim": 1,
                "split_is_output": False,
                "should_remove_no_op_split": True,
                "test_name": "test_remove_no_op_split_no_op_2",
            },
            {
                "split_input_shape": (2, 3, 4, 5),
                "split_size_or_sections": [5],
                "split_dim": -1,
                "split_is_output": False,
                "should_remove_no_op_split": True,
                "test_name": "test_remove_no_op_split_no_op_3",
            },
            # Split is meaningful.
            {
                "split_input_shape": (7,),
                "split_size_or_sections": 2,
                "split_dim": 0,
                "split_is_output": False,
                "should_remove_no_op_split": False,
                "test_name": "test_remove_no_op_split_meaningful_4",
            },
            {
                "split_input_shape": (2, 3, 4, 5),
                "split_size_or_sections": [2, 1, 2],
                "split_dim": -1,
                "split_is_output": False,
                "should_remove_no_op_split": False,
                "test_name": "test_remove_no_op_split_meaningful_5",
            },
            # Split is a model output.
            {
                "split_input_shape": (9,),
                "split_size_or_sections": [9],
                "split_dim": 0,
                "split_is_output": True,
                "should_remove_no_op_split": False,
                "test_name": "test_remove_no_op_split_output_6",
            },
            {
                "split_input_shape": (1, 9),
                "split_size_or_sections": [4, 5],
                "split_dim": -1,
                "split_is_output": True,
                "should_remove_no_op_split": False,
                "test_name": "test_remove_no_op_split_output_7",
            },
        )

        for i, test_kwargs in enumerate(test_cases):
            with self.subTest(test_no=i):
                self._test_remove_no_op_split_impl(**test_kwargs)

        Test cases:
        0. No-op split with split_size_or_sections as integer
        1. No-op split with split_size_or_sections as a singleton list
        2. No-op split with split_size > length along split_dim
        3. No-op split with split_dim = -1
        4. Meaningful split
        5. Meaningful split with split_dim = -1
        6. No-op split is a model output
        7. Meaningful split is a model output
        
tests/unittest/compiler/test_remove_no_op_splits.py