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

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

load("o2\data\Baseline.mat");
Case1_o2 = Case1;
Case2_o2 = Case2;

load("o3\data\Baseline.mat");
Case1_o3 = Case1;
Case2_o3 = Case2;

load("o7\data\Baseline.mat");
Case1_o7 = Case1;
Case2_o7 = Case2;

load("o9\data\Baseline.mat");
Case1_o9 = Case1;
Case2_o9 = Case2;

wel = [Case1_o2.wel_c; Case1_o2.wel_u; ...
       Case2_o2.wel_c; Case2_o2.wel_u; ...
       Case1_o3.wel_c; Case1_o3.wel_u; ...
       Case2_o3.wel_c; Case2_o3.wel_u; ...
       Case1_o7.wel_c; Case1_o7.wel_u; ...
       Case2_o7.wel_c; Case2_o7.wel_u; ...
       Case1_o9.wel_c; Case1_o9.wel_u; ...
       Case2_o9.wel_c; Case2_o9.wel_u];
Pi = [Case1_o2.Pi_c; Case1_o2.Pi_u; ...
      Case2_o2.Pi_c; Case2_o2.Pi_u; ...
      Case1_o3.Pi_c; Case1_o3.Pi_u; ...
      Case2_o3.Pi_c; Case2_o3.Pi_u; ...
      Case1_o7.Pi_c; Case1_o7.Pi_u; ...
      Case2_o7.Pi_c; Case2_o7.Pi_u; ...
      Case1_o9.Pi_c; Case1_o9.Pi_u; ...
      Case2_o9.Pi_c; Case2_o9.Pi_u];
M = [Case1_o2.M_c; Case1_o2.M_u; ...
     Case2_o2.M_c; Case2_o2.M_u; ...
     Case1_o3.M_c; Case1_o3.M_u; ...
     Case2_o3.M_c; Case2_o3.M_u; ...
     Case1_o7.M_c; Case1_o7.M_u; ...
     Case2_o7.M_c; Case2_o7.M_u; ...
     Case1_o9.M_c; Case1_o9.M_u; ...
     Case2_o9.M_c; Case2_o9.M_u];
w = [Case1_o2.w_c; Case1_o2.w_u; ...
     Case2_o2.w_c; Case2_o2.w_u; ...
     Case1_o3.w_c; Case1_o3.w_u; ...
     Case2_o3.w_c; Case2_o3.w_u; ...
     Case1_o7.w_c; Case1_o7.w_u; ...
     Case2_o7.w_c; Case2_o7.w_u; ...
     Case1_o9.w_c; Case1_o9.w_u; ...
     Case2_o9.w_c; Case2_o9.w_u];
P = [Case1_o2.P_c; Case1_o2.P_u; ...
     Case2_o2.P_c; Case2_o2.P_u; ...
     Case1_o3.P_c; Case1_o3.P_u; ...
     Case2_o3.P_c; Case2_o3.P_u; ...
     Case1_o7.P_c; Case1_o7.P_u; ...
     Case2_o7.P_c; Case2_o7.P_u; ...
     Case1_o9.P_c; Case1_o9.P_u; ...
     Case2_o9.P_c; Case2_o9.P_u];

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

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

%% Replicate Section 4 of the Paper
clear;  clc;  close
load("o2\data\Counterfactual_TariffUnilateral_UC.mat");
Case1_o2_UC = Case1;
Case2_o2_UC = Case2;
Case3_o2_UC = Case3;
Case4_o2_UC = Case4;

load("o2\data\Counterfactual_TariffUnilateral_CU.mat");
Case1_o2_CU = Case1;
Case2_o2_CU = Case2;
Case3_o2_CU = Case3;
Case4_o2_CU = Case4;

load("o3\data\Counterfactual_TariffUnilateral_UC.mat");
Case1_o3_UC = Case1;
Case2_o3_UC = Case2;
Case3_o3_UC = Case3;
Case4_o3_UC = Case4;

load("o3\data\Counterfactual_TariffUnilateral_CU.mat");
Case1_o3_CU = Case1;
Case2_o3_CU = Case2;
Case3_o3_CU = Case3;
Case4_o3_CU = Case4;

load("o7\data\Counterfactual_TariffUnilateral_UC.mat");
Case1_o7_UC = Case1;
Case2_o7_UC = Case2;
Case3_o7_UC = Case3;
Case4_o7_UC = Case4;

load("o7\data\Counterfactual_TariffUnilateral_CU.mat");
Case1_o7_CU = Case1;
Case2_o7_CU = Case2;
Case3_o7_CU = Case3;
Case4_o7_CU = Case4;

