Commit 562daf7d by Garrett Johnson

merged

parent 9e402b37
Showing with 22 additions and 22 deletions
......@@ -38,28 +38,28 @@ def calculate_efficiency_gap(state):
Returns: the efficiency gap of district plan (a interger)
'''
total_votes = 0
wasted_dvotes = 0
wasted_rvotes = 0
districts = {}
for x in range(len(state)):
for y in range(len(state)):
if state[x][y]["district"] not in districts:
districts[state[x][y]["district"]] = {"Rvotes": 0, "Dvotes": 0}
districts[state[x][y]["district"]]["Rvotes"] += state[x][y]["R"]
districts[state[x][y]["district"]]["Dvotes"] += state[x][y]["D"]
total_votes += state[x][y]["R"] + state[x][y]["D"]
for d in districts.keys():
assert districts[d]["Dvotes"] != districts[d]["Rvotes"]
vict_threshold = (districts[d]["Dvotes"] + districts[d]["Rvotes"]) // 2
if districts[d]["Dvotes"] > districts[d]["Rvotes"]:
wasted_dvotes += (districts[d]["Dvotes"] - vict_threshold)
wasted_rvotes += districts[d]["Rvotes"]
elif districts[d]["Dvotes"] < districts[d]["Rvotes"]:
wasted_rvotes += (districts[d]["Rvotes"] - vict_threshold)
wasted_dvotes += districts[d]["Dvotes"]
efficiency_gap = (wasted_dvotes - wasted_rvotes) / total_votes
return efficiency_gap
total_votes = 0
wasted_dvotes = 0
wasted_rvotes = 0
districts = {}
for x in range(len(state)):
for y in range(len(state)):
if state[x][y]["district"] not in districts:
districts[state[x][y]["district"]] = {"Rvotes": 0, "Dvotes": 0}
districts[state[x][y]["district"]]["Rvotes"] += state[x][y]["R"]
districts[state[x][y]["district"]]["Dvotes"] += state[x][y]["D"]
total_votes += state[x][y]["R"] + state[x][y]["D"]
for d in districts.keys():
assert districts[d]["Dvotes"] != districts[d]["Rvotes"]
vict_threshold = (districts[d]["Dvotes"] + districts[d]["Rvotes"]) // 2
if districts[d]["Dvotes"] > districts[d]["Rvotes"]:
wasted_dvotes += (districts[d]["Dvotes"] - vict_threshold)
wasted_rvotes += districts[d]["Rvotes"]
elif districts[d]["Dvotes"] < districts[d]["Rvotes"]:
wasted_rvotes += (districts[d]["Rvotes"] - vict_threshold)
wasted_dvotes += districts[d]["Dvotes"]
efficiency_gap = (wasted_dvotes - wasted_rvotes) / total_votes
return efficiency_gap
def calculate_efficiency_gap_from_list(total_votes, rep_votes, dem_votes, tracts, tract):
'''
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment