fprintf('\n======================Robust_privacy======================');
fprintf('\n======================Robust_privacy======================');
fprintf('\n======================Robust_privacy======================');
fprintf('\n==================================================\n\n\n\n\n\n\n\n\n');


%% Replicate Section 3 of the Paper
clear;  clc;  close

load("zeta2\data\Baseline.mat");
Case1_zeta2 = Case1;
Case2_zeta2 = Case2;
Case3_zeta2 = Case3;
Case4_zeta2 = Case4;

load("zeta10\data\Baseline.mat");
Case1_zeta10 = Case1;
Case2_zeta10 = Case2;
Case3_zeta10 = Case3;
Case4_zeta10 = Case4;

load("zeta100\data\Baseline.mat");
Case1_zeta100 = Case1;
Case2_zeta100 = Case2;
Case3_zeta100 = Case3;
Case4_zeta100 = Case4;

wel = [Case1_zeta2.wel_c; Case1_zeta2.wel_u; ...
       Case2_zeta2.wel_c; Case2_zeta2.wel_u; ...
       Case3_zeta2.wel_c; Case3_zeta2.wel_u; ...
       Case4_zeta2.wel_c; Case4_zeta2.wel_u; ...
       Case1_zeta10.wel_c; Case1_zeta10.wel_u; ...
       Case2_zeta10.wel_c; Case2_zeta10.wel_u; ...
       Case3_zeta10.wel_c; Case3_zeta10.wel_u; ...
       Case4_zeta10.wel_c; Case4_zeta10.wel_u; ...
       Case1_zeta100.wel_c; Case1_zeta100.wel_u; ...
       Case2_zeta100.wel_c; Case2_zeta100.wel_u; ...
       Case3_zeta100.wel_c; Case3_zeta100.wel_u; ...
       Case4_zeta100.wel_c; Case4_zeta100.wel_u];
Pi = [Case1_zeta2.Pi_c; Case1_zeta2.Pi_u; ...
      Case2_zeta2.Pi_c; Case2_zeta2.Pi_u; ...
      Case3_zeta2.Pi_c; Case3_zeta2.Pi_u; ...
      Case4_zeta2.Pi_c; Case4_zeta2.Pi_u; ...
      Case1_zeta10.Pi_c; Case1_zeta10.Pi_u; ...
      Case2_zeta10.Pi_c; Case2_zeta10.Pi_u; ...
      Case3_zeta10.Pi_c; Case3_zeta10.Pi_u; ...
      Case4_zeta10.Pi_c; Case4_zeta10.Pi_u; ...
      Case1_zeta100.Pi_c; Case1_zeta100.Pi_u; ...
      Case2_zeta100.Pi_c; Case2_zeta100.Pi_u; ...
      Case3_zeta100.Pi_c; Case3_zeta100.Pi_u; ...
      Case4_zeta100.Pi_c; Case4_zeta100.Pi_u];
M = [Case1_zeta2.M_c; Case1_zeta2.M_u; ...
     Case2_zeta2.M_c; Case2_zeta2.M_u; ...
     Case3_zeta2.M_c; Case3_zeta2.M_u; ...
     Case4_zeta2.M_c; Case4_zeta2.M_u; ...
     Case1_zeta10.M_c; Case1_zeta10.M_u; ...
     Case2_zeta10.M_c; Case2_zeta10.M_u; ...
     Case3_zeta10.M_c; Case3_zeta10.M_u; ...
     Case4_zeta10.M_c; Case4_zeta10.M_u; ...
     Case1_zeta100.M_c; Case1_zeta100.M_u; ...
     Case2_zeta100.M_c; Case2_zeta100.M_u; ...
     Case3_zeta100.M_c; Case3_zeta100.M_u; ...
     Case4_zeta100.M_c; Case4_zeta100.M_u];
w = [Case1_zeta2.w_c; Case1_zeta2.w_u; ...
     Case2_zeta2.w_c; Case2_zeta2.w_u; ...
     Case3_zeta2.w_c; Case3_zeta2.w_u; ...
     Case4_zeta2.w_c; Case4_zeta2.w_u; ...
     Case1_zeta10.w_c; Case1_zeta10.w_u; ...
     Case2_zeta10.w_c; Case2_zeta10.w_u; ...
     Case3_zeta10.w_c; Case3_zeta10.w_u; ...
     Case4_zeta10.w_c; Case4_zeta10.w_u; ...
     Case1_zeta100.w_c; Case1_zeta100.w_u; ...
     Case2_zeta100.w_c; Case2_zeta100.w_u; ...
     Case3_zeta100.w_c; Case3_zeta100.w_u; ...
     Case4_zeta100.w_c; Case4_zeta100.w_u];
