public void GetInfoTwoSwaps() { string valReportId1 = Guid.NewGuid().ToString(); ValuationReport valuationReport1 = CreateSwapValuationReport(valReportId1); string valReportId2 = Guid.NewGuid().ToString(); ValuationReport valuationReport2 = CreateSwapValuationReport(valReportId2); Engine.Cache.SaveObject(valuationReport1, Engine.NameSpace + "." + valReportId1, null); Engine.Cache.SaveObject(valuationReport2, Engine.NameSpace + "." + valReportId2, null); var excelValuation = new Valuation(); string mergedReportId = excelValuation.Merge(Engine.Cache, Engine.NameSpace, valReportId1, valReportId2, null, null, null, null, null, null, null, null); //var valuation = Engine.Cache.LoadObject<ValuationReport>(mergedReportId); List <ValuationInfoRangeItem> valuationInfoRangeItems = excelValuation.GetInfo(Engine.Cache, Engine.NameSpace, mergedReportId); object[,] range = ObjectToArrayOfPropertiesConverter.ConvertListToHorizontalArrayRange(valuationInfoRangeItems); Debug.Print("GetInfo (two swaps)"); Debug.Print(ParameterFormatter.FormatObject(range)); Assert.AreEqual(3, valuationInfoRangeItems.Count); Assert.AreEqual(mergedReportId, valuationInfoRangeItems[0].Id); Assert.AreEqual("envelope", valuationInfoRangeItems[0].Description); Assert.AreEqual(valReportId1, valuationInfoRangeItems[1].Id); Assert.AreEqual("swap(fixed/float)", valuationInfoRangeItems[1].Description); Assert.AreEqual(valReportId2, valuationInfoRangeItems[2].Id); Assert.AreEqual("swap(fixed/float)", valuationInfoRangeItems[2].Description); }
public void GetDetailedCapFloorCashflowsVanilla() { DateTime valuationDate = DateTime.Today; var irCapFloorPricer = new CapFloorPricer(); var curveId = BuildAndCacheRateCurve(valuationDate); foreach (CapFloorType legType in new[] { CapFloorType.Cap, CapFloorType.Floor }) { Debug.Print("LegType: {0}", legType); CapFloorLegParametersRange_Old capLeg = GetCapFloorInputParameters(valuationDate, valuationDate.AddMonths(6), valuationDate.AddYears(5), legType, "Standard", curveId, curveId); ValuationRange valuationRange = CreateValuationRange(valuationDate); List <DateTimeDoubleRangeItem> notional = GetAmortNotional(capLeg, 3); List <DetailedCashflowRangeItem> cashflowList = irCapFloorPricer.GetDetailedCashflowsWithNotionalSchedule(Engine.Logger, Engine.Cache, Engine.NameSpace, null, null, capLeg, notional, valuationRange); object[,] arrayOfCashflows = ObjectToArrayOfPropertiesConverter.ConvertListToHorizontalArrayRange(cashflowList); Debug.WriteLine("Cashflows:"); Debug.WriteLine(ParameterFormatter.FormatObject(arrayOfCashflows)); } }