public void test_builder1() { DefaultSurfaceMetadata test = DefaultSurfaceMetadata.builder() .surfaceName(SURFACE_NAME.toString()) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.DISCOUNT_FACTOR) .zValueType(ValueType.ZERO_RATE) .dayCount(ACT_365F) .addInfo(DESCRIPTION, "Hello") .parameterMetadata(ImmutableList.of(ParameterMetadata.empty())) .build(); assertThat(test.getSurfaceName()).isEqualTo(SURFACE_NAME); assertThat(test.getXValueType()).isEqualTo(ValueType.YEAR_FRACTION); assertThat(test.getYValueType()).isEqualTo(ValueType.DISCOUNT_FACTOR); assertThat(test.getZValueType()).isEqualTo(ValueType.ZERO_RATE); assertThat(test.getInfo(SurfaceInfoType.DAY_COUNT)).isEqualTo(ACT_365F); assertThat(test.findInfo(SurfaceInfoType.DAY_COUNT)).isEqualTo(Optional.of(ACT_365F)); assertThat(test.getInfo(DESCRIPTION)).isEqualTo("Hello"); assertThat(test.findInfo(DESCRIPTION)).isEqualTo(Optional.of("Hello")); assertThat(test.findInfo(SurfaceInfoType.of("Rubbish"))).isEqualTo(Optional.empty()); assertThat(test.getParameterMetadata().isPresent()).isTrue(); assertThat(test.getParameterMetadata().get()).containsExactly(ParameterMetadata.empty()); }
public void test_of_SurfaceName_noMetadata() { DefaultSurfaceMetadata test = DefaultSurfaceMetadata.of(SURFACE_NAME); assertThat(test.getSurfaceName()).isEqualTo(SURFACE_NAME); assertThat(test.getXValueType()).isEqualTo(ValueType.UNKNOWN); assertThat(test.getYValueType()).isEqualTo(ValueType.UNKNOWN); assertThat(test.getZValueType()).isEqualTo(ValueType.UNKNOWN); assertThat(test.getInfo()).isEqualTo(ImmutableMap.of()); assertThat(test.getParameterMetadata().isPresent()).isFalse(); }
/** * Restricted copy constructor. * * @param beanToCopy the bean to copy from */ DefaultSurfaceMetadataBuilder(DefaultSurfaceMetadata beanToCopy) { this.surfaceName = beanToCopy.getSurfaceName(); this.xValueType = beanToCopy.getXValueType(); this.yValueType = beanToCopy.getYValueType(); this.zValueType = beanToCopy.getZValueType(); this.info.putAll(beanToCopy.getInfo()); this.parameterMetadata = beanToCopy.getParameterMetadata().orElse(null); }
public void test_withParameterMetadata_clearWhenEmpty() { DefaultSurfaceMetadata test = DefaultSurfaceMetadata.of(SURFACE_NAME).withParameterMetadata(null); assertThat(test.getSurfaceName()).isEqualTo(SURFACE_NAME); assertThat(test.getXValueType()).isEqualTo(ValueType.UNKNOWN); assertThat(test.getYValueType()).isEqualTo(ValueType.UNKNOWN); assertThat(test.getZValueType()).isEqualTo(ValueType.UNKNOWN); assertThat(test.getParameterMetadata().isPresent()).isFalse(); }
public void test_withInfo() { DefaultSurfaceMetadata base = DefaultSurfaceMetadata.of(SURFACE_NAME); assertThat(base.findInfo(SurfaceInfoType.DAY_COUNT).isPresent()).isFalse(); DefaultSurfaceMetadata test = base.withInfo(SurfaceInfoType.DAY_COUNT, ACT_360); assertThat(base.findInfo(SurfaceInfoType.DAY_COUNT).isPresent()).isFalse(); assertThat(test.findInfo(SurfaceInfoType.DAY_COUNT).isPresent()).isTrue(); }
SurfaceMetadata metadata = DefaultSurfaceMetadata.builder() .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.STRIKE)
public void test_builder3() { DefaultSurfaceMetadata test = DefaultSurfaceMetadata.builder() .surfaceName(SURFACE_NAME) .parameterMetadata(ImmutableList.of(ParameterMetadata.empty())) .clearParameterMetadata() .build(); assertThat(test.getSurfaceName()).isEqualTo(SURFACE_NAME); assertThat(test.getXValueType()).isEqualTo(ValueType.UNKNOWN); assertThat(test.getYValueType()).isEqualTo(ValueType.UNKNOWN); assertThat(test.getZValueType()).isEqualTo(ValueType.UNKNOWN); assertThat(test.getParameterMetadata().isPresent()).isFalse(); }
public void coverage() { DefaultSurfaceMetadata test = DefaultSurfaceMetadata.of(SURFACE_NAME); coverImmutableBean(test); DefaultSurfaceMetadata test2 = DefaultSurfaceMetadata.builder() .surfaceName(SurfaceName.of("Test")) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.DISCOUNT_FACTOR) .zValueType(ValueType.ZERO_RATE) .dayCount(ACT_365F) .parameterMetadata(ParameterMetadata.empty()) .build(); coverBeanEquals(test, test2); }
/** * Creates the metadata. * <p> * No information will be available for the x-values, y-values, z-values or parameters. * * @param name the surface name * @return the metadata */ public static DefaultSurfaceMetadata of(String name) { return of(SurfaceName.of(name)); }
public void test_withParameterMetadata_clearWhenNonEmpty() { DefaultSurfaceMetadata test = DefaultSurfaceMetadata.of(SURFACE_NAME) .withParameterMetadata(ImmutableList.of(ParameterMetadata.empty())) .withParameterMetadata(null); assertThat(test.getSurfaceName()).isEqualTo(SURFACE_NAME); assertThat(test.getXValueType()).isEqualTo(ValueType.UNKNOWN); assertThat(test.getYValueType()).isEqualTo(ValueType.UNKNOWN); assertThat(test.getZValueType()).isEqualTo(ValueType.UNKNOWN); assertThat(test.getParameterMetadata().isPresent()).isFalse(); }
/** * Creates metadata for a surface providing Black expiry-log moneyness volatility. * <p> * The x-values represent time to expiry year fractions as defined by the specified day count. * The y-values represent log-moneyness * The z-values represent Black volatility. * * @param name the surface name * @param dayCount the day count * @return the surface metadata */ public static SurfaceMetadata blackVolatilityByExpiryLogMoneyness(SurfaceName name, DayCount dayCount) { return DefaultSurfaceMetadata.builder() .surfaceName(name) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.LOG_MONEYNESS) .zValueType(ValueType.BLACK_VOLATILITY) .dayCount(dayCount) .build(); }
/** * Creates a constant surface with a specific value. * * @param name the surface name * @param zValue the constant z-value * @return the surface */ public static ConstantSurface of(SurfaceName name, double zValue) { return new ConstantSurface(DefaultSurfaceMetadata.of(name), zValue); }
@Override protected Object propertyGet(Bean bean, String propertyName, boolean quiet) { switch (propertyName.hashCode()) { case -1403077416: // surfaceName return ((DefaultSurfaceMetadata) bean).getSurfaceName(); case -868509005: // xValueType return ((DefaultSurfaceMetadata) bean).getXValueType(); case -1065022510: // yValueType return ((DefaultSurfaceMetadata) bean).getYValueType(); case -1261536015: // zValueType return ((DefaultSurfaceMetadata) bean).getZValueType(); case 3237038: // info return ((DefaultSurfaceMetadata) bean).getInfo(); case -1169106440: // parameterMetadata return ((DefaultSurfaceMetadata) bean).parameterMetadata; } return super.propertyGet(bean, propertyName, quiet); }
public void test_withParameterMetadata() { DefaultSurfaceMetadata test = DefaultSurfaceMetadata.of(SURFACE_NAME) .withParameterMetadata(ImmutableList.of(ParameterMetadata.empty())); assertThat(test.getSurfaceName()).isEqualTo(SURFACE_NAME); assertThat(test.getXValueType()).isEqualTo(ValueType.UNKNOWN); assertThat(test.getYValueType()).isEqualTo(ValueType.UNKNOWN); assertThat(test.getZValueType()).isEqualTo(ValueType.UNKNOWN); assertThat(test.getParameterMetadata().isPresent()).isTrue(); assertThat(test.getParameterMetadata().get()).containsExactly(ParameterMetadata.empty()); }
public void test_builder2() { DefaultSurfaceMetadata test = DefaultSurfaceMetadata.builder() .surfaceName(SURFACE_NAME) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.DISCOUNT_FACTOR) .zValueType(ValueType.ZERO_RATE) .dayCount(ACT_365F) .addInfo(SurfaceInfoType.DAY_COUNT, null) .addInfo(DESCRIPTION, "Hello") .parameterMetadata(ImmutableList.of(ParameterMetadata.empty())) .build(); assertThat(test.getSurfaceName()).isEqualTo(SURFACE_NAME); assertThat(test.getXValueType()).isEqualTo(ValueType.YEAR_FRACTION); assertThat(test.getYValueType()).isEqualTo(ValueType.DISCOUNT_FACTOR); assertThat(test.getZValueType()).isEqualTo(ValueType.ZERO_RATE); assertThrowsIllegalArg(() -> test.getInfo(SurfaceInfoType.DAY_COUNT)); assertThat(test.findInfo(SurfaceInfoType.DAY_COUNT)).isEmpty(); assertThat(test.getInfo(DESCRIPTION)).isEqualTo("Hello"); assertThat(test.findInfo(DESCRIPTION)).isEqualTo(Optional.of("Hello")); assertThat(test.findInfo(SurfaceInfoType.of("Rubbish"))).isEqualTo(Optional.empty()); assertThat(test.getParameterMetadata().isPresent()).isTrue(); assertThat(test.getParameterMetadata().get()).containsExactly(ParameterMetadata.empty()); }
/** * Creates metadata for a surface providing Black expiry-tenor volatility. * <p> * The x-values represent time to expiry year fractions as defined by the specified day count. * The y-values represent tenor year fractions. * The z-values represent Black volatility. * * @param name the surface name * @param dayCount the day count * @return the surface metadata */ public static SurfaceMetadata blackVolatilityByExpiryTenor(SurfaceName name, DayCount dayCount) { return DefaultSurfaceMetadata.builder() .surfaceName(name) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.YEAR_FRACTION) .zValueType(ValueType.BLACK_VOLATILITY) .dayCount(dayCount) .build(); }
@Override public SurfaceMetadata getMetadata() { return DefaultSurfaceMetadata.of(SURFACE_NAME); }
/** * Creates metadata for a surface providing Black expiry-strike volatility. * <p> * The x-values represent time to expiry year fractions as defined by the specified day count. * The y-values represent strike * The z-values represent Black volatility. * * @param name the surface name * @param dayCount the day count * @return the surface metadata */ public static SurfaceMetadata blackVolatilityByExpiryStrike(SurfaceName name, DayCount dayCount) { return DefaultSurfaceMetadata.builder() .surfaceName(name) .xValueType(ValueType.YEAR_FRACTION) .yValueType(ValueType.STRIKE) .zValueType(ValueType.BLACK_VOLATILITY) .dayCount(dayCount) .build(); }
public void test_serialization() { DefaultSurfaceMetadata test = DefaultSurfaceMetadata.of(SURFACE_NAME); assertSerialization(test); }
public void test_of_String_noMetadata() { DefaultSurfaceMetadata test = DefaultSurfaceMetadata.of(NAME); assertThat(test.getSurfaceName()).isEqualTo(SURFACE_NAME); assertThat(test.getXValueType()).isEqualTo(ValueType.UNKNOWN); assertThat(test.getYValueType()).isEqualTo(ValueType.UNKNOWN); assertThat(test.getZValueType()).isEqualTo(ValueType.UNKNOWN); assertThat(test.getInfo()).isEqualTo(ImmutableMap.of()); assertThat(test.getParameterMetadata().isPresent()).isFalse(); }