Package com.opengamma.core.position

Examples of com.opengamma.core.position.Position


*/
@Test(groups = TestGroup.UNIT)
public class LoggedResolutionPositionTest {

  public void getQuantity() {
    final Position position = Mockito.mock(Position.class);
    final ResolutionLogger logger = Mockito.mock(ResolutionLogger.class);
    final Position logged = new LoggedResolutionPosition(position, logger);
    Mockito.when(position.getQuantity()).thenReturn(BigDecimal.ONE);
    assertEquals(logged.getQuantity(), BigDecimal.ONE);
    Mockito.verifyZeroInteractions(logger);
  }
View Full Code Here


    assertEquals(logged.getQuantity(), BigDecimal.ONE);
    Mockito.verifyZeroInteractions(logger);
  }

  public void getSecurityLink() {
    final Position position = Mockito.mock(Position.class);
    final ResolutionLogger logger = Mockito.mock(ResolutionLogger.class);
    final Position logged = new LoggedResolutionPosition(position, logger);
    final SecurityLink link = Mockito.mock(SecurityLink.class);
    Mockito.when(position.getSecurityLink()).thenReturn(link);
    assertSame(logged.getSecurityLink(), link);
    Mockito.verifyZeroInteractions(logger);
  }
View Full Code Here

    assertSame(logged.getSecurityLink(), link);
    Mockito.verifyZeroInteractions(logger);
  }

  public void getSecurity_externalId() {
    final Position position = Mockito.mock(Position.class);
    final ResolutionLogger logger = Mockito.mock(ResolutionLogger.class);
    final Position logged = new LoggedResolutionPosition(position, logger);
    final Security security = Mockito.mock(Security.class);
    Mockito.when(security.getUniqueId()).thenReturn(UniqueId.of("Foo", "Bar", "Cow"));
    Mockito.when(position.getSecurity()).thenReturn(security);
    Mockito.when(position.getSecurityLink()).thenReturn(new SimpleSecurityLink(ExternalId.of("Foo", "Bar")));
    assertSame(logged.getSecurity(), security);
    Mockito.verify(logger).log(new ComputationTargetRequirement(ComputationTargetType.SECURITY, ExternalId.of("Foo", "Bar")), UniqueId.of("Foo", "Bar", "Cow"));
    Mockito.verifyNoMoreInteractions(logger);
  }
View Full Code Here

    Mockito.verify(logger).log(new ComputationTargetRequirement(ComputationTargetType.SECURITY, ExternalId.of("Foo", "Bar")), UniqueId.of("Foo", "Bar", "Cow"));
    Mockito.verifyNoMoreInteractions(logger);
  }

  public void getSecurity_objectId() {
    final Position position = Mockito.mock(Position.class);
    final ResolutionLogger logger = Mockito.mock(ResolutionLogger.class);
    final Position logged = new LoggedResolutionPosition(position, logger);
    final Security security = Mockito.mock(Security.class);
    Mockito.when(security.getUniqueId()).thenReturn(UniqueId.of("Foo", "Bar", "Cow"));
    Mockito.when(position.getSecurity()).thenReturn(security);
    Mockito.when(position.getSecurityLink()).thenReturn(new SimpleSecurityLink(ObjectId.of("Foo", "Bar")));
    assertSame(logged.getSecurity(), security);
    Mockito.verify(logger).log(new ComputationTargetSpecification(ComputationTargetType.SECURITY, UniqueId.of("Foo", "Bar")), UniqueId.of("Foo", "Bar", "Cow"));
    Mockito.verifyNoMoreInteractions(logger);
  }
