Search in sources :

Example 26 with CurrencyConverter

use of name.abuchen.portfolio.money.CurrencyConverter in project portfolio by buchen.

the class ClassificationIndexTest method testThat50PercentAssignmentHasIdenticalPerformanceButOnly50PercentTotals.

@Test
public void testThat50PercentAssignmentHasIdenticalPerformanceButOnly50PercentTotals() {
    Client client = createClient(Classification.ONE_HUNDRED_PERCENT / 2);
    Classification classification = client.getTaxonomies().get(0).getClassificationById("one");
    List<Exception> warnings = new ArrayList<Exception>();
    CurrencyConverter converter = new TestCurrencyConverter();
    PerformanceIndex iClient = PerformanceIndex.forClient(client, converter, period, warnings);
    PerformanceIndex iClassification = PerformanceIndex.forClassification(client, converter, classification, period, warnings);
    assertThat(warnings.isEmpty(), is(true));
    assertThat(iClient.getDates(), is(iClassification.getDates()));
    assertThat(iClient.getAccumulatedPercentage(), is(iClassification.getAccumulatedPercentage()));
    assertThat(iClient.getDeltaPercentage(), is(iClassification.getDeltaPercentage()));
    assertThat(half(iClient.getTotals()), is(iClassification.getTotals()));
    assertThat(half(iClient.getTransferals()), is(iClassification.getTransferals()));
}
Also used : TestCurrencyConverter(name.abuchen.portfolio.TestCurrencyConverter) Classification(name.abuchen.portfolio.model.Classification) ArrayList(java.util.ArrayList) Client(name.abuchen.portfolio.model.Client) TestCurrencyConverter(name.abuchen.portfolio.TestCurrencyConverter) CurrencyConverter(name.abuchen.portfolio.money.CurrencyConverter) Test(org.junit.Test)

Example 27 with CurrencyConverter

use of name.abuchen.portfolio.money.CurrencyConverter in project portfolio by buchen.

the class ClientIndexTest method testThatInterstWithoutInvestmentDoesNotCorruptResultAndIsReported.

@Test
public void testThatInterstWithoutInvestmentDoesNotCorruptResultAndIsReported() {
    Client client = new Client();
    // 
    new AccountBuilder().interest(LocalDateTime.of(2012, 01, 02, 0, 0), // 
    100).addTo(client);
    ReportingPeriod.FromXtoY period = new // 
    ReportingPeriod.FromXtoY(// 
    LocalDate.of(2012, Month.JANUARY, 1), LocalDate.of(2012, Month.JANUARY, 9));
    List<Exception> errors = new ArrayList<Exception>();
    CurrencyConverter converter = new TestCurrencyConverter();
    PerformanceIndex index = PerformanceIndex.forClient(client, converter, period, errors);
    double[] accumulated = index.getAccumulatedPercentage();
    for (int ii = 0; ii < accumulated.length; ii++) assertThat(accumulated[ii], IsCloseTo.closeTo(0d, PRECISION));
    assertThat(errors.size(), is(1));
    assertThat(errors.get(0).getMessage(), startsWith(Messages.MsgDeltaWithoutAssets.substring(0, Messages.MsgDeltaWithoutAssets.indexOf('{'))));
}
Also used : ArrayList(java.util.ArrayList) TestCurrencyConverter(name.abuchen.portfolio.TestCurrencyConverter) CurrencyConverter(name.abuchen.portfolio.money.CurrencyConverter) TestCurrencyConverter(name.abuchen.portfolio.TestCurrencyConverter) AccountBuilder(name.abuchen.portfolio.AccountBuilder) Client(name.abuchen.portfolio.model.Client) Test(org.junit.Test)

Example 28 with CurrencyConverter

use of name.abuchen.portfolio.money.CurrencyConverter in project portfolio by buchen.

the class ClientIndexTest method testChangesOnFirstDayOfInvestment.

@Test
public void testChangesOnFirstDayOfInvestment() {
    Client client = new Client();
    // 
    new AccountBuilder().deposit_("2012-01-01", // 
    10000).interest("2012-01-02", // 
    1000).addTo(client);
    ReportingPeriod.FromXtoY reportInterval = new // 
    ReportingPeriod.FromXtoY(// 
    LocalDate.of(2012, Month.JANUARY, 1), LocalDate.of(2012, Month.JANUARY, 10));
    CurrencyConverter converter = new TestCurrencyConverter();
    PerformanceIndex index = PerformanceIndex.forClient(client, converter, reportInterval, new ArrayList<Exception>());
    double[] accumulated = index.getAccumulatedPercentage();
    assertThat(accumulated[accumulated.length - 1], IsCloseTo.closeTo(0.1d, PRECISION));
}
Also used : TestCurrencyConverter(name.abuchen.portfolio.TestCurrencyConverter) AccountBuilder(name.abuchen.portfolio.AccountBuilder) Client(name.abuchen.portfolio.model.Client) TestCurrencyConverter(name.abuchen.portfolio.TestCurrencyConverter) CurrencyConverter(name.abuchen.portfolio.money.CurrencyConverter) Test(org.junit.Test)

Example 29 with CurrencyConverter

use of name.abuchen.portfolio.money.CurrencyConverter in project portfolio by buchen.

the class ClientIndexTest method testExcelSample.

