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 ConvertObjectToVerticalArrayArrayOfTwoObjects() { var classWithParamData1 = new ClassWithParamData { Name = "Name 21", Age = 100, Size = 40, Type = PersonType.One, Adjusted = false }; var classWithParamData2 = new ClassWithParamData { Name = "Name 22", Age = 200, Size = 40, Type = PersonType.Two, Adjusted = true }; var classWithParamDatas = new[] { classWithParamData1, classWithParamData2 }; object[,] lists = ObjectToArrayOfPropertiesConverter.ConvertObjectToVerticalArrayRange(classWithParamDatas); Assert.AreEqual(lists[0, 0], "Name 21"); Assert.AreEqual(lists[1, 0], 100d); Assert.AreEqual(lists[2, 0], 40); Assert.AreEqual(lists[3, 0], PersonType.One); Assert.AreEqual(lists[4, 0], false); Assert.AreEqual(lists[0, 1], "Name 22"); Assert.AreEqual(lists[1, 1], 200d); Assert.AreEqual(lists[2, 1], 40); Assert.AreEqual(lists[3, 1], PersonType.Two); Assert.AreEqual(lists[4, 1], true); }
public void CreateObjectSimpleTypes() { bool error; var stringFields = new List <object>(new object[] { "fieldsString" }); var stringValue = ObjectToArrayOfPropertiesConverter.CreateObject <string>(stringFields, out error); Assert.IsFalse(error); Assert.AreEqual("fieldsString", stringValue); var dateTimeFields = new List <object>(new object[] { DateTime.Today.Date }); var dateTimeValue = ObjectToArrayOfPropertiesConverter.CreateObject <DateTime>(dateTimeFields, out error); Assert.IsFalse(error); Assert.AreEqual(DateTime.Today.Date, dateTimeValue); var intFields = new List <object>(new object[] { 1 }); var intValue = ObjectToArrayOfPropertiesConverter.CreateObject <int>(intFields, out error); Assert.IsFalse(error); Assert.AreEqual(1, intValue); var doubleFields = new List <object>(new object[] { 1.1 }); var doubleValue = ObjectToArrayOfPropertiesConverter.CreateObject <double>(doubleFields, out error); Assert.IsFalse(error); Assert.AreEqual(1.1, doubleValue); var decimalFields = new List <object>(new object[] { 1.2m }); var decimalValue = ObjectToArrayOfPropertiesConverter.CreateObject <decimal>(decimalFields, out error); Assert.IsFalse(error); Assert.AreEqual(1.2m, decimalValue); }
public void CreateListFromHorizontalArrayRangeMattsRequest() { var sourceArrayWithExtraData = new object[4, 4]; // first two rows is almost empty (except 0-s) // sourceArrayWithExtraData[0, 0] = ""; sourceArrayWithExtraData[0, 1] = ""; sourceArrayWithExtraData[0, 2] = ""; sourceArrayWithExtraData[0, 3] = ""; sourceArrayWithExtraData[1, 0] = ""; sourceArrayWithExtraData[1, 1] = ""; sourceArrayWithExtraData[1, 2] = ""; sourceArrayWithExtraData[1, 3] = ""; sourceArrayWithExtraData[2, 0] = DateTime.Today; sourceArrayWithExtraData[2, 1] = 1000; sourceArrayWithExtraData[2, 2] = 0.0; sourceArrayWithExtraData[2, 3] = 0.0; sourceArrayWithExtraData[3, 0] = DateTime.Today.AddYears(10); sourceArrayWithExtraData[3, 1] = -1000; sourceArrayWithExtraData[3, 2] = 0.0; sourceArrayWithExtraData[3, 3] = 0.0; List <InputPrincipalExchangeCashflowRangeItem> list = ObjectToArrayOfPropertiesConverter.CreateListFromHorizontalArrayRange <InputPrincipalExchangeCashflowRangeItem>(sourceArrayWithExtraData); Assert.AreEqual(list.Count, 2); }
public void CreateObjectTest() { var fields = new List <object> { "Samuel Clemmens", 50, 1223, PersonType.One, false }; bool error; var paramData = ObjectToArrayOfPropertiesConverter.CreateObject <ClassWithParamData>(fields, out error); Assert.IsFalse(error); Assert.AreEqual(paramData.Name, "Samuel Clemmens"); Assert.AreEqual(paramData.Age, 50); Assert.AreEqual(paramData.Size, 1223); Assert.AreEqual(paramData.Type, PersonType.One); Assert.AreEqual(paramData.Adjusted, false); var fields2 = new List <object> { null, 50, 1223, PersonType.Two, null }; var paramData2 = ObjectToArrayOfPropertiesConverter.CreateObject <ClassWithParamData>(fields2, out error); Assert.IsFalse(error); Assert.IsNull(paramData2.Name);//default value Assert.AreEqual(paramData2.Age, 50); Assert.AreEqual(paramData2.Size, 1223); Assert.AreEqual(paramData2.Type, PersonType.Two); Assert.AreEqual(paramData2.Adjusted, false);//default value }
public void CreateObjectPropertiesTest() { var fields = new List <object> { "18", "M", true, "ID-1" }; bool error; var paramData = ObjectToArrayOfPropertiesConverter.CreateObject <Period>(fields, out error); Assert.AreEqual(paramData.periodMultiplier, "18"); Assert.AreEqual(paramData.period, PeriodEnum.M); Assert.AreEqual(paramData.id, "ID-1"); }
public void CreateListFromVerticalArrayRangeSimpleTypes() { var dateTimeArray = new object[1, 3]; dateTimeArray[0, 0] = DateTime.Today.Date.AddDays(1); dateTimeArray[0, 1] = null; dateTimeArray[0, 2] = DateTime.Today.Date.AddDays(2); List <DateTime> dateTimesList = ObjectToArrayOfPropertiesConverter.CreateListFromVerticalArrayRange <DateTime>(dateTimeArray); Assert.AreEqual(2, dateTimesList.Count); Assert.AreEqual(DateTime.Today.Date.AddDays(1), dateTimesList[0]); Assert.AreEqual(DateTime.Today.Date.AddDays(2), dateTimesList[1]); var stringArray = new object[1, 3]; stringArray[0, 0] = "One"; stringArray[0, 1] = null; stringArray[0, 2] = "Three"; List <string> stringList = ObjectToArrayOfPropertiesConverter.CreateListFromVerticalArrayRange <string>(stringArray); Assert.AreEqual(2, stringList.Count); Assert.AreEqual("One", stringList[0]); Assert.AreEqual("Three", stringList[1]); var intArray = new object[1, 3]; intArray[0, 0] = 1; intArray[0, 1] = null; intArray[0, 2] = 3; List <int> intList = ObjectToArrayOfPropertiesConverter.CreateListFromVerticalArrayRange <int>(intArray); Assert.AreEqual(2, intList.Count); Assert.AreEqual(1, intList[0]); Assert.AreEqual(3, intList[1]); var doubleArray = new object[1, 3]; doubleArray[0, 0] = 1; doubleArray[0, 1] = null; doubleArray[0, 2] = 3; var doubleList = ObjectToArrayOfPropertiesConverter.CreateListFromVerticalArrayRange <double>(doubleArray); Assert.AreEqual(2, doubleList.Count); Assert.AreEqual(1, doubleList[0]); Assert.AreEqual(3, doubleList[1]); var decimalArray = new object[1, 3]; decimalArray[0, 0] = 1.1m; decimalArray[0, 1] = null; decimalArray[0, 2] = 3.1m; var decimalList = ObjectToArrayOfPropertiesConverter.CreateListFromVerticalArrayRange <decimal>(decimalArray); Assert.AreEqual(2, decimalList.Count); Assert.AreEqual(1.1m, decimalList[0]); Assert.AreEqual(3.1m, decimalList[1]); }
/// <summary> /// Gets a dates schedule. /// </summary> /// <param name="metaScheduleDefinitionRange">This must have 3 columns: interval, interval, rollconventionenum.</param> /// <param name="startDate">The start date of the schedule to be generated.</param> /// <param name="calendar">The relevant calendar.</param> /// <param name="businessDayAdjustment">The business day adjustments.</param> /// <returns>A vertical arrray of dates.</returns> public object[,] GetMetaDatesSchedule(Excel.Range metaScheduleDefinitionRange, DateTime startDate, string calendar, string businessDayAdjustment) { var values = metaScheduleDefinitionRange.Value[System.Reflection.Missing.Value] as object[, ]; List <ThreeStringsRangeItem> metaScheduleDefinition = ObjectToArrayOfPropertiesConverter.CreateListFromHorizontalArrayRange <ThreeStringsRangeItem>(values); BusinessCenters centers = BusinessCentersHelper.Parse(calendar); IBusinessCalendar businessCalendar = Engine.ToBusinessCalendar(centers); var metaSchedule = AdjustedDatesMetaSchedule.GetMetaDatesSchedule(metaScheduleDefinition, startDate, businessCalendar, calendar, businessDayAdjustment); var result = RangeHelper.ConvertArrayToRange(metaSchedule); return(result); }
public void ConvertObjectToVerticalArraySingleObject() { var classWithParamData = new ClassWithParamData { Name = "Name 21", Age = 100, Size = 40, Type = PersonType.One, Adjusted = false }; object[,] lists = ObjectToArrayOfPropertiesConverter.ConvertObjectToVerticalArrayRange(classWithParamData); Assert.AreEqual(lists[0, 0], "Name 21"); Assert.AreEqual(lists[1, 0], 100d); Assert.AreEqual(lists[2, 0], 40); Assert.AreEqual(lists[3, 0], PersonType.One); Assert.AreEqual(lists[4, 0], false); }
/// <summary> /// /// </summary> /// <param name="underlying"></param> /// <param name="spot"></param> /// <param name="callStrike"></param> /// <param name="style"></param> /// <param name="tradeDate"></param> /// <param name="expiryDate"></param> /// <param name="zeroRange"></param> /// <param name="divRange"></param> /// <param name="orcParamsRange"></param> /// <returns></returns> public double CallCollarPricer(string underlying, double spot, double callStrike, string style, DateTime tradeDate, DateTime expiryDate, Excel.Range zeroRange, Excel.Range divRange, Excel.Range orcParamsRange) { var values = orcParamsRange.Value[System.Reflection.Missing.Value] as object[, ]; values = (object[, ])DataRangeHelper.TrimNulls(values); var orcParams = RangeHelper.Convert2DArrayToClass <WingParamsRange>(ArrayHelper.RangeToMatrix(values)); var zeroArray = zeroRange.Value[System.Reflection.Missing.Value] as object[, ]; var zeroes = ObjectToArrayOfPropertiesConverter.CreateListFromHorizontalArrayRange <ZeroCurveRange>(zeroArray); var divArray = zeroRange.Value[System.Reflection.Missing.Value] as object[, ]; var divs = ObjectToArrayOfPropertiesConverter.CreateListFromHorizontalArrayRange <DividendRange>(divArray); var result = Orion.EquityCollarPricer.Collar.CallCollarPricer(underlying, spot, callStrike, style, tradeDate, expiryDate, zeroes, divs, orcParams); return(result); }
public void ConvertClassTo2DArraySingleObject() { var classWithParamData = new ClassWithParamData { Name = "Jonh Doe", Age = 100, Size = 40, Type = PersonType.One, Adjusted = false }; object[,] array = ObjectToArrayOfPropertiesConverter.ConvertObjectToVerticalArrayRange(classWithParamData); Assert.AreEqual(array.GetLength(0), 5); Assert.AreEqual(array.GetLength(1), 1); Assert.AreEqual(array[0, 0], "Jonh Doe"); Assert.AreEqual(array[1, 0], 100d); Assert.AreEqual(array[2, 0], 40); Assert.AreEqual(array[3, 0], PersonType.One); Assert.AreEqual(array[4, 0], false); }
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)); } }
public void CreateListFromHorizontalArrayRangeNonZeroBasedArray() { var sourceArrayWithExtraData = (object[, ])Array.CreateInstance(typeof(object), new[] { 3, 10 }, new[] { 2, 2 }); sourceArrayWithExtraData[2, 2] = "Jonh Doe"; sourceArrayWithExtraData[2, 3] = 100; sourceArrayWithExtraData[2, 4] = 40; sourceArrayWithExtraData[2, 5] = PersonType.One; sourceArrayWithExtraData[2, 6] = false; sourceArrayWithExtraData[2, 7] = null; sourceArrayWithExtraData[2, 8] = "#N/A"; sourceArrayWithExtraData[2, 9] = null; sourceArrayWithExtraData[2, 10] = "#N/A"; sourceArrayWithExtraData[2, 11] = null; sourceArrayWithExtraData[3, 2] = "Jonh Doe "; sourceArrayWithExtraData[3, 3] = 200; sourceArrayWithExtraData[3, 4] = 50; sourceArrayWithExtraData[3, 5] = PersonType.Two; sourceArrayWithExtraData[3, 6] = true; sourceArrayWithExtraData[3, 7] = null; sourceArrayWithExtraData[3, 8] = "#N/A"; sourceArrayWithExtraData[3, 9] = null; sourceArrayWithExtraData[3, 10] = "#N/A"; sourceArrayWithExtraData[3, 11] = null; // Third row is empty and should be not converted to object. // sourceArrayWithExtraData[4, 2] = null; sourceArrayWithExtraData[4, 3] = null; sourceArrayWithExtraData[4, 4] = null; sourceArrayWithExtraData[4, 5] = null; sourceArrayWithExtraData[4, 6] = null; sourceArrayWithExtraData[4, 7] = null; sourceArrayWithExtraData[4, 8] = null; sourceArrayWithExtraData[4, 9] = null; sourceArrayWithExtraData[4, 10] = null; sourceArrayWithExtraData[4, 11] = null; List <ClassWithParamData> list = ObjectToArrayOfPropertiesConverter.CreateListFromHorizontalArrayRange <ClassWithParamData>(sourceArrayWithExtraData); Assert.AreEqual(list.Count, 2); }
public void CreateListFromVerticalArrayRange() { var sourceArrayWithExtraData = new object[10, 3]; sourceArrayWithExtraData[0, 0] = "Jonh Doe"; sourceArrayWithExtraData[1, 0] = 100; sourceArrayWithExtraData[2, 0] = 40; sourceArrayWithExtraData[3, 0] = PersonType.One; sourceArrayWithExtraData[4, 0] = false; sourceArrayWithExtraData[5, 0] = null; sourceArrayWithExtraData[6, 0] = "#N/A"; sourceArrayWithExtraData[7, 0] = null; sourceArrayWithExtraData[8, 0] = "#N/A"; sourceArrayWithExtraData[9, 0] = null; sourceArrayWithExtraData[0, 1] = "Jonh Doe "; sourceArrayWithExtraData[1, 1] = 200; sourceArrayWithExtraData[2, 1] = 50; sourceArrayWithExtraData[3, 1] = PersonType.Two; sourceArrayWithExtraData[4, 1] = true; sourceArrayWithExtraData[5, 1] = null; sourceArrayWithExtraData[6, 1] = "#N/A"; sourceArrayWithExtraData[7, 1] = null; sourceArrayWithExtraData[8, 1] = "#N/A"; sourceArrayWithExtraData[9, 1] = null; // Third row is empty and should be not converted to object. // sourceArrayWithExtraData[0, 2] = null; sourceArrayWithExtraData[1, 2] = null; sourceArrayWithExtraData[2, 2] = null; sourceArrayWithExtraData[3, 2] = null; sourceArrayWithExtraData[4, 2] = null; sourceArrayWithExtraData[5, 2] = null; sourceArrayWithExtraData[6, 2] = null; sourceArrayWithExtraData[7, 2] = null; sourceArrayWithExtraData[8, 2] = null; sourceArrayWithExtraData[9, 2] = null; List <ClassWithParamData> list = ObjectToArrayOfPropertiesConverter.CreateListFromVerticalArrayRange <ClassWithParamData>(sourceArrayWithExtraData); Assert.AreEqual(list.Count, 2); }
public void CreateListFromHorizontalArrayRange() { var sourceArrayWithExtraData = new object[3, 10]; sourceArrayWithExtraData[0, 0] = "Jonh Doe"; sourceArrayWithExtraData[0, 1] = 100; sourceArrayWithExtraData[0, 2] = 40; sourceArrayWithExtraData[0, 3] = PersonType.One; sourceArrayWithExtraData[0, 4] = false; sourceArrayWithExtraData[0, 5] = null; sourceArrayWithExtraData[0, 6] = "#N/A"; sourceArrayWithExtraData[0, 7] = null; sourceArrayWithExtraData[0, 8] = "#N/A"; sourceArrayWithExtraData[0, 9] = null; sourceArrayWithExtraData[1, 0] = "Jonh Doe "; sourceArrayWithExtraData[1, 1] = 200; sourceArrayWithExtraData[1, 2] = 50; sourceArrayWithExtraData[1, 3] = PersonType.Two; sourceArrayWithExtraData[1, 4] = true; sourceArrayWithExtraData[1, 5] = null; sourceArrayWithExtraData[1, 6] = "#N/A"; sourceArrayWithExtraData[1, 7] = null; sourceArrayWithExtraData[1, 8] = "#N/A"; sourceArrayWithExtraData[1, 9] = null; // Third row is empty and should be not converted to object. // sourceArrayWithExtraData[2, 0] = null; sourceArrayWithExtraData[2, 1] = null; sourceArrayWithExtraData[2, 2] = null; sourceArrayWithExtraData[2, 3] = null; sourceArrayWithExtraData[2, 4] = null; sourceArrayWithExtraData[2, 5] = null; sourceArrayWithExtraData[2, 6] = null; sourceArrayWithExtraData[2, 7] = null; sourceArrayWithExtraData[2, 8] = null; sourceArrayWithExtraData[2, 9] = null; List <ClassWithParamData> list = ObjectToArrayOfPropertiesConverter.CreateListFromHorizontalArrayRange <ClassWithParamData>(sourceArrayWithExtraData); Assert.AreEqual(list.Count, 2); }
public void CreateListOfObjectsTest() { var fields = new List <object> { "Samuel Clemmens", 50, 1223, PersonType.One, false }; var fields2 = new List <object> { null, 50, 1223, PersonType.Two, null }; var listOfFields = new List <List <object> > { fields, fields2 }; List <ClassWithParamData> listParamData = ObjectToArrayOfPropertiesConverter.CreateListOfObjectsFromListOfListOfFields <ClassWithParamData>(listOfFields); Assert.AreEqual(listParamData[0].Name, "Samuel Clemmens"); Assert.AreEqual(listParamData[0].Age, 50); Assert.AreEqual(listParamData[0].Size, 1223); Assert.AreEqual(listParamData[0].Type, PersonType.One); Assert.AreEqual(listParamData[0].Adjusted, false); Assert.IsNull(listParamData[1].Name);//default value Assert.AreEqual(listParamData[1].Age, 50); Assert.AreEqual(listParamData[1].Size, 1223); Assert.AreEqual(listParamData[1].Type, PersonType.Two); Assert.AreEqual(listParamData[1].Adjusted, false);//default value }