def video_based_model_testing(test_skeleton_information: pd.DataFrame, current_model: sklearn):
    'Tests performance of the currently trained model on the validation or testing sets, where the performance is\n    evaluated per video / file, instead of evaluating per frame.\n\n        Args:\n            test_skeleton_information: Pandas dataframe which contains skeleton point information for all actions,\n                                       subject_ids, and takes in the validation or testing sets.\n            current_model: Scikit-learn model that is currently being trained and tested.\n\n        Returns:\n            A tuple contains the target and predicted action for each video in the validation / testing set.\n    '
    test_data_names = np.unique(test_skeleton_information['data_name'])
    test_target_data = []
    test_predicted_data = []
    for i in range(len(test_data_names)):
        current_data_name_skeleton_information = test_skeleton_information[(test_skeleton_information['data_name'] == test_data_names[i])]
        (test_skeleton_input_data, test_skeleton_target_data) = split_data_input_target(current_data_name_skeleton_information)
        test_skeleton_predicted_data = list(current_model.predict(test_skeleton_input_data))
        test_target_data.append(max(current_data_name_skeleton_information['action']))
        test_predicted_data.append(max(test_skeleton_predicted_data, key=test_skeleton_predicted_data.count))
    return (np.array(test_target_data), np.array(test_predicted_data))
Tests performance of the currently trained model on the validation or testing sets, where the performance is
evaluated per video / file, instead of evaluating per frame.

    Args:
        test_skeleton_information: Pandas dataframe which contains skeleton point information for all actions,
                                   subject_ids, and takes in the validation or testing sets.
        current_model: Scikit-learn model that is currently being trained and tested.

    Returns:
        A tuple contains the target and predicted action for each video in the validation / testing set.
def video_based_model_testing(test_skeleton_information: pd.DataFrame, current_model: sklearn):
    'Tests performance of the currently trained model on the validation or testing sets, where the performance is\n    evaluated per video / file, instead of evaluating per frame.\n\n        Args:\n            test_skeleton_information: Pandas dataframe which contains skeleton point information for all actions,\n                                       subject_ids, and takes in the validation or testing sets.\n            current_model: Scikit-learn model that is currently being trained and tested.\n\n        Returns:\n            A tuple contains the target and predicted action for each video in the validation / testing set.\n    '
    test_data_names = np.unique(test_skeleton_information['data_name'])
    test_target_data = []
    test_predicted_data = []
    for i in range(len(test_data_names)):
        current_data_name_skeleton_information = test_skeleton_information[(test_skeleton_information['data_name'] == test_data_names[i])]
        (test_skeleton_input_data, test_skeleton_target_data) = split_data_input_target(current_data_name_skeleton_information)
        test_skeleton_predicted_data = list(current_model.predict(test_skeleton_input_data))
        test_target_data.append(max(current_data_name_skeleton_information['action']))
        test_predicted_data.append(max(test_skeleton_predicted_data, key=test_skeleton_predicted_data.count))
    return (np.array(test_target_data), np.array(test_predicted_data))