diff --git a/requirements.txt b/requirements.txt
index 0027d64ad7389589b76fc119c5484676e7c085a8..7ebba3793d027b821f20aea532311f0da02c287d 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,6 +1,6 @@
 STEAM-materials~=2024.7.1
 numpy==1.26.4
-pandas==1.5.0
+pandas==2.2.0
 wget==3.2
 pytest==7.1.3
 gmsh==4.11.1
diff --git a/tests/getdp/getdp_test_win.py b/tests/getdp/getdp_test_win.py
index 54f8fcf3333963cc31679c7fded5e4ea6cd34b11..55a47fbd21ee86ee0b63e8fb756f548b053627e1 100644
--- a/tests/getdp/getdp_test_win.py
+++ b/tests/getdp/getdp_test_win.py
@@ -74,8 +74,10 @@ def call_getdp_function(input_dict, model_name, cerngetdp_path, pro_template_pat
 
     pro_file = template_pro_file(pro_template_path, model_name, input_dict, outputs_folder_pro)
 
-    subprocess.run([getdp_path, pro_file, "-solve", "#1", "-pos", "#1", "-v", "0", "-msh", os.path.join(outputs_folder_msh, f"{model_name}.msh"), "-name", os.path.join(outputs_folder_txt, input_dict['c_function_name'])])
+    status = subprocess.run([getdp_path, pro_file, "-solve", "#1", "-pos", "#1", "-v", "0", "-msh", os.path.join(outputs_folder_msh, f"{model_name}.msh"), "-name", os.path.join(outputs_folder_txt, input_dict['c_function_name'])])
 
-    output_file_path = os.path.join(outputs_folder_txt, f"{input_dict['function_name']}.txt")
-
-    return read_output_file(output_file_path)
+    if status.returncode == 0:
+        output_file_path = os.path.join(outputs_folder_txt, f"{input_dict['function_name']}.txt")
+        return read_output_file(output_file_path)
+    else:
+        return None
diff --git a/tests/getdp/input_test.csv b/tests/getdp/input_test.csv
index eeac535baec03a0d00ab5ae51bfd856a1e531267..174c95265657c2827583157b5bd174a9fac1b535 100644
--- a/tests/getdp/input_test.csv
+++ b/tests/getdp/input_test.csv
@@ -35,7 +35,7 @@ CFUN_Jc_Nb3Sn_Summers_v1,CFUN_Jc_Nb3Sn_Summers_T_B,3,2,0-1-2-3-4,0,[0:10:1000],[
 CFUN_Jc_Nb3Sn_Summers_v1,CFUN_Jc_Nb3Sn_Summers_T,4,1,0-1-2-3-4,0,[0:10:1000],12,40690432158,18,29,,,,,,
 CFUN_Jc_Nb3Sn_Summers_v1,CFUN_Jc_Nb3Sn_Summers_B,4,1,1-0-2-3-4,0,5,[0:3:15],40690432158,18,29,,,,,,
 CFUN_kAg_v1,CFUN_kAg_T,0,1,0,0,[0:10:1000],,,,,,,,,,
-CFUN_kAlAlloy_v1,CFUN_kAlAlloy_T,1,1,0-1,0,[15:10:300],1.89,,,,,,,,,
+CFUN_kAlAlloy_v1,CFUN_kAl_T,1,1,0-1,0,[15:10:300],1.89,,,,,,,,,
 CFUN_kAl1350_v1,CFUN_kAl1350_T,0,1,0,0,[0:10:1000],,,,,,,,,,
 CFUN_kAl5083_v1,CFUN_kAl5083_T,0,1,0,0,[0:10:1000],,,,,,,,,,
 CFUN_kAl6061_v1,CFUN_kAl6061_T,0,1,0,0,[0:10:1000],,,,,,,,,,
diff --git a/tests/getdp/test_getdp.py b/tests/getdp/test_getdp.py
index c8f0fdfc72e1bc9e0e11bd6cc8e5a49454fb0d02..27df2ebbecc5ff31c724b2f45006e4c3a6356d3d 100644
--- a/tests/getdp/test_getdp.py
+++ b/tests/getdp/test_getdp.py
@@ -27,7 +27,6 @@ def reorder_list(lst, mapping):
     return ordered_list
 
 
-
 class GetDP_tests(unittest.TestCase):
     @classmethod
     def setUpClass(cls):
@@ -36,7 +35,7 @@ class GetDP_tests(unittest.TestCase):
 
         # Create the "outputs" folder
         cls.pro_template_path = Path.cwd() / 'tests' / 'getdp'
-        cls.cerngetdp_path    = Path.cwd() / 'tests' / 'getdp' / 'tmp_cerngetdp'
+        cls.cerngetdp_path = Path.cwd() / 'tests' / 'getdp' / 'tmp_cerngetdp'
         cls.outputs_folder_msh = cls.pro_template_path / 'Outputs_msh'
         cls.outputs_folder_msh.mkdir(parents=True, exist_ok=True)
         cls.outputs_folder_txt = cls.pro_template_path / 'Outputs_txt'
@@ -44,7 +43,6 @@ class GetDP_tests(unittest.TestCase):
         cls.outputs_folder_pro = cls.pro_template_path / 'Outputs_pro'
         cls.outputs_folder_pro.mkdir(parents=True, exist_ok=True)
 
-
     def test_cfun(self):
         cerngetdp_path = Path.cwd() / 'tests' / 'getdp' / 'tmp_cerngetdp'
         if os.path.exists(cerngetdp_path):
@@ -60,11 +58,12 @@ class GetDP_tests(unittest.TestCase):
             num_var_params = int(self.df.iloc[i, 3])
 
             # Get the list of input variable column numbers and create the numpy linspace arrays
-            input_cols = [6 + j for j in range(num_var_params + num_const_params)]
-            input_configs       = []
-            input_var_vals      = []
-            input_var_configs   = []
-            input_const_vals    = []
+            input_cols = [
+                6 + j for j in range(num_var_params + num_const_params)]
+            input_configs = []
+            input_var_vals = []
+            input_var_configs = []
+            input_const_vals = []
             input_const_configs = []
 
             for cols in input_cols:
@@ -77,9 +76,11 @@ class GetDP_tests(unittest.TestCase):
                         start = float(col_data[0])
                         step = float(col_data[1])
                         end = float(col_data[2])
-                        input_var_vals.append(np.arange(start, end + step, step))
-                        input_configs.append(np.arange(start, end + step, step))
-                    
+                        input_var_vals.append(
+                            np.arange(start, end + step, step))
+                        input_configs.append(
+                            np.arange(start, end + step, step))
+
                 else:
                     numeric_value = float(col_data)
                     input_const_vals.append(numeric_value)
@@ -100,12 +101,10 @@ class GetDP_tests(unittest.TestCase):
             if np.any(mapping_list != np.arange(0, len(mapping_list))):
                 k = True
             else:
-                k= False
-
+                k = False
 
             # Loop through each configuration of input variable values
             for input_vars in input_var_configs:
-
                 input_dict = {
                     "c_function_name": function_name,
                     "function_name": GetDP_function_name,
@@ -113,65 +112,66 @@ class GetDP_tests(unittest.TestCase):
                     "input_var_vals": input_var_configs,
                     "mapping": mapping_list
                 }
+            
             try:
                 # Change the working directory to cerngetdp_path
                 os.chdir(cerngetdp_path)
                 # Call the function and get the expected output from call_getdp_function
                 start_time_getdp = time.time()
                 print(input_dict['function_name'])
-                expected_output = call_getdp_function(input_dict, input_dict['function_name'], self.cerngetdp_path, self.pro_template_path, self.outputs_folder_msh, self.outputs_folder_pro, self.outputs_folder_txt)
+                expected_output = call_getdp_function(input_dict, input_dict['function_name'], self.cerngetdp_path,
+                                                      self.pro_template_path, self.outputs_folder_msh, self.outputs_folder_pro, self.outputs_folder_txt)
                 end_time_getdp = time.time()
-                
-                input_var_vals_2d = separate_values(input_var_configs, num_var_params)
+                assert expected_output is not None
+
+                input_var_vals_2d = separate_values(
+                    input_var_configs, num_var_params)
 
                 for const_val in input_const_vals:
                     const_val = float(const_val)
-                    input_var_vals_2d.append(np.ones(len(input_var_configs)) * const_val)
-
-            
-                if(k == True ):
+                    input_var_vals_2d.append(
+                        np.ones(len(input_var_configs)) * const_val)
 
+                if (k == True):
                     result_2d = np.vstack(reorder_list(input_var_vals_2d, mapping_list))
-
                 else:
-                    result_2d =  np.vstack(input_var_vals_2d) 
+                    result_2d = np.vstack(input_var_vals_2d)
 
-                sm = SteamMaterials(function_name, result_2d.shape[0], result_2d.shape[1])
-                
-                
+                sm = SteamMaterials(
+                    function_name, result_2d.shape[0], result_2d.shape[1])
 
                 try:
                     actual_output = []
                     start_time_python = time.time()
                     actual_output = sm.evaluate(result_2d)
                     end_time_python = time.time()
-                #except OSError as e:
-                #    print(f"Function {function_name} doesn't run. Error: {e}")
-                #    continue
                 except ValueError as e:
                     warning_message = f"Warning: There was a problem with calling {function_name}.dll. Check if the DLL file exists or if the number of arguments is correct."
                     warnings.warn(warning_message, UserWarning)
                     continue
 
                 # Write the actual_output and expected_output to the output txt file
-                output_txt_file_path = os.path.join(self.outputs_folder_txt, f"{GetDP_function_name}.txt")
+                output_txt_file_path = os.path.join(
+                    self.outputs_folder_txt, f"{GetDP_function_name}.txt")
 
                 # Stack actual_output and expected_output horizontally
-                stacked_data = np.column_stack((actual_output, expected_output))
+                stacked_data = np.column_stack(
+                    (actual_output, expected_output))
 
                 # Save the stacked data to the file
                 header = f"Actual Output\tExpected Output\tGetDP Running Time ({end_time_getdp - start_time_getdp} s)\tPython Running Time ({end_time_python - start_time_python} s)"
-                np.savetxt(output_txt_file_path, stacked_data, fmt="%.18e", delimiter="\t", newline="\n", comments="", header=header)
+                np.savetxt(output_txt_file_path, stacked_data, fmt="%.18e",
+                           delimiter="\t", newline="\n", comments="", header=header)
 
             except AssertionError as e:
                 print(f"Function {function_name} doesn't run. Error: {e}")
                 continue
-            
+
             try:
                 # Check that the expected and actual output are the same
-                np.testing.assert_allclose(expected_output, actual_output, rtol=1e-4, atol=1e-4)
+                np.testing.assert_allclose(
+                    expected_output, actual_output, rtol=1e-4, atol=1e-4)
                 continue
 
             except AssertionError as e:
                 print(f"Function {function_name} failed. Error: {e}")
-