//------------------------------------------------------------------------- public virtual void coverage() { RawOptionData test = sut(); coverImmutableBean(test); RawOptionData test2 = sut2(); coverBeanEquals(test, test2); }
//------------------------------------------------------------------------- public virtual void of() { RawOptionData test = sut(); assertEquals(test.Strikes, MONEYNESS); assertEquals(test.StrikeType, ValueType.SIMPLE_MONEYNESS); assertEquals(test.Data, DATA_FULL); assertEquals(test.DataType, ValueType.NORMAL_VOLATILITY); }
/// <summary> /// Gets the raw option data for a given tenor. /// </summary> /// <param name="tenor"> the tenor to retrieve </param> /// <returns> the raw option data </returns> public RawOptionData getData(Tenor tenor) { RawOptionData result = data.get(tenor); if (result == null) { throw new System.ArgumentException("No data found for tenor " + tenor); } return(result); }
internal static RawOptionData sut2() { IList <Period> expiries2 = new List <Period>(); expiries2.Add(Period.ofMonths(3)); expiries2.Add(Period.ofYears(1)); expiries2.Add(Period.ofYears(5)); RawOptionData test2 = RawOptionData.of(expiries2, STRIKES, ValueType.STRIKE, DATA_SPARSE, ERROR, ValueType.BLACK_VOLATILITY); return(test2); }
public virtual void ofBlackVolatility() { double shift = 0.0075; RawOptionData test = RawOptionData.ofBlackVolatility(EXPIRIES, STRIKES, ValueType.STRIKE, DATA_SPARSE, shift); assertEquals(test.Strikes, STRIKES); assertEquals(test.StrikeType, ValueType.STRIKE); assertEquals(test.Data, DATA_SPARSE); assertEquals(test.DataType, ValueType.BLACK_VOLATILITY); assertEquals(test.Shift, double?.of(shift)); assertFalse(test.Error.Present); }
//----------------------------------------------------------------------- public override bool Equals(object obj) { if (obj == this) { return(true); } if (obj != null && obj.GetType() == this.GetType()) { RawOptionData other = (RawOptionData)obj; return(JodaBeanUtils.equal(expiries, other.expiries) && JodaBeanUtils.equal(strikes, other.strikes) && JodaBeanUtils.equal(strikeType, other.strikeType) && JodaBeanUtils.equal(data, other.data) && JodaBeanUtils.equal(error, other.error) && JodaBeanUtils.equal(dataType, other.dataType) && JodaBeanUtils.equal(shift, other.shift)); } return(false); }
public virtual void available_smile_at_expiry() { double shift = 0.0075; RawOptionData test = RawOptionData.ofBlackVolatility(EXPIRIES, STRIKES, ValueType.STRIKE, DATA_SPARSE, shift); DoubleArray[] strikesAvailable = new DoubleArray[3]; strikesAvailable[0] = DoubleArray.EMPTY; strikesAvailable[1] = DoubleArray.of(0.0050, 0.0150, 0.0250); strikesAvailable[2] = DoubleArray.of(-0.0050, 0.0050, 0.0150, 0.0250); DoubleArray[] volAvailable = new DoubleArray[3]; volAvailable[0] = DoubleArray.EMPTY; volAvailable[1] = DoubleArray.of(0.10, 0.11, 0.12); volAvailable[2] = DoubleArray.of(0.10, 0.11, 0.12, 0.13); for (int i = 0; i < DATA_SPARSE.rowCount(); i++) { Pair <DoubleArray, DoubleArray> smile = test.availableSmileAtExpiry(EXPIRIES[i]); assertEquals(smile.First, strikesAvailable[i]); } }
internal static RawOptionData sut3() { return(RawOptionData.of(EXPIRIES, MONEYNESS, ValueType.SIMPLE_MONEYNESS, DATA_FULL, ERROR, ValueType.NORMAL_VOLATILITY)); }
public virtual void test_serialization() { RawOptionData test = RawOptionData.of(EXPIRIES, MONEYNESS, ValueType.SIMPLE_MONEYNESS, DATA_FULL, ValueType.BLACK_VOLATILITY); assertSerialization(test); }