/** * Copyright (C) 2014 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.strata.basics.value; import static com.opengamma.strata.collect.TestHelper.assertSerialization; import static com.opengamma.strata.collect.TestHelper.assertThrowsIllegalArg; import static com.opengamma.strata.collect.TestHelper.coverImmutableBean; import static com.opengamma.strata.collect.TestHelper.date; import static org.testng.Assert.assertEquals; import java.util.Optional; import java.util.OptionalInt; import org.testng.annotations.Test; /** * Test {@link ValueStep}. */ @Test public class ValueStepTest { private static ValueAdjustment DELTA_MINUS_2000 = ValueAdjustment.ofDeltaAmount(-2000); private static ValueAdjustment ABSOLUTE_100 = ValueAdjustment.ofReplace(100); public void test_of_intAdjustment() { ValueStep test = ValueStep.of(2, DELTA_MINUS_2000); assertEquals(test.getDate(), Optional.empty()); assertEquals(test.getPeriodIndex(), OptionalInt.of(2)); assertEquals(test.getValue(), DELTA_MINUS_2000); } public void test_of_dateAdjustment() { ValueStep test = ValueStep.of(date(2014, 6, 30), DELTA_MINUS_2000); assertEquals(test.getDate(), Optional.of(date(2014, 6, 30))); assertEquals(test.getPeriodIndex(), OptionalInt.empty()); assertEquals(test.getValue(), DELTA_MINUS_2000); } public void test_builder_invalid() { assertThrowsIllegalArg(() -> ValueStep.builder().value(DELTA_MINUS_2000).build()); assertThrowsIllegalArg(() -> ValueStep.builder().date(date(2014, 6, 30)).periodIndex(1).value(DELTA_MINUS_2000).build()); assertThrowsIllegalArg(() -> ValueStep.builder().periodIndex(0).value(DELTA_MINUS_2000).build()); assertThrowsIllegalArg(() -> ValueStep.builder().periodIndex(-1).value(DELTA_MINUS_2000).build()); } //------------------------------------------------------------------------- public void equals() { ValueStep a1 = ValueStep.of(2, DELTA_MINUS_2000); ValueStep a2 = ValueStep.of(2, DELTA_MINUS_2000); ValueStep b = ValueStep.of(1, DELTA_MINUS_2000); ValueStep c = ValueStep.of(2, ABSOLUTE_100); assertEquals(a1.equals(a1), true); assertEquals(a1.equals(a2), true); assertEquals(a1.equals(b), false); assertEquals(a1.equals(c), false); ValueStep d1 = ValueStep.of(date(2014, 6, 30), DELTA_MINUS_2000); ValueStep d2 = ValueStep.of(date(2014, 6, 30), DELTA_MINUS_2000); ValueStep e = ValueStep.of(date(2014, 7, 30), DELTA_MINUS_2000); ValueStep f = ValueStep.of(date(2014, 7, 30), ABSOLUTE_100); assertEquals(d1.equals(d1), true); assertEquals(d1.equals(d2), true); assertEquals(d1.equals(e), false); assertEquals(d1.equals(f), false); } //------------------------------------------------------------------------- public void coverage() { coverImmutableBean(ValueStep.of(2, DELTA_MINUS_2000)); } public void test_serialization() { assertSerialization(ValueStep.of(2, DELTA_MINUS_2000)); } }