Package com.opengamma.engine.function.exclusion

Source Code of com.opengamma.engine.function.exclusion.FunctionExclusionGroupTest$Function

/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.engine.function.exclusion;

import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotEquals;
import static org.testng.Assert.assertNull;

import org.testng.annotations.Test;
import org.threeten.bp.Instant;

import com.opengamma.engine.function.CompiledFunctionDefinition;
import com.opengamma.engine.function.FunctionCompilationContext;
import com.opengamma.engine.function.FunctionDefinition;
import com.opengamma.engine.function.FunctionParameters;
import com.opengamma.util.test.TestGroup;

/**
* Tests the function exclusion group class.
*/
@Test(groups = TestGroup.UNIT)
public class FunctionExclusionGroupTest {

  private static class Function implements FunctionDefinition {

    private final String _shortName;

    private Function(String shortName) {
      _shortName = shortName;
    }

    @Override
    public void init(FunctionCompilationContext context) {
      throw new UnsupportedOperationException();
    }

    @Override
    public CompiledFunctionDefinition compile(FunctionCompilationContext context, Instant atInstant) {
      throw new UnsupportedOperationException();
    }

    @Override
    public String getUniqueId() {
      throw new UnsupportedOperationException();
    }

    @Override
    public String getShortName() {
      return _shortName;
    }

    @Override
    public FunctionParameters getDefaultParameters() {
      throw new UnsupportedOperationException();
    }

  }

  public void testAbstract() {
    final FunctionExclusionGroups groups = new AbstractFunctionExclusionGroups() {
      @Override
      protected String getKey(final FunctionDefinition function) {
        if (function.getShortName().startsWith("A_")) {
          return "A";
        } else if (function.getShortName().startsWith("B_")) {
          return "B";
        } else {
          return null;
        }
      }
    };
    final FunctionDefinition a_foo = new Function("A_foo");
    final FunctionDefinition a_bar = new Function("A_bar");
    final FunctionDefinition b_foo = new Function("B_foo");
    final FunctionDefinition b_bar = new Function("B_bar");
    final FunctionDefinition foo = new Function("foo");
    final FunctionDefinition bar = new Function("bar");
    assertNull(groups.getExclusionGroup(foo));
    assertNull(groups.getExclusionGroup(bar));
    final FunctionExclusionGroup afoo1 = groups.getExclusionGroup(a_foo);
    final FunctionExclusionGroup afoo2 = groups.getExclusionGroup(a_foo);
    assertEquals(afoo1, afoo2);
    final FunctionExclusionGroup abar = groups.getExclusionGroup(a_bar);
    assertEquals(abar, afoo1);
    final FunctionExclusionGroup bfoo = groups.getExclusionGroup(b_foo);
    assertNotEquals(abar, bfoo);
    final FunctionExclusionGroup bbar = groups.getExclusionGroup(b_bar);
    assertEquals(bbar, bfoo);
  }

}
TOP

Related Classes of com.opengamma.engine.function.exclusion.FunctionExclusionGroupTest$Function

TOP
Copyright © 2018 www.massapi.com. 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.