コード例 #1
0
        public void Should_Return_IntervalName_2011to2013()
        {
            SpanOfYears testInterval = new SpanOfYears(2011, 2013);
            string      testName     = testInterval.ClassName();

            Assert.AreEqual("2011to2013", testName);
        }
コード例 #2
0
        private SpanOfYears SpanFromEngines(MonthPeriod period)
        {
            ICollection <SpanOfYears> sortedHistory = Engines.Keys.OrderBy(x => x).ToArray();

            SpanOfYears validSpan = sortedHistory.FirstOrDefault((x) => (period.Year() >= x.YearFrom && period.Year() <= x.YearUpto));

            return(validSpan);
        }
コード例 #3
0
        public void Should_return_HealthEngine2015_for_ClassName_when_Year_2015()
        {
            SpanOfYears span = SpanOfYears.CreateFromYear(2015);

            string testClassName = EngineFactory <IHealthEngine> .ClassNameFor(CLASS_NAME_PREFIX, span);

            Assert.AreEqual(SHORT_CLASS_NAME_2015, testClassName);
        }
コード例 #4
0
        public void Should_Return_Interval_2017to2099_For_Period_2018()
        {
            UInt16[] testChangeYears = new UInt16[] { 2011, 2012, 2014, 2016, 2017, 0 };

            SeqOfYears testYearArray = new SeqOfYears(testChangeYears);

            MonthPeriod testPeriod   = new MonthPeriod(2018, 1);
            SpanOfYears expInterval  = new SpanOfYears(2017, 2099);
            SpanOfYears testInterval = testYearArray.YearsIntervalForPeriod(testPeriod);

            Assert.AreEqual(expInterval, testInterval);
        }
コード例 #5
0
        public void Should_Return_IntervalArray_2011_2015()
        {
            UInt16[] testChangeYears = new UInt16[] { 2011, 2012, 2014, 2016, 2017, 0 };

            SeqOfYears testYearArray = new SeqOfYears(testChangeYears);

            SpanOfYears[] expIntervalArray = new SpanOfYears[] {
                new SpanOfYears(2011, 2011),
                new SpanOfYears(2012, 2013),
                new SpanOfYears(2014, 2015),
                new SpanOfYears(2016, 2016),
                new SpanOfYears(2017, 2099)
            };
            SpanOfYears[] testIntervalArray = testYearArray.YearsIntervalList();
            Assert.AreEqual(expIntervalArray, testIntervalArray);
        }
コード例 #6
0
        public T ResolveEngine(MonthPeriod period)
        {
            SpanOfYears periodSpan = SpanFromEngines(period);

            if (periodSpan == null)
            {
                return(DefaultInstance);
            }
            T baseEngine;

            if (Engines.ContainsKey(periodSpan))
            {
                baseEngine = Engines[periodSpan];
            }
            else
            {
                baseEngine = DefaultInstance;
            }
            return(baseEngine);
        }
コード例 #7
0
        public static string ClassNameFor(string classnamePrefix, SpanOfYears span)
        {
            string className = classnamePrefix + span.ClassName();

            return(className);
        }
コード例 #8
0
        public static T InstanceFor(string namespacePrefix, string classnamePrefix, SpanOfYears span)
        {
            Assembly assembly = typeof(EngineServiceModule).Assembly;

            return(GeneralFactory <T> .InstanceFor(assembly, namespacePrefix, ClassNameFor(classnamePrefix, span)));
        }
コード例 #9
0
        private Dictionary <SpanOfYears, T> MergeEngineToDict(IDictionary <SpanOfYears, T> agr, SpanOfYears span)
        {
            var returnAgr = new Dictionary <SpanOfYears, T>(agr);

            returnAgr.Add(span, CreateEngineFor(span));

            return(returnAgr);
        }
コード例 #10
0
        private T CreateEngineFor(SpanOfYears span)
        {
            T engine = EngineFactory <T> .InstanceFor(NamespacePrefix(), ClassnamePrefix(), span);

            return(engine);
        }