Initial commit:
- Create directory structure
- Create Investment
- Create Portfolio
- Create PortfolioRebalancer
- Create log4j.properties
- Create PortfolioTest
Add Gradle
Add total and improve formatting in Portfolio.toString()
Add naive implementation of Portfolio.rebalance()
- Add constructor argument validation to Investment
- Refactor Portfolio.rebalance() into Investment.adjust() and Investment.printTransaction()
- Increase readability of Portfolio.toString()
- Re-order PortfolioRebalancer.main() and .rebalance()
- Add InvestmentTest
- Modify PortfolioTest.testGetValue() to conform to new Investment specifications
- Add commons-lang3.0 gradle dependency
- Move public methods before private methods in Investment
- Re-factor validation methods for re-use in Investment.adjust()
- Remove unnecessary variable creation from Portfolio.rebalance()
- Change access modifier of PortfolioRebalancer.rebalance()
- Remove state from PortfolioRebalancer
- Create Money utility class
- Refactor Investment.adjust() and Portfolio.rebalance() to use Money.divide()
- Re-order methods in PortfolioRebalancer
- Refactor Investment.printTransaction() into .getTransactionString()
- Add support for fractional shares
- Print only two decimal places for value in Portfolio.toString()
- Add InvestmentTest.testAdjust(), .testGetTransactionString()
- Add package-private version of Investment.adjust() with PrintStream argument for suppressing output during testing
- Comment out ALL logginglevel from log4j.properties
- Add test-portfolio.csv
- Add PortfolioRebalancer.loadPortfolio()
- Document public methods
- Add Portfolio.rebalance() with OutputStream parameter
- Check for null argument in Portfolio constructor
- Re-order methods in PortfoliorRebalancer
- Add PortfolioTest.testConstructorNullInvestments(), testRebalance()
- Update README.md