P = [Case1_zeta2.P_c; Case1_zeta2.P_u; ...
     Case2_zeta2.P_c; Case2_zeta2.P_u; ...
     Case3_zeta2.P_c; Case3_zeta2.P_u; ...
     Case4_zeta2.P_c; Case4_zeta2.P_u; ...
     Case1_zeta10.P_c; Case1_zeta10.P_u; ...
     Case2_zeta10.P_c; Case2_zeta10.P_u; ...
     Case3_zeta10.P_c; Case3_zeta10.P_u; ...
     Case4_zeta10.P_c; Case4_zeta10.P_u; ...
     Case1_zeta100.P_c; Case1_zeta100.P_u; ...
     Case2_zeta100.P_c; Case2_zeta100.P_u; ...
     Case3_zeta100.P_c; Case3_zeta100.P_u; ...
     Case4_zeta100.P_c; Case4_zeta100.P_u];

result = reshape([round(wel,2),round(Pi,2),round(M,2),round(w,2),round(P,2)],[24,5]);
Table1 = array2table(result, 'VariableNames', {'福利', '商品利润', '数据利润', '工资', '价格指数'});
writetable(Table1, '表IX1.xlsx', 'WriteVariableNames', true);

fprintf('\n=================================================================\n');
fprintf('         表IX1 不同数据中间商市场结构以及不同数据政策下的福利\n');
fprintf('=================================================================\n\n');
disp(Table1);

%% Replicate Section 4 of the Paper
clear;  clc;  close
load("zeta2\data\Counterfactual_TariffUnilateral_UC.mat");
Case1_zeta2_UC = Case1;
Case2_zeta2_UC = Case2;
Case3_zeta2_UC = Case3;
Case4_zeta2_UC = Case4;

load("zeta2\data\Counterfactual_TariffUnilateral_CU.mat");
Case1_zeta2_CU = Case1;
Case2_zeta2_CU = Case2;
Case3_zeta2_CU = Case3;
Case4_zeta2_CU = Case4;

load("zeta10\data\Counterfactual_TariffUnilateral_UC.mat");
Case1_zeta10_UC = Case1;
Case2_zeta10_UC = Case2;
Case3_zeta10_UC = Case3;
Case4_zeta10_UC = Case4;

load("zeta10\data\Counterfactual_TariffUnilateral_CU.mat");
Case1_zeta10_CU = Case1;
Case2_zeta10_CU = Case2;
Case3_zeta10_CU = Case3;
Case4_zeta10_CU = Case4;

load("zeta100\data\Counterfactual_TariffUnilateral_UC.mat");
Case1_zeta100_UC = Case1;
Case2_zeta100_UC = Case2;
Case3_zeta100_UC = Case3;
Case4_zeta100_UC = Case4;

load("zeta100\data\Counterfactual_TariffUnilateral_CU.mat");
Case1_zeta100_CU = Case1;
Case2_zeta100_CU = Case2;
Case3_zeta100_CU = Case3;
Case4_zeta100_CU = Case4;

opt_zeta2 = [Case1_zeta2_CU.t_cu_opt; Case1_zeta2_UC.t_uc_opt; ...
       Case2_zeta2_CU.t_cu_opt; Case2_zeta2_UC.t_uc_opt; ...
       Case3_zeta2_CU.t_cu_opt; Case3_zeta2_UC.t_uc_opt; ...
       Case4_zeta2_CU.t_cu_opt; Case4_zeta2_UC.t_uc_opt];
wel_zeta2 = [Case1_zeta2_CU.wel_c_opt; Case1_zeta2_UC.wel_u_opt; ...
       Case2_zeta2_CU.wel_c_opt; Case2_zeta2_UC.wel_u_opt; ...
       Case3_zeta2_CU.wel_c_opt; Case3_zeta2_UC.wel_u_opt; ...
       Case4_zeta2_CU.wel_c_opt; Case4_zeta2_UC.wel_u_opt];

opt_zeta10 = [Case1_zeta10_CU.t_cu_opt; Case1_zeta10_UC.t_uc_opt; ...
       Case2_zeta10_CU.t_cu_opt; Case2_zeta10_UC.t_uc_opt; ...
       Case3_zeta10_CU.t_cu_opt; Case3_zeta10_UC.t_uc_opt; ...
       Case4_zeta10_CU.t_cu_opt; Case4_zeta10_UC.t_uc_opt];
wel_zeta10 = [Case1_zeta10_CU.wel_c_opt; Case1_zeta10_UC.wel_u_opt; ...
       Case2_zeta10_CU.wel_c_opt; Case2_zeta10_UC.wel_u_opt; ...
       Case3_zeta10_CU.wel_c_opt; Case3_zeta10_UC.wel_u_opt; ...
       Case4_zeta10_CU.wel_c_opt; Case4_zeta10_UC.wel_u_opt];

opt_zeta100 = [Case1_zeta100_CU.t_cu_opt; Case1_zeta100_UC.t_uc_opt; ...
       Case2_zeta100_CU.t_cu_opt; Case2_zeta100_UC.t_uc_opt; ...
       Case3_zeta100_CU.t_cu_opt; Case3_zeta100_UC.t_uc_opt; ...
       Case4_zeta100_CU.t_cu_opt; Case4_zeta100_UC.t_uc_opt];
