Simple exchange calculator in Java - structure and tests
First off, the implementation of lemonadeChange is pretty complicated. I get worried whenever I see a bunch of nested if statements - these always lead to bugs. Indeed, try adding another test case where you only pass $10 bills, I think it will erroneously return true. It's generally a good idea to limit the complexity of any individual function, take a look at the concept of Cyclomatic Complexity: https://help.semmle.com/wiki/plugins/servlet/mobile?contentId=29393453#content/view/29393453

Also, if you call lemonadeChange more than once on the same instance of CalculatorLongImp then the values of five/ten/acc will persist between calls, giving you odd results. Generally, you'd say this function has "side effects", and it's often a good idea to avoid these where possible. 

It's good that you've included tests. I would separate these out so each test only covers a single implementation - specific tests covering a single function on a single class make it easier to see exactly what's broken. 

Finally, I find the naming a bit confusing. What does acc do? What's the difference between CalculatorLongImp and CalculatorShortImp? Imagine someone else will be reading your code tomorrow and trying to understand what it does. Naming things clearly will make it much easier for someone else (or yourself in the future!) to read and understand your code.