/**
* Copyright (C) 2015 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.strata.market.sensitivity;
import static com.opengamma.strata.collect.TestHelper.date;
import static org.testng.Assert.assertEquals;
import java.util.function.DoubleUnaryOperator;
import org.testng.annotations.Test;
import com.google.common.collect.ImmutableList;
import com.opengamma.strata.basics.currency.Currency;
/**
* Test {@link PointSensitivityBuilder}.
*/
@Test
public class PointSensitivityBuilderTest {
private static final DummyPointSensitivity SENS = DummyPointSensitivity.of(Currency.GBP, date(2015, 6, 30), 12);
public void test_of_array_size0() {
PointSensitivities test = PointSensitivityBuilder.of().build();
assertEquals(test.size(), 0);
}
public void test_of_array_size1() {
PointSensitivities test = PointSensitivityBuilder.of(SENS).build();
assertEquals(test.size(), 1);
assertEquals(test.getSensitivities().get(0), SENS);
}
public void test_of_array_size2() {
PointSensitivities test = PointSensitivityBuilder.of(SENS, SENS).build();
assertEquals(test.size(), 2);
assertEquals(test.getSensitivities().get(0), SENS);
assertEquals(test.getSensitivities().get(1), SENS);
}
public void test_of_list_size0() {
PointSensitivities test = PointSensitivityBuilder.of(ImmutableList.of()).build();
assertEquals(test.size(), 0);
}
public void test_of_list_size1() {
PointSensitivities test = PointSensitivityBuilder.of(ImmutableList.of(SENS)).build();
assertEquals(test.size(), 1);
assertEquals(test.getSensitivities().get(0), SENS);
}
public void test_of_list_size2() {
PointSensitivities test = PointSensitivityBuilder.of(ImmutableList.of(SENS, SENS)).build();
assertEquals(test.size(), 2);
assertEquals(test.getSensitivities().get(0), SENS);
assertEquals(test.getSensitivities().get(1), SENS);
}
public void test_multipliedBy() {
TestingPointSensitivityBuilder test = new TestingPointSensitivityBuilder();
test.multipliedBy(6);
assertEquals(test.value, 12d * 6);
}
private static final class TestingPointSensitivityBuilder implements PointSensitivityBuilder {
private double value = 12d;
@Override
public PointSensitivityBuilder withCurrency(Currency currency) {
throw new UnsupportedOperationException();
}
@Override
public PointSensitivityBuilder mapSensitivity(DoubleUnaryOperator operator) {
value = operator.applyAsDouble(value);
return this;
}
@Override
public PointSensitivityBuilder normalize() {
throw new UnsupportedOperationException();
}
@Override
public MutablePointSensitivities buildInto(MutablePointSensitivities combination) {
return combination;
}
@Override
public PointSensitivityBuilder cloned() {
throw new UnsupportedOperationException();
}
}
}