Package com.opengamma.engine

Examples of com.opengamma.engine.ComputationTarget


  @BeforeMethod
  public void createGraph() {
    _testGraph = new DependencyGraph("Default");
    _testNode = new DependencyNode[5];
    for (int i = 0; i < _testNode.length; i++) {
      final ComputationTarget target = new ComputationTarget(ComputationTargetType.PRIMITIVE, UniqueId.of("Test", Integer.toString(i)));
      _testNode[i] = new DependencyNode(target);
      _testNode[i].setFunction(MockFunction.getMockFunction(target, "foo"));
    }
    _testNode[0].addOutputValue(_testValue0x);
    _testNode[1].addOutputValue(_testValue1x);
View Full Code Here


public class DependencyGraphTest {

  public void testSubgraphFilter() {
    final DependencyGraph graph = new DependencyGraph("Default");
    for (int i = 0; i < 10; i++) {
      final ComputationTarget target = new ComputationTarget(ComputationTargetType.PRIMITIVE, UniqueId.of("Foo", Integer.toString(i)));
      final DependencyNode node = new DependencyNode(target);
      node.setFunction(new MockFunction(target));
      graph.addDependencyNode(node);
    }
    DependencyGraph filtered = graph.subGraph(ApplyToAllTargets.INSTANCE);
    assertEquals(filtered.getDependencyNodes(), graph.getDependencyNodes());
    filtered = graph.subGraph(new ComputationTargetFilter(new DefaultComputationTargetResolver().atVersionCorrection(VersionCorrection.LATEST)) {
      @Override
      public boolean accept(final ComputationTarget target) {
        return target.getUniqueId().getValue().compareTo("5") >= 0;
      }
    });
    assertEquals(filtered.getDependencyNodes().size(), 5);
  }
View Full Code Here

  //-------------------------------------------------------------------------
  public void test_getParentNode_position() {
    final PortfolioStructure resolver = getPortfolioStructure();
    assertNotNull(resolver);
    assertEquals(_child2,
        resolver.getParentNode(new ComputationTarget(new ComputationTargetSpecification(ComputationTargetType.PORTFOLIO_NODE, _child2.getUniqueId()).containing(
            ComputationTargetType.POSITION, _position1.getUniqueId()), _position1)));
    assertEquals(_child2,
        resolver.getParentNode(new ComputationTarget(new ComputationTargetSpecification(ComputationTargetType.PORTFOLIO_NODE, _root.getUniqueId()).containing(
            ComputationTargetType.PORTFOLIO_NODE, _child2.getUniqueId()).containing(ComputationTargetType.POSITION, _position2.getUniqueId()), _position2)));
  }
View Full Code Here

  @Test(expectedExceptions = {IllegalArgumentException.class })
  public void test_getParentNode_position_badTarget() {
    final PortfolioStructure resolver = getPortfolioStructure();
    assertNotNull(resolver);
    resolver.getParentNode(new ComputationTarget(ComputationTargetType.POSITION, _position1));
  }
View Full Code Here

  }

  @Test(expectedExceptions = DataNotFoundException.class)
  public void test_getParentNode_position_badChild() {
    final PortfolioStructure resolver = getPortfolioStructure();
    resolver.getParentNode(new ComputationTarget(new ComputationTargetSpecification(ComputationTargetType.PORTFOLIO_NODE, UniqueId.of("Invalid", "0")).containing(ComputationTargetType.POSITION,
        _badPosition.getUniqueId()), _badPosition));
  }
View Full Code Here

  private ValueRequirement valueRequirement() {
    return new ValueRequirement("Foo" + (_count++), ComputationTargetSpecification.NULL);
  }

  private ParameterizedFunction parameterizedFunction() {
    final ComputationTarget target = new ComputationTarget(ComputationTargetType.NULL, null);
    final MockFunction function = new MockFunction(target);
    return new ParameterizedFunction(function, function.getDefaultParameters());
  }
View Full Code Here

  //-------------------------------------------------------------------------
  public void test_getRootPortfolioNode_position() {
    final PortfolioStructure resolver = getPortfolioStructure();
    assertNotNull(resolver);
    assertEquals(_root,
        resolver.getRootPortfolioNode(new ComputationTarget(new ComputationTargetSpecification(ComputationTargetType.PORTFOLIO_NODE, _child2.getUniqueId()).containing(ComputationTargetType.POSITION,
            _position1.getUniqueId()), _position1)));
    assertEquals(
        _root,
        resolver.getRootPortfolioNode(new ComputationTarget(new ComputationTargetSpecification(ComputationTargetType.PORTFOLIO_NODE, _root.getUniqueId()).containing(
            ComputationTargetType.PORTFOLIO_NODE, _child2.getUniqueId()).containing(
            ComputationTargetType.POSITION, _position2.getUniqueId()), _position2)));
  }
View Full Code Here

  }

  @Test(expectedExceptions = {IllegalArgumentException.class })
  public void test_getRootPortfolioNode_position_badTarget() {
    final PortfolioStructure resolver = getPortfolioStructure();
    resolver.getRootPortfolioNode(new ComputationTarget(ComputationTargetType.POSITION, _position1));
  }