View Full Code Here

    Mockito.verify(logger).log(new ComputationTargetSpecification(ComputationTargetType.SECURITY, UniqueId.of("Foo", "Bar")), UniqueId.of("Foo", "Bar", "Cow"));
    Mockito.verifyNoMoreInteractions(logger);
  }

  public void getTrades() {
    final Position position = Mockito.mock(Position.class);
    final ResolutionLogger logger = Mockito.mock(ResolutionLogger.class);
    final Position logged = new LoggedResolutionPosition(position, logger);
    final List<Trade> trades = new ArrayList<Trade>();
    for (int i = 0; i < 3; i++) {
      final Trade trade = Mockito.mock(Trade.class);
      Mockito.when(trade.getUniqueId()).thenReturn(UniqueId.of("Trade", Integer.toString(i), "0"));
      trades.add(trade);
    }
    Mockito.when(position.getTrades()).thenReturn(trades);
    final Collection<Trade> loggedTrades = logged.getTrades();
    assertEquals(loggedTrades.size(), 3);
    int i = 0;
    for (Trade trade : loggedTrades) {
      assertTrue(trade instanceof LoggedResolutionTrade);
      // Mockito.verify(logger).log(new ComputationTargetSpecification(ComputationTargetType.TRADE, UniqueId.of("Trade", Integer.toString(i))), UniqueId.of("Trade", Integer.toString(i), "0"));
View Full Code Here

    Mockito.verifyNoMoreInteractions(logger);
  }

  @SuppressWarnings("unchecked")
  public void getAttributes() {
    final Position position = Mockito.mock(Position.class);
    final ResolutionLogger logger = Mockito.mock(ResolutionLogger.class);
    final Position logged = new LoggedResolutionPosition(position, logger);
    final Map<String, String> attributes = Mockito.mock(Map.class);
    Mockito.when(position.getAttributes()).thenReturn(attributes);
    assertSame(logged.getAttributes(), attributes);
    Mockito.verifyZeroInteractions(logger);
  }
View Full Code Here

    return Collections.singleton(specification);
  }

  @Override
  public Set<ValueRequirement> getRequirements(final FunctionCompilationContext context, final ComputationTarget target, final ValueRequirement desiredValue) {
    final Position position = target.getPosition();
    final Collection<Trade> trades = position.getTrades();
    final Set<ValueRequirement> result = new HashSet<ValueRequirement>();
    final ValueProperties inputConstraint = desiredValue.getConstraints().withoutAny(ValuePropertyNames.FUNCTION);
    for (final Trade trade : trades) {
      result.add(new ValueRequirement(_requirementName, ComputationTargetType.TRADE, trade.getUniqueId(), inputConstraint));
    }
View Full Code Here

    ConfigDBCurveCalculationConfigSource.reinitOnChanges(context, this);
  }

  @Override
  public Set<ComputedValue> execute(final FunctionExecutionContext executionContext, final FunctionInputs inputs, final ComputationTarget target, final Set<ValueRequirement> desiredValues) {
    final Position position = target.getPosition();
    final ConfigSource configSource = OpenGammaExecutionContext.getConfigSource(executionContext);
    final Clock snapshotClock = executionContext.getValuationClock();
    final LocalDate now = ZonedDateTime.now(snapshotClock).toLocalDate();
    final Currency currency = FinancialSecurityUtils.getCurrency(position.getSecurity());
    final String currencyString = currency.getCode();
    final ValueRequirement desiredValue = desiredValues.iterator().next();
    final ValueProperties constraints = desiredValue.getConstraints();
    final String surfaceName = getPropertyName(constraints.getValues(ValuePropertyNames.SURFACE));
    final String curveCalculationConfigName = desiredValue.getConstraint(ValuePropertyNames.CURVE_CALCULATION_CONFIG);
    final Set<String> yieldCurveNames = constraints.getValues(ValuePropertyNames.CURVE);
    final Period samplingPeriod = getSamplingPeriod(constraints.getValues(ValuePropertyNames.SAMPLING_PERIOD));
    final LocalDate startDate = now.minus(samplingPeriod);
    final Schedule scheduleCalculator = getScheduleCalculator(constraints.getValues(ValuePropertyNames.SCHEDULE_CALCULATOR));
    final TimeSeriesSamplingFunction samplingFunction = getSamplingFunction(constraints.getValues(ValuePropertyNames.SAMPLING_FUNCTION));
    final LocalDate[] schedule = HOLIDAY_REMOVER.getStrippedSchedule(scheduleCalculator.getSchedule(startDate, now, true, false), WEEKEND_CALENDAR); //REVIEW emcleod should "fromEnd" be hard-coded?
    final ConfigDBCurveCalculationConfigSource curveCalculationConfigSource = new ConfigDBCurveCalculationConfigSource(configSource);
    DoubleTimeSeries<?> result = null;
    final MultiCurveCalculationConfig curveCalculationConfig = curveCalculationConfigSource.getConfig(curveCalculationConfigName);
    for (final String yieldCurveName : yieldCurveNames) {
      final ValueRequirement ycnsRequirement = getYCNSRequirement(currencyString, curveCalculationConfigName, yieldCurveName, surfaceName, target);
      final DoubleLabelledMatrix1D ycns = (DoubleLabelledMatrix1D) inputs.getValue(ycnsRequirement);
      final HistoricalTimeSeriesBundle ychts = (HistoricalTimeSeriesBundle) inputs.getValue(getYCHTSRequirement(currency, yieldCurveName, samplingPeriod.toString()));
      final DoubleTimeSeries<?> pnLSeries;
      if (curveCalculationConfig.getCalculationMethod().equals(FXImpliedYieldCurveFunction.FX_IMPLIED)) {
        pnLSeries = getPnLSeries(ycns, ychts, schedule, samplingFunction);
      } else {
        final ValueRequirement curveSpecRequirement = getCurveSpecRequirement(currency, yieldCurveName);
        final InterpolatedYieldCurveSpecificationWithSecurities curveSpec = (InterpolatedYieldCurveSpecificationWithSecurities) inputs.getValue(curveSpecRequirement);
        pnLSeries = getPnLSeries(curveSpec, ycns, ychts, schedule, samplingFunction);
      }
      if (result == null) {
        result = pnLSeries;
      } else {
        result = result.add(result);
      }
    }
    if (result == null) {
      throw new OpenGammaRuntimeException("Could not get any values for security " + position.getSecurity());
    }
    result = result.multiply(position.getQuantity().doubleValue());
    final ValueProperties resultProperties = getResultProperties(desiredValue, currencyString);
    final ValueSpecification resultSpec = new ValueSpecification(ValueRequirementNames.PNL_SERIES, target.toSpecification(), resultProperties);
    return Sets.newHashSet(new ComputedValue(resultSpec, result));
  }