load("o9\data\Counterfactual_TariffUnilateral_UC.mat");
Case1_o9_UC = Case1;
Case2_o9_UC = Case2;
Case3_o9_UC = Case3;
Case4_o9_UC = Case4;

load("o9\data\Counterfactual_TariffUnilateral_CU.mat");
Case1_o9_CU = Case1;
Case2_o9_CU = Case2;
Case3_o9_CU = Case3;
Case4_o9_CU = Case4;

opt_o2 = [Case1_o2_CU.t_cu_opt; Case1_o2_UC.t_uc_opt; ...
       Case2_o2_CU.t_cu_opt; Case2_o2_UC.t_uc_opt; ...
       Case3_o2_CU.t_cu_opt; Case3_o2_UC.t_uc_opt; ...
       Case4_o2_CU.t_cu_opt; Case4_o2_UC.t_uc_opt];
wel_o2 = [Case1_o2_CU.wel_c_opt; Case1_o2_UC.wel_u_opt; ...
       Case2_o2_CU.wel_c_opt; Case2_o2_UC.wel_u_opt; ...
       Case3_o2_CU.wel_c_opt; Case3_o2_UC.wel_u_opt; ...
       Case4_o2_CU.wel_c_opt; Case4_o2_UC.wel_u_opt];

opt_o3 = [Case1_o3_CU.t_cu_opt; Case1_o3_UC.t_uc_opt; ...
       Case2_o3_CU.t_cu_opt; Case2_o3_UC.t_uc_opt; ...
       Case3_o3_CU.t_cu_opt; Case3_o3_UC.t_uc_opt; ...
       Case4_o3_CU.t_cu_opt; Case4_o3_UC.t_uc_opt];
wel_o3 = [Case1_o3_CU.wel_c_opt; Case1_o3_UC.wel_u_opt; ...
       Case2_o3_CU.wel_c_opt; Case2_o3_UC.wel_u_opt; ...
       Case3_o3_CU.wel_c_opt; Case3_o3_UC.wel_u_opt; ...
       Case4_o3_CU.wel_c_opt; Case4_o3_UC.wel_u_opt];

opt_o7 = [Case1_o7_CU.t_cu_opt; Case1_o7_UC.t_uc_opt; ...
       Case2_o7_CU.t_cu_opt; Case2_o7_UC.t_uc_opt; ...
       Case3_o7_CU.t_cu_opt; Case3_o7_UC.t_uc_opt; ...
       Case4_o7_CU.t_cu_opt; Case4_o7_UC.t_uc_opt];
wel_o7 = [Case1_o7_CU.wel_c_opt; Case1_o7_UC.wel_u_opt; ...
       Case2_o7_CU.wel_c_opt; Case2_o7_UC.wel_u_opt; ...
       Case3_o7_CU.wel_c_opt; Case3_o7_UC.wel_u_opt; ...
       Case4_o7_CU.wel_c_opt; Case4_o7_UC.wel_u_opt];

opt_o9 = [Case1_o9_CU.t_cu_opt; Case1_o9_UC.t_uc_opt; ...
       Case2_o9_CU.t_cu_opt; Case2_o9_UC.t_uc_opt; ...
       Case3_o9_CU.t_cu_opt; Case3_o9_UC.t_uc_opt; ...
       Case4_o9_CU.t_cu_opt; Case4_o9_UC.t_uc_opt];
wel_o9 = [Case1_o9_CU.wel_c_opt; Case1_o9_UC.wel_u_opt; ...
       Case2_o9_CU.wel_c_opt; Case2_o9_UC.wel_u_opt; ...
       Case3_o9_CU.wel_c_opt; Case3_o9_UC.wel_u_opt; ...
       Case4_o9_CU.wel_c_opt; Case4_o9_UC.wel_u_opt];

result = reshape([round(opt_o2,2),round(wel_o2,2),round(opt_o3,2),round(wel_o3,2),round(opt_o7,2),round(wel_o7,2),round(opt_o9,2),round(wel_o9,2)],[8,8]);
Table2 = array2table(result, 'VariableNames', {'关税_o2', '福利_o2', '关税_o3', '福利_o3', '关税_o7', '福利_o7', '关税_o9', '福利_o9'});
writetable(Table2, '表XIII2.xlsx', 'WriteVariableNames', true);

fprintf('\n=================================================================\n');
fprintf('         表XIII2 稳健性检验：不同加工数据替代弹性下的最优关税与福利\n');
fprintf('=================================================================\n\n');
disp(Table2);

