/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.timeseries.precise.zdt; import static org.testng.AssertJUnit.assertEquals; import java.math.BigDecimal; import java.util.AbstractMap; import java.util.HashMap; import java.util.List; import java.util.Map; import org.testng.annotations.Test; import org.threeten.bp.Instant; import org.threeten.bp.ZoneOffset; import org.threeten.bp.ZonedDateTime; import com.opengamma.timeseries.ObjectTimeSeries; import com.opengamma.timeseries.precise.PreciseObjectTimeSeries; /** * Test. */ @Test(groups = "unit") public class ImmutableZonedDateTimeObjectTimeSeriesTest extends ZonedDateTimeObjectTimeSeriesTest { private static final ZonedDateTime ZDT_0 = Instant.ofEpochSecond(0).atZone(ZoneOffset.UTC); private static final ZonedDateTime ZDT_1111 = Instant.ofEpochSecond(1111).atZone(ZoneOffset.UTC); private static final ZonedDateTime ZDT_2222 = Instant.ofEpochSecond(2222).atZone(ZoneOffset.UTC); private static final ZonedDateTime ZDT_3333 = Instant.ofEpochSecond(3333).atZone(ZoneOffset.UTC); private static final ZonedDateTime ZDT_12345 = Instant.ofEpochSecond(12345).atZone(ZoneOffset.UTC); @Override protected ZonedDateTimeObjectTimeSeries<BigDecimal> createEmptyTimeSeries() { return ImmutableZonedDateTimeObjectTimeSeries.ofEmpty(ZoneOffset.UTC); } protected ZonedDateTimeObjectTimeSeries<BigDecimal> createStandardTimeSeries() { return (ZonedDateTimeObjectTimeSeries<BigDecimal>) super.createStandardTimeSeries(); } protected ZonedDateTimeObjectTimeSeries<BigDecimal> createStandardTimeSeries2() { return (ZonedDateTimeObjectTimeSeries<BigDecimal>) super.createStandardTimeSeries2(); } @Override protected ObjectTimeSeries<ZonedDateTime, BigDecimal> createTimeSeries(ZonedDateTime[] times, BigDecimal[] values) { return ImmutableZonedDateTimeObjectTimeSeries.of(times, values, ZoneOffset.UTC); } @Override protected ZonedDateTimeObjectTimeSeries<BigDecimal> createTimeSeries(List<ZonedDateTime> times, List<BigDecimal> values) { return ImmutableZonedDateTimeObjectTimeSeries.of(times, values, ZoneOffset.UTC); } @Override protected ObjectTimeSeries<ZonedDateTime, BigDecimal> createTimeSeries(ObjectTimeSeries<ZonedDateTime, BigDecimal> dts) { return ImmutableZonedDateTimeObjectTimeSeries.from(dts, ZoneOffset.UTC); } //------------------------------------------------------------------------- //------------------------------------------------------------------------- //------------------------------------------------------------------------- public void test_of_ZonedDateTime_value() { ZonedDateTimeObjectTimeSeries<Float> ts= ImmutableZonedDateTimeObjectTimeSeries.of(ZDT_12345, 2.0f); assertEquals(ts.size(), 1); assertEquals(ts.getTimeAtIndex(0), ZDT_12345); assertEquals(ts.getValueAtIndex(0), 2.0f); } @Test(expectedExceptions = NullPointerException.class) public void test_of_ZonedDateTime_value_null() { ImmutableZonedDateTimeObjectTimeSeries.of((ZonedDateTime) null, 2.0f); } //------------------------------------------------------------------------- public void test_of_ZonedDateTimeArray_valueArray() { ZonedDateTime[] inDates = new ZonedDateTime[] {ZDT_2222, ZDT_3333}; Float[] inValues = new Float[] {2.0f, 3.0f}; ZonedDateTimeObjectTimeSeries<Float> ts= ImmutableZonedDateTimeObjectTimeSeries.of(inDates, inValues, null); assertEquals(ts.size(), 2); assertEquals(ts.getTimeAtIndex(0), ZDT_2222); assertEquals(ts.getValueAtIndex(0), 2.0f); assertEquals(ts.getTimeAtIndex(1), ZDT_3333); assertEquals(ts.getValueAtIndex(1), 3.0f); } @Test(expectedExceptions = IllegalArgumentException.class) public void test_of_ZonedDateTimeArray_valueArray_wrongOrder() { ZonedDateTime[] inDates = new ZonedDateTime[] {ZDT_2222, ZDT_3333, ZDT_1111}; Float[] inValues = new Float[] {2.0f, 3.0f, 1.0f}; ImmutableZonedDateTimeObjectTimeSeries.of(inDates, inValues, null); } @Test(expectedExceptions = IllegalArgumentException.class) public void test_of_ZonedDateTimeArray_valueArray_mismatchedArrays() { ZonedDateTime[] inDates = new ZonedDateTime[] {ZDT_2222}; Float[] inValues = new Float[] {2.0f, 3.0f}; ImmutableZonedDateTimeObjectTimeSeries.of(inDates, inValues, null); } @Test(expectedExceptions = NullPointerException.class) public void test_of_ZonedDateTimeArray_valueArray_nullDates() { Float[] inValues = new Float[] {2.0f, 3.0f, 1.0f}; ImmutableZonedDateTimeObjectTimeSeries.of((ZonedDateTime[]) null, inValues, null); } @Test(expectedExceptions = NullPointerException.class) public void test_of_ZonedDateTimeArray_valueArray_nullValues() { ZonedDateTime[] inDates = new ZonedDateTime[] {ZDT_2222, ZDT_3333, ZDT_1111}; ImmutableZonedDateTimeObjectTimeSeries.of(inDates, (Float[]) null, null); } //------------------------------------------------------------------------- public void test_of_longArray_valueArray() { long[] inDates = new long[] {2222_000_000_000L, 3333_000_000_000L}; Float[] inValues = new Float[] {2.0f, 3.0f}; ZonedDateTimeObjectTimeSeries<Float> ts= ImmutableZonedDateTimeObjectTimeSeries.of(inDates, inValues, ZoneOffset.UTC); assertEquals(ts.size(), 2); assertEquals(ts.getTimeAtIndex(0), ZDT_2222); assertEquals(ts.getValueAtIndex(0), 2.0f); assertEquals(ts.getTimeAtIndex(1), ZDT_3333); assertEquals(ts.getValueAtIndex(1), 3.0f); } @Test(expectedExceptions = IllegalArgumentException.class) public void test_of_longArray_valueArray_wrongOrder() { long[] inDates = new long[] {2222_000_000_000L, 3333_000_000_000L, 1111_000_000_000L}; Float[] inValues = new Float[] {2.0f, 3.0f, 1.0f}; ImmutableZonedDateTimeObjectTimeSeries.of(inDates, inValues, ZoneOffset.UTC); } @Test(expectedExceptions = IllegalArgumentException.class) public void test_of_longArray_valueArray_mismatchedArrays() { long[] inDates = new long[] {2222_000_000_000L}; Float[] inValues = new Float[] {2.0f, 3.0f}; ImmutableZonedDateTimeObjectTimeSeries.of(inDates, inValues, ZoneOffset.UTC); } @Test(expectedExceptions = NullPointerException.class) public void test_of_longArray_valueArray_nullDates() { Float[] inValues = new Float[] {2.0f, 3.0f, 1.0f}; ImmutableZonedDateTimeObjectTimeSeries.of((long[]) null, inValues, ZoneOffset.UTC); } @Test(expectedExceptions = NullPointerException.class) public void test_of_longArray_valueArray_nullValues() { long[] inDates = new long[] {2222_000_000_000L, 3333_000_000_000L}; ImmutableZonedDateTimeObjectTimeSeries.of(inDates, (Float[]) null, ZoneOffset.UTC); } //------------------------------------------------------------------------- public void test_toString() { ZonedDateTimeObjectTimeSeries<Float> ts= ImmutableZonedDateTimeObjectTimeSeries.of(ZDT_2222, 2.0f); assertEquals("ImmutableZonedDateTimeObjectTimeSeries[(" + ZDT_2222 + ", 2.0)]", ts.toString()); } //------------------------------------------------------------------------- //------------------------------------------------------------------------- //------------------------------------------------------------------------- public void test_builder_nothingAdded() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); assertEquals(ImmutableZonedDateTimeObjectTimeSeries.ofEmpty(ZoneOffset.UTC), bld.build()); } //------------------------------------------------------------------------- public void test_iterator() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); bld.put(ZDT_2222, 2.0f).put(ZDT_3333, 3.0f).put(ZDT_1111, 1.0f); ZonedDateTimeObjectEntryIterator<Float> it = bld.iterator(); assertEquals(true, it.hasNext()); assertEquals(new AbstractMap.SimpleImmutableEntry<>(ZDT_1111, 1.0f), it.next()); assertEquals(ZDT_1111, it.currentTime()); assertEquals(1111_000_000_000L, it.currentTimeFast()); assertEquals(1.0f, it.currentValue()); assertEquals(ZDT_2222, it.nextTime()); assertEquals(ZDT_3333, it.nextTime()); assertEquals(false, it.hasNext()); } public void test_iterator_empty() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); assertEquals(false, bld.iterator().hasNext()); } public void test_iterator_removeFirst() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); bld.put(ZDT_2222, 2.0f).put(ZDT_3333, 3.0f).put(ZDT_1111, 1.0f); ZonedDateTimeObjectEntryIterator<Float> it = bld.iterator(); it.next(); it.remove(); assertEquals(2, bld.size()); ZonedDateTime[] outDates = new ZonedDateTime[] {ZDT_2222, ZDT_3333}; Float[] outValues = new Float[] {2.0f, 3.0f}; assertEquals(ImmutableZonedDateTimeObjectTimeSeries.of(outDates, outValues, null), bld.build()); } public void test_iterator_removeMid() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); bld.put(ZDT_2222, 2.0f).put(ZDT_3333, 3.0f).put(ZDT_1111, 1.0f); ZonedDateTimeObjectEntryIterator<Float> it = bld.iterator(); it.next(); it.next(); it.remove(); assertEquals(2, bld.size()); ZonedDateTime[] outDates = new ZonedDateTime[] {ZDT_1111, ZDT_3333}; Float[] outValues = new Float[] {1.0f, 3.0f}; assertEquals(ImmutableZonedDateTimeObjectTimeSeries.of(outDates, outValues, null), bld.build()); } public void test_iterator_removeLast() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); bld.put(ZDT_2222, 2.0f).put(ZDT_3333, 3.0f).put(ZDT_1111, 1.0f); ZonedDateTimeObjectEntryIterator<Float> it = bld.iterator(); it.next(); it.next(); it.next(); it.remove(); assertEquals(2, bld.size()); ZonedDateTime[] outDates = new ZonedDateTime[] {ZDT_1111, ZDT_2222}; Float[] outValues = new Float[] {1.0f, 2.0f}; assertEquals(ImmutableZonedDateTimeObjectTimeSeries.of(outDates, outValues, null), bld.build()); } //------------------------------------------------------------------------- public void test_builder_put_LD() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); bld.put(ZDT_2222, 2.0f).put(ZDT_3333, 3.0f).put(ZDT_1111, 1.0f); ZonedDateTime[] outDates = new ZonedDateTime[] {ZDT_1111, ZDT_2222, ZDT_3333}; Float[] outValues = new Float[] {1.0f, 2.0f, 3.0f}; assertEquals(ImmutableZonedDateTimeObjectTimeSeries.of(outDates, outValues, null), bld.build()); } public void test_builder_put_ZonedDateTime_alreadyThere() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); bld.put(ZDT_2222, 2.0f).put(ZDT_3333, 3.0f).put(ZDT_2222, 1.0f); ZonedDateTime[] outDates = new ZonedDateTime[] {ZDT_2222, ZDT_3333}; Float[] outValues = new Float[] {1.0f, 3.0f}; assertEquals(ImmutableZonedDateTimeObjectTimeSeries.of(outDates, outValues, null), bld.build()); } //------------------------------------------------------------------------- public void test_builder_put_long() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); bld.put(2222_000_000_000L, 2.0f).put(3333_000_000_000L, 3.0f).put(1111_000_000_000L, 1.0f); ZonedDateTime[] outDates = new ZonedDateTime[] {ZDT_1111, ZDT_2222, ZDT_3333}; Float[] outValues = new Float[] {1.0f, 2.0f, 3.0f}; assertEquals(ImmutableZonedDateTimeObjectTimeSeries.of(outDates, outValues, null), bld.build()); } public void test_builder_put_long_alreadyThere() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); bld.put(2222_000_000_000L, 2.0f).put(3333_000_000_000L, 3.0f).put(2222_000_000_000L, 1.0f); ZonedDateTime[] outDates = new ZonedDateTime[] {ZDT_2222, ZDT_3333}; Float[] outValues = new Float[] {1.0f, 3.0f}; assertEquals(ImmutableZonedDateTimeObjectTimeSeries.of(outDates, outValues, null), bld.build()); } public void test_builder_put_long_big() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); long[] outDates = new long[600]; Float[] outValues = new Float[600]; for (int i = 0; i < 600; i++) { bld.put(2222_000_000_000L + i, (float) i); outDates[i] = 2222_000_000_000L + i; outValues[i] = (float) i; } assertEquals(ImmutableZonedDateTimeObjectTimeSeries.of(outDates, outValues, ZoneOffset.UTC), bld.build()); } //------------------------------------------------------------------------- public void test_builder_putAll_LD() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); ZonedDateTime[] inDates = new ZonedDateTime[] {ZDT_2222, ZDT_3333, ZDT_1111}; Float[] inValues = new Float[] {2.0f, 3.0f, 1.0f}; bld.putAll(inDates, inValues); ZonedDateTime[] outDates = new ZonedDateTime[] {ZDT_1111, ZDT_2222, ZDT_3333}; Float[] outValues = new Float[] {1.0f, 2.0f, 3.0f}; assertEquals(ImmutableZonedDateTimeObjectTimeSeries.of(outDates, outValues, null), bld.build()); } @Test(expectedExceptions = IllegalArgumentException.class) public void test_builder_putAll_ZonedDateTime_mismatchedArrays() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); ZonedDateTime[] inDates = new ZonedDateTime[] {ZDT_2222, ZDT_3333}; Float[] inValues = new Float[] {2.0f, 3.0f, 1.0f}; bld.putAll(inDates, inValues); } //------------------------------------------------------------------------- public void test_builder_putAll_long() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); long[] inDates = new long[] {2222_000_000_000L, 3333_000_000_000L, 1111_000_000_000L}; Float[] inValues = new Float[] {2.0f, 3.0f, 1.0f}; bld.putAll(inDates, inValues); ZonedDateTime[] outDates = new ZonedDateTime[] {ZDT_1111, ZDT_2222, ZDT_3333}; Float[] outValues = new Float[] {1.0f, 2.0f, 3.0f}; assertEquals(ImmutableZonedDateTimeObjectTimeSeries.of(outDates, outValues, null), bld.build()); } @Test(expectedExceptions = IllegalArgumentException.class) public void test_builder_putAll_long_mismatchedArrays() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); long[] inDates = new long[] {2222_000_000_000L, 3333_000_000_000L}; Float[] inValues = new Float[] {2.0f, 3.0f, 1.0f}; bld.putAll(inDates, inValues); } //------------------------------------------------------------------------- public void test_builder_putAll_DDTS() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); long[] inDates = new long[] {1111_000_000_000L, 2222_000_000_000L, 3333_000_000_000L}; Float[] inValues = new Float[] {1.0f, 2.0f, 3.0f}; PreciseObjectTimeSeries<?, Float> ddts = ImmutableZonedDateTimeObjectTimeSeries.of(inDates, inValues, ZoneOffset.UTC); bld.putAll(ddts); ZonedDateTime[] outDates = new ZonedDateTime[] {ZDT_1111, ZDT_2222, ZDT_3333}; Float[] outValues = new Float[] {1.0f, 2.0f, 3.0f}; assertEquals(ImmutableZonedDateTimeObjectTimeSeries.of(outDates, outValues, null), bld.build()); } //------------------------------------------------------------------------- public void test_builder_putAll_DDTS_range_allNonEmptyBuilder() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); long[] inDates = new long[] {1111_000_000_000L, 2222_000_000_000L, 3333_000_000_000L}; Float[] inValues = new Float[] {1.0f, 2.0f, 3.0f}; PreciseObjectTimeSeries<?, Float> ddts = ImmutableZonedDateTimeObjectTimeSeries.of(inDates, inValues, ZoneOffset.UTC); bld.put(ZDT_0, 0.5f).putAll(ddts, 0, 3); ZonedDateTime[] outDates = new ZonedDateTime[] {ZDT_0, ZDT_1111, ZDT_2222, ZDT_3333}; Float[] outValues = new Float[] {0.5f, 1.0f, 2.0f, 3.0f}; assertEquals(ImmutableZonedDateTimeObjectTimeSeries.of(outDates, outValues, null), bld.build()); } public void test_builder_putAll_DDTS_range_fromStart() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); long[] inDates = new long[] {1111_000_000_000L, 2222_000_000_000L, 3333_000_000_000L}; Float[] inValues = new Float[] {1.0f, 2.0f, 3.0f}; PreciseObjectTimeSeries<?, Float> ddts = ImmutableZonedDateTimeObjectTimeSeries.of(inDates, inValues, ZoneOffset.UTC); bld.putAll(ddts, 0, 1); ZonedDateTime[] outDates = new ZonedDateTime[] {ZDT_1111}; Float[] outValues = new Float[] {1.0f}; assertEquals(ImmutableZonedDateTimeObjectTimeSeries.of(outDates, outValues, null), bld.build()); } public void test_builder_putAll_DDTS_range_toEnd() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); long[] inDates = new long[] {1111_000_000_000L, 2222_000_000_000L, 3333_000_000_000L}; Float[] inValues = new Float[] {1.0f, 2.0f, 3.0f}; PreciseObjectTimeSeries<?, Float> ddts = ImmutableZonedDateTimeObjectTimeSeries.of(inDates, inValues, ZoneOffset.UTC); bld.putAll(ddts, 1, 3); ZonedDateTime[] outDates = new ZonedDateTime[] {ZDT_2222, ZDT_3333}; Float[] outValues = new Float[] {2.0f, 3.0f}; assertEquals(ImmutableZonedDateTimeObjectTimeSeries.of(outDates, outValues, null), bld.build()); } public void test_builder_putAll_DDTS_range_empty() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); long[] inDates = new long[] {1111_000_000_000L, 2222_000_000_000L, 3333_000_000_000L}; Float[] inValues = new Float[] {1.0f, 2.0f, 3.0f}; PreciseObjectTimeSeries<?, Float> ddts = ImmutableZonedDateTimeObjectTimeSeries.of(inDates, inValues, ZoneOffset.UTC); bld.put(ZDT_0, 0.5f).putAll(ddts, 1, 1); ZonedDateTime[] outDates = new ZonedDateTime[] {ZDT_0}; Float[] outValues = new Float[] {0.5f}; assertEquals(ImmutableZonedDateTimeObjectTimeSeries.of(outDates, outValues, null), bld.build()); } @Test(expectedExceptions = IndexOutOfBoundsException.class) public void test_builder_putAll_DDTS_range_startInvalidLow() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); long[] inDates = new long[] {1111_000_000_000L, 2222_000_000_000L, 3333_000_000_000L}; Float[] inValues = new Float[] {1.0f, 2.0f, 3.0f}; PreciseObjectTimeSeries<?, Float> ddts = ImmutableZonedDateTimeObjectTimeSeries.of(inDates, inValues, ZoneOffset.UTC); bld.putAll(ddts, -1, 3); } @Test(expectedExceptions = IndexOutOfBoundsException.class) public void test_builder_putAll_DDTS_range_startInvalidHigh() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); long[] inDates = new long[] {1111_000_000_000L, 2222_000_000_000L, 3333_000_000_000L}; Float[] inValues = new Float[] {1.0f, 2.0f, 3.0f}; PreciseObjectTimeSeries<?, Float> ddts = ImmutableZonedDateTimeObjectTimeSeries.of(inDates, inValues, ZoneOffset.UTC); bld.putAll(ddts, 4, 2); } @Test(expectedExceptions = IndexOutOfBoundsException.class) public void test_builder_putAll_DDTS_range_endInvalidLow() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); long[] inDates = new long[] {1111_000_000_000L, 2222_000_000_000L, 3333_000_000_000L}; Float[] inValues = new Float[] {1.0f, 2.0f, 3.0f}; PreciseObjectTimeSeries<?, Float> ddts = ImmutableZonedDateTimeObjectTimeSeries.of(inDates, inValues, ZoneOffset.UTC); bld.putAll(ddts, 1, -1); } @Test(expectedExceptions = IndexOutOfBoundsException.class) public void test_builder_putAll_DDTS_range_endInvalidHigh() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); long[] inDates = new long[] {1111_000_000_000L, 2222_000_000_000L, 3333_000_000_000L}; Float[] inValues = new Float[] {1.0f, 2.0f, 3.0f}; PreciseObjectTimeSeries<?, Float> ddts = ImmutableZonedDateTimeObjectTimeSeries.of(inDates, inValues, ZoneOffset.UTC); bld.putAll(ddts, 3, 4); } @Test(expectedExceptions = IndexOutOfBoundsException.class) public void test_builder_putAll_DDTS_range_startEndOrder() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); long[] inDates = new long[] {1111_000_000_000L, 2222_000_000_000L, 3333_000_000_000L}; Float[] inValues = new Float[] {1.0f, 2.0f, 3.0f}; PreciseObjectTimeSeries<?, Float> ddts = ImmutableZonedDateTimeObjectTimeSeries.of(inDates, inValues, ZoneOffset.UTC); bld.putAll(ddts, 3, 2); } //------------------------------------------------------------------------- public void test_builder_putAll_Map() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); Map<ZonedDateTime, Float> map = new HashMap<>(); map.put(ZDT_2222, 2.0f); map.put(ZDT_3333, 3.0f); map.put(ZDT_1111, 1.0f); bld.putAll(map); ZonedDateTime[] outDates = new ZonedDateTime[] {ZDT_1111, ZDT_2222, ZDT_3333}; Float[] outValues = new Float[] {1.0f, 2.0f, 3.0f}; assertEquals(ImmutableZonedDateTimeObjectTimeSeries.of(outDates, outValues, null), bld.build()); } public void test_builder_putAll_Map_empty() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); Map<ZonedDateTime, Float> map = new HashMap<>(); bld.put(ZDT_0, 0.5f).putAll(map); ZonedDateTime[] outDates = new ZonedDateTime[] {ZDT_0}; Float[] outValues = new Float[] {0.5f}; assertEquals(ImmutableZonedDateTimeObjectTimeSeries.of(outDates, outValues, null), bld.build()); } //------------------------------------------------------------------------- public void test_builder_clearEmpty() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); bld.clear(); assertEquals(ImmutableZonedDateTimeObjectTimeSeries.ofEmpty(ZoneOffset.UTC), bld.build()); } public void test_builder_clearSomething() { ZonedDateTimeObjectTimeSeriesBuilder<Float> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); bld.put(2222_000_000_000L, 1.0f).clear(); assertEquals(ImmutableZonedDateTimeObjectTimeSeries.ofEmpty(ZoneOffset.UTC), bld.build()); } //------------------------------------------------------------------------- public void test_builder_toString() { ZonedDateTimeObjectTimeSeriesBuilder<BigDecimal> bld = ImmutableZonedDateTimeObjectTimeSeries.builder(ZoneOffset.UTC); assertEquals("Builder[size=1]", bld.put(2222_000_000_000L, BigDecimal.valueOf(1.0)).toString()); } }