def METHOD_NAME(self):
    train_configs = [pathjoin(_data_dir, "config_fl_train.json"), pathjoin(_data_dir, "multi_gpu_train.json")]
    eval_configs = [
        pathjoin(_data_dir, "config_fl_train.json"),
        pathjoin(_data_dir, "config_fl_evaluate.json"),
        pathjoin(_data_dir, "multi_gpu_evaluate.json"),
    ]
    train_workflow = ConfigWorkflow(config_file=train_configs, workflow_type="train", logging_file=_logging_file)
    # simulate the case that this application has specific requirements for a bundle workflow
    train_workflow.add_property(name="loader", required=True, config_id="train#training_transforms#0", desc="NA")
    # initialize algo
    algo = MonaiAlgo(
        bundle_root=_data_dir,
        train_workflow=ConfigWorkflow(config_file=train_configs, workflow_type="train", logging_file=_logging_file),
        eval_workflow=ConfigWorkflow(config_file=eval_configs, workflow_type="train", logging_file=_logging_file),
        config_filters_filename=pathjoin(_root_dir, "testing_data", "config_fl_filters.json"),
    )
    algo.initialize(extra={ExtraItems.CLIENT_NAME: "test_fl"})
    self.assertTrue(dist.get_rank() in (0, 1))
    # initialize model
    parser = ConfigParser()
    parser.read_config(train_configs)
    parser.parse()
    network = parser.get_parsed_content("network")
    data = ExchangeObject(weights=get_state_dict(network))
    # test train
    for i in range(2):
        print(f"Testing round {i+1} of {2}...")
        # test evaluate
        metric_eo = algo.evaluate(data=data, extra={})
        self.assertIsInstance(metric_eo, ExchangeObject)
        metric = metric_eo.metrics
        self.assertIsInstance(metric["accuracy"], float)
        # test train
        algo.train(data=data, extra={})
        weights_eo = algo.get_weights()
        self.assertIsInstance(weights_eo, ExchangeObject)
        self.assertTrue(weights_eo.is_valid_weights())
        self.assertIsInstance(weights_eo.weights, dict)
        self.assertTrue(len(weights_eo.weights) > 0)