def _test_sequential_execute(self, test_dir):
        # Parse test pattern from test files.
        tests = TestPatterns(test_dir, self.logger)
        if not tests:
            self.logger.warning(NO_TEST_FILE)
            self._test_end()

        test_report = {}
        self.logger.info('--- Test start ---')
        test_keys = list(tests.keys())
        test_keys.sort()
        for file_name in test_keys:
            report = self._test_file_execute(tests[file_name])
            for result, descriptions in report.items():
                test_report.setdefault(result, [])
                test_report[result].extend(descriptions)
        self._test_end(msg='---  Test end  ---', report=test_report)
This is called once when the plot is created to set up all the
dataset/ETHPy150Open osrg/ryu/ryu/tests/switch/tester.py/OfTester._test_sequential_execute--crossover with--dataset/ETHPy150Open ejeschke/ginga/ginga/mplw/transform.py/GingaAxes._set_lim_and_transforms