
import matplotlib.pyplot as plt
import numpy as np
import random

# Weights
lower = [0.4,0.1,0.1,0.05]
upper = [0.7,0.4,0.2,0.3]

# Weights Exception
#lower = [0.,0.,0.,0.05]
#upper = [0.7,0.4,0.2,0.9]

grades = [5, 3, 2, 2]
weights = [0,0,0,0]

idxsort = np.argsort(grades)

print 'grades', grades
print 'idxsort', idxsort
weights[idxsort[0]] = lower[idxsort[0]]
weights[idxsort[1]] = lower[idxsort[1]]
weights[idxsort[3]] = upper[idxsort[3]]
weights[idxsort[2]] = 1-weights[idxsort[0]]-weights[idxsort[1]]-weights[idxsort[3]]

grade = sum(np.multiply(grades,weights))
print 'Final grade {:1.2f}  +10% {:1.2f}  -10% {:1.2f} '.format(grade,1.01*grade,0.9*grade)
print 'Weights: ', weights