wel_zeta100 = [Case1_zeta100_CU.wel_c_opt; Case1_zeta100_UC.wel_u_opt; ...
       Case2_zeta100_CU.wel_c_opt; Case2_zeta100_UC.wel_u_opt; ...
       Case3_zeta100_CU.wel_c_opt; Case3_zeta100_UC.wel_u_opt; ...
       Case4_zeta100_CU.wel_c_opt; Case4_zeta100_UC.wel_u_opt];

result = reshape([round(opt_zeta2,2),round(wel_zeta2,2),round(opt_zeta10,2),round(wel_zeta10,2),round(opt_zeta100,2),round(wel_zeta100,2)],[8,6]);
Table2 = array2table(result, 'VariableNames', {'关税_zeta2', '福利_zeta2', '关税_zeta10', '福利_zeta10', '关税_zeta100', '福利_zeta100'});
writetable(Table2, '表IX2.xlsx', 'WriteVariableNames', true);

fprintf('\n=================================================================\n');
fprintf('         表IX2 稳健性检验：不同原始数据权重下的最优关税与福利\n');
fprintf('=================================================================\n\n');
disp(Table2);

%%
clear;  clc;  close
load("zeta2\data\Counterfactual_TariffNash.mat");
Case1_zeta2_Nash = Case1;
Case2_zeta2_Nash = Case2;
Case3_zeta2_Nash = Case3;
Case4_zeta2_Nash = Case4;

load("zeta10\data\Counterfactual_TariffNash.mat");
Case1_zeta10_Nash = Case1;
Case2_zeta10_Nash = Case2;
Case3_zeta10_Nash = Case3;
Case4_zeta10_Nash = Case4;

load("zeta100\data\Counterfactual_TariffNash.mat");
Case1_zeta100_Nash = Case1;
Case2_zeta100_Nash = Case2;
Case3_zeta100_Nash = Case3;
Case4_zeta100_Nash = Case4;


opt_zeta2 = [Case1_zeta2_Nash.t_cu_opt; Case1_zeta2_Nash.t_uc_opt; ...
       Case2_zeta2_Nash.t_cu_opt; Case2_zeta2_Nash.t_uc_opt; ...
       Case3_zeta2_Nash.t_cu_opt; Case3_zeta2_Nash.t_uc_opt; ...
       Case4_zeta2_Nash.t_cu_opt; Case4_zeta2_Nash.t_uc_opt];
wel_zeta2 = [Case1_zeta2_Nash.wel_c; Case1_zeta2_Nash.wel_u; ...
       Case2_zeta2_Nash.wel_c; Case2_zeta2_Nash.wel_u; ...
       Case3_zeta2_Nash.wel_c; Case3_zeta2_Nash.wel_u; ...
       Case4_zeta2_Nash.wel_c; Case4_zeta2_Nash.wel_u];

opt_zeta10 = [Case1_zeta10_Nash.t_cu_opt; Case1_zeta10_Nash.t_uc_opt; ...
       Case2_zeta10_Nash.t_cu_opt; Case2_zeta10_Nash.t_uc_opt; ...
       Case3_zeta10_Nash.t_cu_opt; Case3_zeta10_Nash.t_uc_opt; ...
       Case4_zeta10_Nash.t_cu_opt; Case4_zeta10_Nash.t_uc_opt];
wel_zeta10 = [Case1_zeta10_Nash.wel_c; Case1_zeta10_Nash.wel_u; ...
       Case2_zeta10_Nash.wel_c; Case2_zeta10_Nash.wel_u; ...
       Case3_zeta10_Nash.wel_c; Case3_zeta10_Nash.wel_u; ...
       Case4_zeta10_Nash.wel_c; Case4_zeta10_Nash.wel_u];

opt_zeta100 = [Case1_zeta100_Nash.t_cu_opt; Case1_zeta100_Nash.t_uc_opt; ...
       Case2_zeta100_Nash.t_cu_opt; Case2_zeta100_Nash.t_uc_opt; ...
       Case3_zeta100_Nash.t_cu_opt; Case3_zeta100_Nash.t_uc_opt; ...
       Case4_zeta100_Nash.t_cu_opt; Case4_zeta100_Nash.t_uc_opt];
wel_zeta100 = [Case1_zeta100_Nash.wel_c; Case1_zeta100_Nash.wel_u; ...
       Case2_zeta100_Nash.wel_c; Case2_zeta100_Nash.wel_u; ...
       Case3_zeta100_Nash.wel_c; Case3_zeta100_Nash.wel_u; ...
       Case4_zeta100_Nash.wel_c; Case4_zeta100_Nash.wel_u];


result = reshape([round(opt_zeta2,2),round(wel_zeta2,2),round(opt_zeta10,2),round(wel_zeta10,2),round(opt_zeta100,2),round(wel_zeta100,2)],[8,6]);
Table3 = array2table(result, 'VariableNames', {'关税_zeta2', '福利_zeta2', '关税_zeta10', '福利_zeta10', '关税_zeta100', '福利_zeta100'});
writetable(Table3, '表IX3.xlsx', 'WriteVariableNames', true);

fprintf('\n=================================================================\n');
fprintf('         表IX3 不同数据中间商市场结构以及不同数据政策下的纳什关税与福利\n');
fprintf('=================================================================\n\n');
disp(Table3);
