I don't know what that return false is doing in the function, but that's wrong.

Also, what makes you say that partion_sum is not returning the correct total? You are never printing out the return...