@Override public LocalDateDoubleTimeSeries getTimeSeries(ObservableId id) { LocalDateDoubleTimeSeries timeSeries = underlying1.getTimeSeries(id); return !timeSeries.isEmpty() ? timeSeries : underlying2.getTimeSeries(id); }
@Override public LocalDateDoubleTimeSeries getTimeSeries(ObservableId id) { LocalDateDoubleTimeSeries timeSeries = underlying1.getTimeSeries(id); return !timeSeries.isEmpty() ? timeSeries : underlying2.getTimeSeries(id); }
private OvernightIndexRates historicCurve(OvernightIndex index) { LocalDateDoubleTimeSeries fixings = timeSeries(index); if (index.isActive() || fixings.isEmpty()) { throw new IllegalArgumentException("Unable to find Overnight index curve: " + index); } return HistoricOvernightIndexRates.of(index, valuationDate, fixings); }
private PriceIndexValues historicCurve(PriceIndex index) { LocalDateDoubleTimeSeries fixings = timeSeries(index); if (index.isActive() || fixings.isEmpty()) { throw new IllegalArgumentException("Unable to find Price index curve: " + index); } return HistoricPriceIndexValues.of(index, valuationDate, fixings); }
private IborIndexRates historicCurve(IborIndex index) { LocalDateDoubleTimeSeries fixings = timeSeries(index); if (index.isActive() || fixings.isEmpty()) { throw new IllegalArgumentException("Unable to find Ibor index curve: " + index); } return HistoricIborIndexRates.of(index, valuationDate, fixings); }
private double historicRate(IborIndexObservation observation) { LocalDate fixingDate = observation.getFixingDate(); OptionalDouble fixedRate = fixings.get(fixingDate); if (fixedRate.isPresent()) { return fixedRate.getAsDouble(); } else if (fixingDate.isBefore(getValuationDate())) { // the fixing is required if (fixings.isEmpty()) { throw new IllegalArgumentException( Messages.format("Unable to get fixing for {} on date {}, no time-series supplied", index, fixingDate)); } throw new IllegalArgumentException(Messages.format("Unable to get fixing for {} on date {}", index, fixingDate)); } else { return rateIgnoringFixings(observation); } }
private double historicRate(FxIndexObservation observation) { LocalDate fixingDate = observation.getFixingDate(); OptionalDouble fixedRate = fixings.get(fixingDate); if (fixedRate.isPresent()) { return fixedRate.getAsDouble(); } else if (fixingDate.isBefore(getValuationDate())) { // the fixing is required if (fixings.isEmpty()) { throw new IllegalArgumentException( Messages.format("Unable to get fixing for {} on date {}, no time-series supplied", index, fixingDate)); } throw new IllegalArgumentException(Messages.format("Unable to get fixing for {} on date {}", index, fixingDate)); } else { return forwardRate(observation); } }
private double historicRate(IborIndexObservation observation) { LocalDate fixingDate = observation.getFixingDate(); OptionalDouble fixedRate = fixings.get(fixingDate); if (fixedRate.isPresent()) { return fixedRate.getAsDouble(); } else if (fixingDate.isBefore(getValuationDate())) { // the fixing is required if (fixings.isEmpty()) { throw new IllegalArgumentException( Messages.format("Unable to get fixing for {} on date {}, no time-series supplied", index, fixingDate)); } throw new IllegalArgumentException(Messages.format("Unable to get fixing for {} on date {}", index, fixingDate)); } else { return rateIgnoringFixings(observation); } }
private double historicRate(OvernightIndexObservation observation) { LocalDate fixingDate = observation.getFixingDate(); OptionalDouble fixedRate = fixings.get(fixingDate); if (fixedRate.isPresent()) { return fixedRate.getAsDouble(); } else if (fixingDate.isBefore(getValuationDate())) { // the fixing is required if (fixings.isEmpty()) { throw new IllegalArgumentException( Messages.format("Unable to get fixing for {} on date {}, no time-series supplied", index, fixingDate)); } throw new IllegalArgumentException(Messages.format("Unable to get fixing for {} on date {}", index, fixingDate)); } else { return rateIgnoringFixings(observation); } }
private double historicRate(IborIndexObservation observation) { LocalDate fixingDate = observation.getFixingDate(); OptionalDouble fixedRate = fixings.get(fixingDate); if (fixedRate.isPresent()) { return fixedRate.getAsDouble(); } else if (fixingDate.isBefore(getValuationDate())) { // the fixing is required if (fixings.isEmpty()) { throw new IllegalArgumentException( Messages.format("Unable to get fixing for {} on date {}, no time-series supplied", index, fixingDate)); } throw new IllegalArgumentException(Messages.format("Unable to get fixing for {} on date {}", index, fixingDate)); } else { return rateIgnoringFixings(observation); } }
private double historicRate(OvernightIndexObservation observation) { LocalDate fixingDate = observation.getFixingDate(); OptionalDouble fixedRate = fixings.get(fixingDate); if (fixedRate.isPresent()) { return fixedRate.getAsDouble(); } else if (observation.getPublicationDate().isBefore(getValuationDate())) { // the fixing is required if (fixings.isEmpty()) { throw new IllegalArgumentException( Messages.format("Unable to get fixing for {} on date {}, no time-series supplied", index, fixingDate)); } throw new IllegalArgumentException(Messages.format("Unable to get fixing for {} on date {}", index, fixingDate)); } else { return rateIgnoringFixings(observation); } }
public void test_of_map() { Map<LocalDate, Double> map = new HashMap<>(); map.put(DATE_2011_01_01, 2d); map.put(DATE_2012_01_01, 3d); LocalDateDoubleTimeSeries test = LocalDateDoubleTimeSeries.builder().putAll(map).build(); assertEquals(test.isEmpty(), false); assertEquals(test.size(), 2); assertEquals(test.containsDate(DATE_2010_01_01), false); assertEquals(test.containsDate(DATE_2011_01_01), true); assertEquals(test.containsDate(DATE_2012_01_01), true); assertEquals(test.get(DATE_2010_01_01), OptionalDouble.empty()); assertEquals(test.get(DATE_2011_01_01), OptionalDouble.of(2d)); assertEquals(test.get(DATE_2012_01_01), OptionalDouble.of(3d)); assertEquals(test.dates().toArray(), new Object[] {DATE_2011_01_01, DATE_2012_01_01}); assertEquals(test.values().toArray(), new double[] {2d, 3d}); }
public void test_of_singleton() { LocalDateDoubleTimeSeries test = LocalDateDoubleTimeSeries.of(DATE_2011_01_01, 2d); assertEquals(test.isEmpty(), false); assertEquals(test.size(), 1); assertEquals(test.containsDate(DATE_2010_01_01), false); assertEquals(test.containsDate(DATE_2011_01_01), true); assertEquals(test.containsDate(DATE_2012_01_01), false); assertEquals(test.get(DATE_2010_01_01), OptionalDouble.empty()); assertEquals(test.get(DATE_2011_01_01), OptionalDouble.of(2d)); assertEquals(test.get(DATE_2012_01_01), OptionalDouble.empty()); assertEquals(test.dates().toArray(), new Object[] {DATE_2011_01_01}); assertEquals(test.values().toArray(), new double[] {2d}); }
public void test_of_map() { Map<LocalDate, Double> map = new HashMap<>(); map.put(DATE_2011_01_01, 2d); map.put(DATE_2012_01_01, 3d); LocalDateDoubleTimeSeries test = LocalDateDoubleTimeSeries.builder().putAll(map).build(); assertEquals(test.isEmpty(), false); assertEquals(test.size(), 2); assertEquals(test.containsDate(DATE_2010_01_01), false); assertEquals(test.containsDate(DATE_2011_01_01), true); assertEquals(test.containsDate(DATE_2012_01_01), true); assertEquals(test.get(DATE_2010_01_01), OptionalDouble.empty()); assertEquals(test.get(DATE_2011_01_01), OptionalDouble.of(2d)); assertEquals(test.get(DATE_2012_01_01), OptionalDouble.of(3d)); assertEquals(test.dates().toArray(), new Object[] {DATE_2011_01_01, DATE_2012_01_01}); assertEquals(test.values().toArray(), new double[] {2d, 3d}); }
public void test_of_singleton() { LocalDateDoubleTimeSeries test = LocalDateDoubleTimeSeries.of(DATE_2011_01_01, 2d); assertEquals(test.isEmpty(), false); assertEquals(test.size(), 1); // Check start is not weekend assertEquals(test.containsDate(DATE_2010_01_01), false); assertEquals(test.containsDate(DATE_2011_01_01), true); assertEquals(test.containsDate(DATE_2012_01_01), false); assertEquals(test.get(DATE_2010_01_01), OptionalDouble.empty()); assertEquals(test.get(DATE_2011_01_01), OptionalDouble.of(2d)); assertEquals(test.get(DATE_2012_01_01), OptionalDouble.empty()); assertEquals(test.dates().toArray(), new Object[] {DATE_2011_01_01}); assertEquals(test.values().toArray(), new double[] {2d}); }
public void test_of_collection() { Collection<LocalDateDoublePoint> points = Arrays.asList( LocalDateDoublePoint.of(DATE_2011_01_01, 2d), LocalDateDoublePoint.of(DATE_2012_01_01, 3d)); LocalDateDoubleTimeSeries test = LocalDateDoubleTimeSeries.builder().putAll(points.stream()).build(); assertEquals(test.isEmpty(), false); assertEquals(test.size(), 2); assertEquals(test.containsDate(DATE_2010_01_01), false); assertEquals(test.containsDate(DATE_2011_01_01), true); assertEquals(test.containsDate(DATE_2012_01_01), true); assertEquals(test.get(DATE_2010_01_01), OptionalDouble.empty()); assertEquals(test.get(DATE_2011_01_01), OptionalDouble.of(2d)); assertEquals(test.get(DATE_2012_01_01), OptionalDouble.of(3d)); assertEquals(test.dates().toArray(), new Object[] {DATE_2011_01_01, DATE_2012_01_01}); assertEquals(test.values().toArray(), new double[] {2d, 3d}); }
public void test_of_collectionCollection() { Collection<LocalDate> dates = dates(DATE_2011_01_01, DATE_2012_01_01); Collection<Double> values = values(2d, 3d); LocalDateDoubleTimeSeries test = LocalDateDoubleTimeSeries.builder().putAll(dates, values).build(); assertEquals(test.isEmpty(), false); assertEquals(test.size(), 2); assertEquals(test.containsDate(DATE_2010_01_01), false); assertEquals(test.containsDate(DATE_2011_01_01), true); assertEquals(test.containsDate(DATE_2012_01_01), true); assertEquals(test.get(DATE_2010_01_01), OptionalDouble.empty()); assertEquals(test.get(DATE_2011_01_01), OptionalDouble.of(2d)); assertEquals(test.get(DATE_2012_01_01), OptionalDouble.of(3d)); assertEquals(test.dates().toArray(), new Object[] {DATE_2011_01_01, DATE_2012_01_01}); assertEquals(test.values().toArray(), new double[] {2d, 3d}); }
public void test_emptySeries() { LocalDateDoubleTimeSeries test = LocalDateDoubleTimeSeries.empty(); assertEquals(test.isEmpty(), true); assertEquals(test.size(), 0); assertEquals(test.containsDate(DATE_2010_01_01), false); assertEquals(test.containsDate(DATE_2011_01_01), false); assertEquals(test.containsDate(DATE_2012_01_01), false); assertEquals(test.get(DATE_2010_01_01), OptionalDouble.empty()); assertEquals(test.get(DATE_2011_01_01), OptionalDouble.empty()); assertEquals(test.get(DATE_2012_01_01), OptionalDouble.empty()); assertEquals(test, LocalDateDoubleTimeSeries.builder().putAll(dates(), values()).build()); assertEquals(test.dates().count(), 0); assertEquals(test.values().count(), 0); }
public void test_of_collectionCollection() { Collection<LocalDate> dates = dates(DATE_2011_01_01, DATE_2012_01_01); Collection<Double> values = values(2d, 3d); LocalDateDoubleTimeSeries test = LocalDateDoubleTimeSeries.builder().putAll(dates, values).build(); assertEquals(test.isEmpty(), false); assertEquals(test.size(), 2); assertEquals(test.containsDate(DATE_2010_01_01), false); assertEquals(test.containsDate(DATE_2011_01_01), true); assertEquals(test.containsDate(DATE_2012_01_01), true); assertEquals(test.get(DATE_2010_01_01), OptionalDouble.empty()); assertEquals(test.get(DATE_2011_01_01), OptionalDouble.of(2d)); assertEquals(test.get(DATE_2012_01_01), OptionalDouble.of(3d)); assertEquals(test.dates().toArray(), new Object[] {DATE_2011_01_01, DATE_2012_01_01}); assertEquals(test.values().toArray(), new double[] {2d, 3d}); }
@ImmutableConstructor private SimplePriceIndexValues( PriceIndex index, LocalDate valuationDate, NodalCurve curve, LocalDateDoubleTimeSeries fixings) { ArgChecker.isFalse(fixings.isEmpty(), "Fixings must not be empty"); curve.getMetadata().getXValueType().checkEquals(ValueType.MONTHS, "Incorrect x-value type for price curve"); curve.getMetadata().getYValueType().checkEquals(ValueType.PRICE_INDEX, "Incorrect y-value type for price curve"); this.index = ArgChecker.notNull(index, "index"); this.valuationDate = ArgChecker.notNull(valuationDate, "valuationDate"); this.fixings = ArgChecker.notNull(fixings, "fixings"); this.curve = ArgChecker.notNull(curve, "curve"); }