function [ result ] = eval_all( Outputs,test_target,osr_Labels,osr_Pre_Labels)
%    Syntax
%
%       [ result ] = eval_all( Outputs,test_target,osr_Labels,osr_Pre_Labels)
%
%    Description
%
%      eval_all takes,
%           Outputs          - The output of the ith testing instance on the jth class is stored in Outputs(j,i)
%           test_target      - A QxM2 array, if the ith testing instance belongs to the jth class, test_target(j,i) equals +1, otherwise test_target(j,i) equals -1
%           osr_Labels       - An 1xM2 array, if the ith testing instance has unknown labels, osr_Labels(i,1) equals 0, otherwise osr_Labels(i,1) equals 1
%           osr_Pre_Labels   - If the ith testing instance has unknown labels, then osr_Pre_Labels(1,i) is 0, otherwise osr_Pre_Labels(1,i) is 1

%      and returns,
%           result           - A struct variable with experimental results on testing data.

   result.RankingLoss = Ranking_loss(Outputs,test_target);
   result.Coverage = coverage(Outputs,test_target);
   result.OneError = One_error(Outputs,test_target);
   result.macroAUC= MacroAUC(Outputs,test_target);
   result.AvgPrecision = Average_precision(Outputs,test_target);
   [~, ~, result.F_measure] = F1measure(osr_Labels, osr_Pre_Labels);
    
end

