예제 #1
0
        public static void Gaps()
        {
            ArtesianDataChecker_GapCheck gap = new ArtesianDataChecker_GapCheck();
            ArtesianDataChecker_Request  req = new ArtesianDataChecker_Request();
            ArtesianDataChecker_Console  csl = new ArtesianDataChecker_Console();
            ResultsContainer             res = new ResultsContainer()
            {
                GapResults = new List <GapResult>()
            };
            List <string> providers = ArtesianDataChecker_Constants.AvailableProviders;
            Paramaters    param     = csl.SetParameters(providers, "gaps");

            for (int i = 0; i < param.TestIds.Count; i++)
            {
                var data = req.DataRequest(param.TestIds[i], param.Provider1, param.Start, param.End);
                if (data != null)
                {
                    res.GapResults.Add(gap.CheckIntervals(data));
                }
                else
                {
                    Console.WriteLine("Error: Data Request returned NULL.");
                }
            }
            csl.PrintResultsToConsole(res.GapResults, param.Provider2);
        }
예제 #2
0
        public static string _getCurveName(int id, string provider, ArtesianDataChecker_Request req)
        {
            var today = LocalDate.FromDateTime(DateTime.Now);
            var d     = req.DataRequest(id, provider, today.PlusDays(-3), today).GetEnumerator();

            d.MoveNext();
            return(d.Current.CurveName);
        }
예제 #3
0
        public static void Compare()
        {
            ArtesianDataChecker_Compare cmp = new ArtesianDataChecker_Compare();
            ArtesianDataChecker_Request req = new ArtesianDataChecker_Request();
            ArtesianDataChecker_Console csl = new ArtesianDataChecker_Console();
            ResultsContainer            res = new ResultsContainer
            {
                Results = new List <CheckResult>()
            };
            //Paramaters param = csl.SetParametersDefault();
            List <string> providers = ArtesianDataChecker_Constants.AvailableProviders;
            Paramaters    param     = csl.SetParameters(providers, "compare");

            Stopwatch stopWatch = new Stopwatch();
            string    reqTime   = "";
            long      totalTime = 0;

            Console.WriteLine("Starting check of " + param.TestIds.Count + " curves.");
            for (int i = 0; i < param.TestIds.Count; i++)
            {
                stopWatch.Start();
                var curveName = _getCurveName(param.TestIds[i], param.Provider1, req);
                var ProdId    = _getIdFromMetadata(curveName, param.Provider2, req);
                var TestData  = req.DataRequest(param.TestIds[i], param.Provider1, param.End, param.Start);
                var ProdData  = req.DataRequest(ProdId, param.Provider2, param.End, param.Start);
                if (TestData != null && ProdData != null)
                {
                    var result = cmp.CompareData(TestData, ProdData);
                    res.Results.Add(result);
                    reqTime    = stopWatch.ElapsedMilliseconds.ToString();
                    totalTime += stopWatch.ElapsedMilliseconds;
                    Console.WriteLine("Curve Checked : " + (i + 1) + "/" + param.TestIds.Count + " : " + result.ProdFileName + " | Time : " + reqTime);
                }
                else
                {
                    Console.WriteLine("Error: Data request returned NULL.");
                }
                stopWatch.Reset();
            }
            Console.WriteLine("Finished checking curves : Total time taken :" + (totalTime / 1000) + " sec");
            csl.PrintResultsToConsole(res.Results, param.Provider2);
        }
예제 #4
0
        public static void GapsVersioned()
        {
            ArtesianDataChecker_Console  csl = new ArtesianDataChecker_Console();
            ArtesianDataChecker_Request  req = new ArtesianDataChecker_Request();
            ArtesianDataChecker_GapCheck gap = new ArtesianDataChecker_GapCheck();
            ResultsContainer             res = new ResultsContainer()
            {
                GapResults = new List <GapResult>()
            };
            List <string> providers = ArtesianDataChecker_Constants.AvailableProviders;
            Paramaters    param     = csl.SetParameters(providers, "gaps");

            //Paramaters param = csl.SetParametersDefault();
            foreach (var id in param.ProdIds)
            {
                var versions = req.DataRequestVersioned(id, param.Provider2, param.Start, param.End);
                foreach (var v in versions)
                {
                    res.GapResults.Add(gap.CheckIntervals(v));
                }
            }
            csl.PrintResultsToConsole(res.GapResults, param.Provider2);
        }
예제 #5
0
 public static int _getIdFromMetadata(string curveName, string provider, ArtesianDataChecker_Request req)
 {
     // Return the id of first row in curve.
     return(req.MetadataRequest(curveName, provider)[0].MarketDataId);
 }