@Test
public void testExcelSample() {
    Client client = createClient();
    ReportingPeriod.FromXtoY period = new // 
    ReportingPeriod.FromXtoY(// 
    LocalDate.of(2011, Month.DECEMBER, 31), LocalDate.of(2012, Month.JANUARY, 8));
    CurrencyConverter converter = new TestCurrencyConverter();
    PerformanceIndex index = PerformanceIndex.forClient(client, converter, period, new ArrayList<Exception>());
    assertNotNull(index);
    assertThat(period.toInterval(), is(index.getReportInterval().toInterval()));
    assertThat(client, is(index.getClient()));
    LocalDate[] dates = index.getDates();
    assertThat(dates.length, is(Dates.daysBetween(period.getStartDate(), period.getEndDate()) + 1));
    double[] delta = index.getDeltaPercentage();
    assertThat(delta[0], is(0d));
    assertThat(delta[1], IsCloseTo.closeTo(0.023d, PRECISION));
    assertThat(delta[2], IsCloseTo.closeTo(0.019175455d, PRECISION));
    assertThat(delta[3], IsCloseTo.closeTo(-0.0220517d, PRECISION));
    assertThat(delta[4], IsCloseTo.closeTo(0.0294117647d, PRECISION));
    assertThat(delta[5], IsCloseTo.closeTo(0.0285714286d, PRECISION));
    assertThat(delta[6], IsCloseTo.closeTo(0.012261967d, PRECISION));
    assertThat(delta[7], IsCloseTo.closeTo(-0.0545454545d, PRECISION));
    assertThat(delta[8], IsCloseTo.closeTo(-0.0865384615d, PRECISION));
    double[] accumulated = index.getAccumulatedPercentage();
    assertThat(accumulated[0], is(0d));
    assertThat(accumulated[1], IsCloseTo.closeTo(0.023d, PRECISION));
    assertThat(accumulated[2], IsCloseTo.closeTo(0.042616491d, PRECISION));
    assertThat(accumulated[3], IsCloseTo.closeTo(0.019624983d, PRECISION));
    assertThat(accumulated[4], IsCloseTo.closeTo(0.049614163d, PRECISION));
    assertThat(accumulated[5], IsCloseTo.closeTo(0.079603343d, PRECISION));
    assertThat(accumulated[6], IsCloseTo.closeTo(0.092841403d, PRECISION));
    assertThat(accumulated[7], IsCloseTo.closeTo(0.03323197d, PRECISION));
    assertThat(accumulated[8], IsCloseTo.closeTo(-0.056182678d, PRECISION));
}
Also used : TestCurrencyConverter(name.abuchen.portfolio.TestCurrencyConverter) Client(name.abuchen.portfolio.model.Client) LocalDate(java.time.LocalDate) TestCurrencyConverter(name.abuchen.portfolio.TestCurrencyConverter) CurrencyConverter(name.abuchen.portfolio.money.CurrencyConverter) Test(org.junit.Test)

Example 30 with CurrencyConverter

use of name.abuchen.portfolio.money.CurrencyConverter in project portfolio by buchen.

the class ClientIndexTest method testFirstDataPointWhenInsideReportingInterval.

@Test
public void testFirstDataPointWhenInsideReportingInterval() {
    Client client = createClient();
    ReportingPeriod.FromXtoY period = new // 
    ReportingPeriod.FromXtoY(// 
    LocalDate.of(2011, Month.DECEMBER, 20), LocalDate.of(2012, Month.JANUARY, 8));
    CurrencyConverter converter = new TestCurrencyConverter();
    PerformanceIndex index = PerformanceIndex.forClient(client, converter, period, new ArrayList<Exception>());
    assertThat(index.getFirstDataPoint().get(), is(LocalDate.of(2011, 12, 31)));
    assertThat(index.getFirstDataPoint().get(), not(period.toInterval().getStart()));
}
Also used : TestCurrencyConverter(name.abuchen.portfolio.TestCurrencyConverter) Client(name.abuchen.portfolio.model.Client) TestCurrencyConverter(name.abuchen.portfolio.TestCurrencyConverter) CurrencyConverter(name.abuchen.portfolio.money.CurrencyConverter) Test(org.junit.Test)

Aggregations

CurrencyConverter (name.abuchen.portfolio.money.CurrencyConverter)53 Client (name.abuchen.portfolio.model.Client)41 TestCurrencyConverter (name.abuchen.portfolio.TestCurrencyConverter)38 Test (org.junit.Test)36 Security (name.abuchen.portfolio.model.Security)19 ArrayList (java.util.ArrayList)18 AccountBuilder (name.abuchen.portfolio.AccountBuilder)15 Account (name.abuchen.portfolio.model.Account)15 LocalDate (java.time.LocalDate)13 AccountTransaction (name.abuchen.portfolio.model.AccountTransaction)12 PortfolioTransaction (name.abuchen.portfolio.model.PortfolioTransaction)11 SecurityBuilder (name.abuchen.portfolio.SecurityBuilder)9 CurrencyConverterImpl (name.abuchen.portfolio.money.CurrencyConverterImpl)9 Portfolio (name.abuchen.portfolio.model.Portfolio)7 SecurityPrice (name.abuchen.portfolio.model.SecurityPrice)6 Transaction (name.abuchen.portfolio.model.Transaction)6 Unit (name.abuchen.portfolio.model.Transaction.Unit)6 ClientSnapshot (name.abuchen.portfolio.snapshot.ClientSnapshot)6 ReportingPeriod (name.abuchen.portfolio.snapshot.ReportingPeriod)6 Classification (name.abuchen.portfolio.model.Classification)5