View Full Code Here

    return security instanceof SwaptionSecurity;
  }

  @Override
  public Set<ValueRequirement> getRequirements(final FunctionCompilationContext context, final ComputationTarget target, final ValueRequirement desiredValue) {
    final Position position = target.getPosition();
    final Currency currency = FinancialSecurityUtils.getCurrency(position.getSecurity());
    final String currencyString = currency.getCode();
    final ValueProperties constraints = desiredValue.getConstraints();
    final Set<String> surfaceNames = constraints.getValues(ValuePropertyNames.SURFACE);
    if (surfaceNames == null || surfaceNames.size() != 1) {
      return null;
View Full Code Here

    return requirements;
  }

  @Override
  public Set<ValueSpecification> getResults(final FunctionCompilationContext context, final ComputationTarget target) {
    final Position position = target.getPosition();
    final ValueProperties properties = createValueProperties()
        .with(ValuePropertyNames.CALCULATION_METHOD, CalculationPropertyNamesAndValues.BLACK_METHOD)
        .with(ValuePropertyNames.CURRENCY, FinancialSecurityUtils.getCurrency(position.getSecurity()).getCode())
        .withAny(ValuePropertyNames.SURFACE)
        .withAny(ValuePropertyNames.CURVE)
        .withAny(ValuePropertyNames.CURVE_CALCULATION_CONFIG)
        .withAny(ValuePropertyNames.SAMPLING_PERIOD)
        .withAny(ValuePropertyNames.SCHEDULE_CALCULATOR)
View Full Code Here

TOP

Related Classes of com.opengamma.core.position.Position

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.