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]);
        }
Example #8
0
        /// <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);
        }
Example #10
0
        /// <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
        }