View Full Code Here

  }

  @Test(expectedExceptions = DataNotFoundException.class)
  public void test_getRootPortfolioNode_position_badChild() {
    final PortfolioStructure resolver = getPortfolioStructure();
    resolver.getRootPortfolioNode(new ComputationTarget(new ComputationTargetSpecification(ComputationTargetType.PORTFOLIO_NODE, UniqueId.of("Invalid", "0")).containing(
        ComputationTargetType.POSITION, _badPosition.getUniqueId()), _badPosition));
  }
View Full Code Here

    assertEquals(2, getResultsInvoked.get());
  }

  public void twoLevelConversion() {
    final DepGraphTestHelper helper = helper();
    final ComputationTarget target1 = new ComputationTarget(ComputationTargetType.PRIMITIVE, UniqueId.of("Target", "1"));
    final ComputationTarget target2 = new ComputationTarget(ComputationTargetType.PRIMITIVE, UniqueId.of("Target", "2"));
    final ComputationTarget target3 = new ComputationTarget(ComputationTargetType.PRIMITIVE, UniqueId.of("Target", "3"));
    final String property = "Constraint";
    MockFunction source = new MockFunction("source1", target1);
    source.addResult(new ComputedValue(new ValueSpecification("A", target1.toSpecification(), ValueProperties.with(ValuePropertyNames.FUNCTION, "1").with(property, "Foo").get()), 1.0));
    helper.getFunctionRepository().addFunction(source);
    source = new MockFunction("source2", target2);
    source.addResult(new ComputedValue(new ValueSpecification("A", target2.toSpecification(), ValueProperties.with(ValuePropertyNames.FUNCTION, "1").with(property, "Bar").get()), 2.0));
    helper.getFunctionRepository().addFunction(source);
    // Constraint preserving A->B
    helper.getFunctionRepository().addFunction(new TestFunction() {

      @Override
      public String getShortName() {
        return "AtoB";
      }

      @Override
      public Set<ValueRequirement> getRequirements(FunctionCompilationContext context, ComputationTarget target, ValueRequirement desiredValue) {
        return Collections.singleton(new ValueRequirement("A", target.toSpecification(), ValueProperties.withAny(property).get()));
      }

      @Override
      public Set<ValueSpecification> getResults(FunctionCompilationContext context, ComputationTarget target) {
        return Collections.singleton(new ValueSpecification("B", target.toSpecification(), createValueProperties().withAny(property).get()));
      }

      @Override
      public Set<ValueSpecification> getResults(FunctionCompilationContext context, ComputationTarget target, Map<ValueSpecification, ValueRequirement> inputs) {
        return Collections.singleton(new ValueSpecification("B", target.toSpecification(), createValueProperties().with(property, inputs.keySet().iterator().next().getProperty(property)).get()));
      }

      @Override
      public Set<ComputedValue> execute(FunctionExecutionContext executionContext, FunctionInputs inputs, ComputationTarget target, Set<ValueRequirement> desiredValues) {
        return null;
      }

    });
    // Constraint converting B->B
    helper.getFunctionRepository().addFunction(new TestFunction() {

      @Override
      public String getShortName() {
        return "BConv";
      }

      @Override
      public Set<ComputedValue> execute(FunctionExecutionContext executionContext, FunctionInputs inputs, ComputationTarget target, Set<ValueRequirement> desiredValues) {
        return null;
      }

      @Override
      public Set<ValueRequirement> getRequirements(FunctionCompilationContext context, ComputationTarget target, ValueRequirement desiredValue) {
        return Collections.singleton(new ValueRequirement("B", target.toSpecification(), ValueProperties.withAny(property).get()));
      }

      @Override
      public Set<ValueSpecification> getResults(FunctionCompilationContext context, ComputationTarget target) {
        return Collections.singleton(new ValueSpecification("B", target.toSpecification(), ValueProperties.all()));
      }

      @Override
      public Set<ValueSpecification> getResults(FunctionCompilationContext context, ComputationTarget target, Map<ValueSpecification, ValueRequirement> inputs) {
        final Set<ValueSpecification> result = Sets.newHashSetWithExpectedSize(inputs.size());
        for (ValueSpecification input : inputs.keySet()) {
          result.add(new ValueSpecification(input.getValueName(), input.getTargetSpecification(), input.getProperties().copy().withAny(property).get()));
        }
        return result;
      }

      @Override
      public int getPriority() {
        return -1;
      }

    });
    // Combining B->C; any constraint but must be the same
    helper.getFunctionRepository().addFunction(new TestFunction() {

      @Override
      public String getShortName() {
        return "BtoC";
      }

      @Override
      public Set<ComputedValue> execute(FunctionExecutionContext executionContext, FunctionInputs inputs, ComputationTarget target, Set<ValueRequirement> desiredValues) {
        return null;
      }

      @Override
      public Set<ValueRequirement> getRequirements(FunctionCompilationContext context, ComputationTarget target, ValueRequirement desiredValue) {
        final Set<ValueRequirement> req = new HashSet<ValueRequirement>();
        Set<String> props = desiredValue.getConstraints().getValues(property);
        if (props == null) {
          if (target.equals(target3)) {
            req.add(new ValueRequirement("B", target1.toSpecification(), ValueProperties.withAny(property).get()));
            req.add(new ValueRequirement("B", target2.toSpecification(), ValueProperties.withAny(property).get()));
          } else {
            req.add(new ValueRequirement("B", target.toSpecification(), ValueProperties.withAny(property).get()));
          }
        } else {
          if (target.equals(target3)) {
            req.add(new ValueRequirement("B", target1.toSpecification(), ValueProperties.with(property, props).get()));
            req.add(new ValueRequirement("B", target2.toSpecification(), ValueProperties.with(property, props).get()));
          } else {
            req.add(new ValueRequirement("B", target.toSpecification(), ValueProperties.with(property, props).get()));
          }
        }
        return req;
      }

      @Override
      public Set<ValueSpecification> getResults(FunctionCompilationContext context, ComputationTarget target) {
        return Collections.singleton(new ValueSpecification("C", target.toSpecification(), createValueProperties().withAny(property).get()));
      }

      @Override
      public Set<ValueSpecification> getResults(FunctionCompilationContext context, ComputationTarget target, Map<ValueSpecification, ValueRequirement> inputs) {
        String propValue = null;
        for (ValueSpecification input : inputs.keySet()) {
          if (propValue == null) {
            propValue = input.getProperty(property);
          } else {
            if (!propValue.equals(input.getProperty(property))) {
              throw new IllegalArgumentException("property mismatch - " + propValue + " vs " + input.getProperty(property));
            }
          }
        }
        return Collections.singleton(new ValueSpecification("C", target.toSpecification(), createValueProperties().with(property, propValue).get()));
      }

    });
    // Converting C->C; constraint omitted implies default
    helper.getFunctionRepository().addFunction(new TestFunction() {

      @Override
      public String getShortName() {
        return "CConv";
      }

      @Override
      public Set<ComputedValue> execute(FunctionExecutionContext executionContext, FunctionInputs inputs, ComputationTarget target, Set<ValueRequirement> desiredValues) {
        return null;
      }

      @Override
      public Set<ValueRequirement> getRequirements(FunctionCompilationContext context, ComputationTarget target, ValueRequirement desiredValue) {
        final Set<String> props = desiredValue.getConstraints().getValues(property);
        if (props == null) {
          return Collections.singleton(new ValueRequirement("C", target.toSpecification(), ValueProperties.with(property, "Default").get()));
        } else {
          return Collections.singleton(new ValueRequirement("C", target.toSpecification(), ValueProperties.withAny(property).get()));
        }
      }

      @Override
      public Set<ValueSpecification> getResults(FunctionCompilationContext context, ComputationTarget target) {
        return Collections.singleton(new ValueSpecification("C", target.toSpecification(), ValueProperties.all()));
      }

      @Override
      public Set<ValueSpecification> getResults(FunctionCompilationContext context, ComputationTarget target, Map<ValueSpecification, ValueRequirement> inputs) {
        final Set<ValueSpecification> result = Sets.newHashSetWithExpectedSize(inputs.size());
        for (ValueSpecification input : inputs.keySet()) {
          result.add(new ValueSpecification(input.getValueName(), input.getTargetSpecification(), input.getProperties().copy().withAny(property).get()));
        }
        return result;
      }

      @Override
      public int getPriority() {
        return -1;
      }

    });
    final DependencyGraphBuilder builder = helper.createBuilder(new FunctionPriority() {
      @Override
      public int getPriority(CompiledFunctionDefinition function) {
        if (function instanceof TestFunction) {
          return ((TestFunction) function).getPriority();
        }
        return 0;
      }
    });
    ((MapComputationTargetResolver) builder.getCompilationContext().getRawComputationTargetResolver()).addTarget(target1);
    ((MapComputationTargetResolver) builder.getCompilationContext().getRawComputationTargetResolver()).addTarget(target2);
    ((MapComputationTargetResolver) builder.getCompilationContext().getRawComputationTargetResolver()).addTarget(target3);
    builder.addTarget(new ValueRequirement("C", target3.toSpecification()));
    builder.addTarget(new ValueRequirement("C", target2.toSpecification()));
    builder.addTarget(new ValueRequirement("C", target1.toSpecification()));
    builder.addTarget(new ValueRequirement("B", target1.toSpecification()));
    builder.addTarget(new ValueRequirement("B", target2.toSpecification()));
    DependencyGraph graph = builder.getDependencyGraph();
View Full Code Here

TOP

Related Classes of com.opengamma.engine.ComputationTarget

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.