%%
clear;  clc;  close
load("o2\data\Counterfactual_TariffNash.mat");
Case1_o2_Nash = Case1;
Case2_o2_Nash = Case2;
Case3_o2_Nash = Case3;
Case4_o2_Nash = Case4;

load("o3\data\Counterfactual_TariffNash.mat");
Case1_o3_Nash = Case1;
Case2_o3_Nash = Case2;
Case3_o3_Nash = Case3;
Case4_o3_Nash = Case4;

load("o7\data\Counterfactual_TariffNash.mat");
Case1_o7_Nash = Case1;
Case2_o7_Nash = Case2;
Case3_o7_Nash = Case3;
Case4_o7_Nash = Case4;

load("o9\data\Counterfactual_TariffNash.mat");
Case1_o9_Nash = Case1;
Case2_o9_Nash = Case2;
Case3_o9_Nash = Case3;
Case4_o9_Nash = Case4;

opt_o2 = [Case1_o2_Nash.t_cu_opt; Case1_o2_Nash.t_uc_opt; ...
       Case2_o2_Nash.t_cu_opt; Case2_o2_Nash.t_uc_opt; ...
       Case3_o2_Nash.t_cu_opt; Case3_o2_Nash.t_uc_opt; ...
       Case4_o2_Nash.t_cu_opt; Case4_o2_Nash.t_uc_opt];
wel_o2 = [Case1_o2_Nash.wel_c; Case1_o2_Nash.wel_u; ...
       Case2_o2_Nash.wel_c; Case2_o2_Nash.wel_u; ...
       Case3_o2_Nash.wel_c; Case3_o2_Nash.wel_u; ...
       Case4_o2_Nash.wel_c; Case4_o2_Nash.wel_u];

opt_o3 = [Case1_o3_Nash.t_cu_opt; Case1_o3_Nash.t_uc_opt; ...
       Case2_o3_Nash.t_cu_opt; Case2_o3_Nash.t_uc_opt; ...
       Case3_o3_Nash.t_cu_opt; Case3_o3_Nash.t_uc_opt; ...
       Case4_o3_Nash.t_cu_opt; Case4_o3_Nash.t_uc_opt];
wel_o3 = [Case1_o3_Nash.wel_c; Case1_o3_Nash.wel_u; ...
       Case2_o3_Nash.wel_c; Case2_o3_Nash.wel_u; ...
       Case3_o3_Nash.wel_c; Case3_o3_Nash.wel_u; ...
       Case4_o3_Nash.wel_c; Case4_o3_Nash.wel_u];

opt_o7 = [Case1_o7_Nash.t_cu_opt; Case1_o7_Nash.t_uc_opt; ...
       Case2_o7_Nash.t_cu_opt; Case2_o7_Nash.t_uc_opt; ...
       Case3_o7_Nash.t_cu_opt; Case3_o7_Nash.t_uc_opt; ...
       Case4_o7_Nash.t_cu_opt; Case4_o7_Nash.t_uc_opt];
wel_o7 = [Case1_o7_Nash.wel_c; Case1_o7_Nash.wel_u; ...
       Case2_o7_Nash.wel_c; Case2_o7_Nash.wel_u; ...
       Case3_o7_Nash.wel_c; Case3_o7_Nash.wel_u; ...
       Case4_o7_Nash.wel_c; Case4_o7_Nash.wel_u];

opt_o9 = [Case1_o9_Nash.t_cu_opt; Case1_o9_Nash.t_uc_opt; ...
       Case2_o9_Nash.t_cu_opt; Case2_o9_Nash.t_uc_opt; ...
       Case3_o9_Nash.t_cu_opt; Case3_o9_Nash.t_uc_opt; ...
       Case4_o9_Nash.t_cu_opt; Case4_o9_Nash.t_uc_opt];
wel_o9 = [Case1_o9_Nash.wel_c; Case1_o9_Nash.wel_u; ...
       Case2_o9_Nash.wel_c; Case2_o9_Nash.wel_u; ...
       Case3_o9_Nash.wel_c; Case3_o9_Nash.wel_u; ...
       Case4_o9_Nash.wel_c; Case4_o9_Nash.wel_u];

result = reshape([round(opt_o2,2),round(wel_o2,2),round(opt_o3,2),round(wel_o3,2),round(opt_o7,2),round(wel_o7,2),round(opt_o9,2),round(wel_o9,2)],[8,8]);
Table3 = array2table(result, 'VariableNames', {'关税_o2', '福利_o2', '关税_o3', '福利_o3', '关税_o7', '福利_o7', '关税_o9', '福利_o9'});
writetable(Table3, '表XIII3.xlsx', 'WriteVariableNames', true);

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