update allocation to enforce minimum capacity constraints and tests