def METHOD_NAME(cluster, dirname, weekly):
    # Run LBANN experiment
    experiment_output = test_func(cluster, dirname, weekly)
    # Parse LBANN log file
    train_accuracy = None
    test_accuracy = None
    mini_batch_times = []
    with open(experiment_output['stdout_log_file']) as f:
        for line in f:
            match = re.search('training epoch [0-9]+ accuracy : ([0-9.]+)%', line)
            if match:
                train_accuracy = float(match.group(1))
            match = re.search('test accuracy : ([0-9.]+)%', line)
            if match:
                test_accuracy = float(match.group(1))
            match = re.search('training epoch [0-9]+ mini-batch time statistics : ([0-9.]+)s mean', line)
            if match:
                mini_batch_times.append(float(match.group(1)))
    # Check if training accuracy is within expected range
    assert ((train_accuracy > expected_train_accuracy_range[0]
             and train_accuracy < expected_train_accuracy_range[1])), \
            f"train accuracy {train_accuracy:.3f} is outside expected range " + \
            f"[{expected_train_accuracy_range[0]:.3f},{expected_train_accuracy_range[1]:.3f}]"
    # Check if testing accuracy is within expected range
    assert ((test_accuracy > expected_test_accuracy_range[0]
             and test_accuracy < expected_test_accuracy_range[1])), \
            f"test accuracy {test_accuracy:.3f} is outside expected range " + \
            f"[{expected_test_accuracy_range[0]:.3f},{expected_test_accuracy_range[1]:.3f}]"
    # Check if mini-batch time is within expected range
    # Note: Skip first epoch since its runtime is usually an outlier
    mini_batch_times = mini_batch_times[1:]
    mini_batch_time = sum(mini_batch_times) / len(mini_batch_times)
    min_expected_mini_batch_time = 0.75 * expected_mini_batch_times[cluster]
    max_expected_mini_batch_time = 1.25 * expected_mini_batch_times[cluster]
    if (mini_batch_time < min_expected_mini_batch_time or
        mini_batch_time > max_expected_mini_batch_time):
        warnings.warn(f'average mini-batch time {mini_batch_time:.3f} is outside expected range ' +
                      f'[{min_expected_mini_batch_time:.3f}, {max_expected_mini_batch_time:.3f}]', UserWarning)