def expected_structure_based_at(
         self, root_path: pathlib.Path) -> Assertion[TestSuiteHierarchy]:
     dir_with_sub_suite = Path('main-sub-dir') / 'suite-sub-dir'
     return equals_test_suite(
         TestSuiteHierarchy(
             self.root_suite_based_at(root_path),
             [],
             T_C_H_S,
             [
                 TestSuiteHierarchy(
                     dir_with_sub_suite / 'sub.suite',
                     [self.root_suite_based_at(root_path)],
                     T_C_H_S,
                     [],
                     [
                         test_case_reference_of_source_file(
                             dir_with_sub_suite / 'sub.case')
                     ],
                 ),
             ],
             [
                 test_case_reference_of_source_file(
                     Path('main-sub-dir') / 'main.case')
             ],
         ))
 def expected_structure_based_at(
         self, root_path: pathlib.Path) -> Assertion[TestSuiteHierarchy]:
     return equals_test_suite(
         TestSuiteHierarchy(
             self.root_suite_based_at(root_path), [], T_C_H_S, [
                 TestSuiteHierarchy(Path('local.suite'),
                                    [self.root_suite_based_at(root_path)],
                                    T_C_H_S, [], [
                                        test_case_reference_of_source_file(
                                            Path('from-local-suite.case'))
                                    ]),
                 TestSuiteHierarchy(
                     Path('sub') / 'sub.suite',
                     [self.root_suite_based_at(root_path)], T_C_H_S, [
                         TestSuiteHierarchy(
                             Path('sub') / 'sub-sub.suite', [
                                 self.root_suite_based_at(root_path),
                                 Path('sub') / 'sub.suite'
                             ], T_C_H_S, [], [
                                 test_case_reference_of_source_file(
                                     Path('sub') / 'sub-sub.case')
                             ])
                     ], [
                         test_case_reference_of_source_file(
                             Path('sub') / 'sub.case')
                     ]),
             ], [
                 test_case_reference_of_source_file(
                     Path('from-main-suite.case'))
             ]))
 def expected_structure_based_at(self, root_path: pathlib.Path) -> ValueAssertion[TestSuiteHierarchy]:
     return equals_test_suite(TestSuiteHierarchy(
         self.root_suite_based_at(root_path),
         [],
         T_C_H_S,
         [
             TestSuiteHierarchy(
                 Path('local.suite'),
                 [self.root_suite_based_at(root_path)],
                 T_C_H_S,
                 [],
                 [test_case_reference_of_source_file(Path('from-local-suite.case'))]),
             TestSuiteHierarchy(
                 Path('sub') / 'sub.suite',
                 [self.root_suite_based_at(root_path)],
                 T_C_H_S,
                 [TestSuiteHierarchy(
                     Path('sub') / 'sub-sub.suite',
                     [self.root_suite_based_at(root_path), Path('sub') / 'sub.suite'],
                     T_C_H_S,
                     [],
                     [test_case_reference_of_source_file(Path('sub') / 'sub-sub.case')]
                 )],
                 [test_case_reference_of_source_file(Path('sub') / 'sub.case')]),
         ],
         [test_case_reference_of_source_file(Path('from-main-suite.case'))]
     ))
 def expected_structure_based_at(
         self, root_path: pathlib.Path) -> Assertion[TestSuiteHierarchy]:
     return equals_test_suite(
         TestSuiteHierarchy(self.root_suite_based_at(root_path), [],
                            T_C_H_S, [], [
                                test_case_reference_of_source_file(
                                    Path('case-with-invalid-content.case')),
                            ]))
 def expected_structure_based_at(
         self, root_path: pathlib.Path) -> Assertion[TestSuiteHierarchy]:
     return equals_test_suite(
         TestSuiteHierarchy(
             self.root_suite_based_at(root_path), [], T_C_H_S, [], [
                 test_case_reference_of_source_file(Path('1.case')),
                 test_case_reference_of_source_file(Path('sub') / '2.case')
             ]))
 def expected_structure_based_at(self, root_path: pathlib.Path) -> ValueAssertion[TestSuiteHierarchy]:
     return equals_test_suite(TestSuiteHierarchy(
         self.root_suite_based_at(root_path),
         [],
         T_C_H_S,
         [],
         [test_case_reference_of_source_file(Path('main-sub-dir') / '..' / 'main.case')],
     ))
 def expected_structure_based_at(self, root_path: pathlib.Path) -> ValueAssertion[TestSuiteHierarchy]:
     return equals_test_suite(TestSuiteHierarchy(
         self.root_suite_based_at(root_path),
         [],
         T_C_H_S,
         [],
         [
             test_case_reference_of_source_file(Path('case-with-invalid-content.case')),
         ]))
 def expected_structure_based_at(self, root_path: pathlib.Path) -> ValueAssertion[TestSuiteHierarchy]:
     return equals_test_suite(TestSuiteHierarchy(
         self.root_suite_based_at(root_path),
         [],
         T_C_H_S,
         [
             TestSuiteHierarchy(root_path / '1.suite',
                                [self.root_suite_based_at(root_path)],
                                T_C_H_S,
                                [], []),
         ],
         [
             test_case_reference_of_source_file(root_path / '1.case'),
         ],
     ))
 def expected_structure_based_at(
         self, root_path: pathlib.Path) -> Assertion[TestSuiteHierarchy]:
     return equals_test_suite(
         TestSuiteHierarchy(
             self.root_suite_based_at(root_path),
             [],
             T_C_H_S,
             [
                 TestSuiteHierarchy(root_path / '1.suite',
                                    [self.root_suite_based_at(root_path)],
                                    T_C_H_S, [], []),
             ],
             [
                 test_case_reference_of_source_file(root_path / '1.case'),
             ],
         ))
 def expected_structure_based_at(
         self, root_path: pathlib.Path) -> Assertion[TestSuiteHierarchy]:
     return equals_test_suite(
         TestSuiteHierarchy(
             self.root_suite_based_at(root_path),
             [],
             T_C_H_S,
             [
                 TestSuiteHierarchy(Path('1.suite'),
                                    [self.root_suite_based_at(root_path)],
                                    T_C_H_S, [], []),
                 TestSuiteHierarchy(
                     Path('sub') / '2.suite',
                     [self.root_suite_based_at(root_path)], T_C_H_S, [], [])
             ],
             [],
         ))
 def expected_structure_based_at(self, root_path: pathlib.Path) -> ValueAssertion[TestSuiteHierarchy]:
     return equals_test_suite(TestSuiteHierarchy(
         self.root_suite_based_at(root_path),
         [],
         T_C_H_S,
         [
             TestSuiteHierarchy(
                 Path('1.suite'), [self.root_suite_based_at(root_path)],
                 T_C_H_S,
                 [], []),
             TestSuiteHierarchy(
                 Path('sub') / '2.suite', [self.root_suite_based_at(root_path)],
                 T_C_H_S,
                 [], [])
         ],
         [],
     ))
 def expected_structure_based_at(self, root_path: pathlib.Path) -> ValueAssertion[TestSuiteHierarchy]:
     dir_with_sub_suite = Path('main-sub-dir') / 'suite-sub-dir'
     return equals_test_suite(TestSuiteHierarchy(
         self.root_suite_based_at(root_path),
         [],
         T_C_H_S,
         [
             TestSuiteHierarchy(
                 dir_with_sub_suite / 'sub.suite',
                 [self.root_suite_based_at(root_path)],
                 T_C_H_S,
                 [],
                 [test_case_reference_of_source_file(dir_with_sub_suite / 'sub.case')],
             ),
         ],
         [],
     ))