11from  src .infrastructure  import  file_utils 
22
3- def  make_adjustments ():
4-     pass 
3+ def  _generate_array (existing_data , new_headers ):
4+     # Initialize an empty array for new data to go in 
5+     new_data  =  []
56
6- # REMOVE THIS CALL 
7- make_adjustments ()
7+     for  row  in  existing_data :
8+         # for each existing row, create an array to represent the row from the dictionary 
9+         new_row  =  []
10+         for  header  in  new_headers :
11+             new_row .append (row [header ])
12+ 
13+         # append this row to the new_data array 
14+         new_data .append (new_row )
15+ 
16+     # return the new data array and prepend the headers to this array 
17+     return  [new_headers ] +  new_data 
18+ 
19+ 
20+ def  make_adjustments (filename ):
21+     existing_data  =  file_utils .read_csv (filename )
22+ 
23+     for  row  in  existing_data :
24+         # Calculate the tdd percentage 
25+         try :
26+             tdd_percentage  =  int (row ['Test Before' ]) /  (int (row ['Test Before' ]) +  int (row ['Test After' ]))
27+         except  ZeroDivisionError :
28+             tdd_percentage  =  0 
29+ 
30+         # Calculate the adjusted variables 
31+         adjusted_test_before  =  int (row ['Test Before' ]) +  (tdd_percentage  *  int (row ['Test During' ]))
32+         adjusted_test_after  =  int (row ['Test After' ]) +  ((1  -  tdd_percentage ) *  int (row ['Test During' ]))
33+ 
34+         # Create a new item in the dictionary to store the new data 
35+         row ['Adjusted Test Before' ] =  int (adjusted_test_before )
36+         row ['Adjusted Test After' ] =  int (adjusted_test_after )
37+ 
38+     # Get the headers of the relevant file 
39+     headers  =  []
40+     if  filename  ==  'author_data' :
41+         headers  =  ["Author" , "Test Before" , "Test After" , "Test During" ]
42+     elif  filename  ==  'repo_data' :
43+         headers  =  ["Repo Name" , "Language" , "Commit Count" , "Test Before" , "Test After" , "Test During" , "Duration (s)" ,
44+                 "Avg Before Commit Size" , "Avg After Commit Size" , "Avg During Commit Size" , "Avg Commit Size" ]
45+ 
46+     # Generate the new data as a 2D array from the dictionary 
47+     new_data  =  _generate_array (existing_data , headers  +  ["Adjusted Test Before" , "Adjusted Test After" ])
48+ 
49+     # Write this data to a new csv 
50+     file_utils .write_csv (new_data , filename + '_adjusted' )
0 commit comments