Exemplo n.º 1
0
        public static void MFactory_LinkOrText_Text()
        {
            string text = LinkText();
            string url  = LinkUrl();

            Assert.IsType <MText>(MFactory.LinkOrText(text, url: ""));
            Assert.IsType <MText>(MFactory.LinkOrText(text, url: null));
        }
Exemplo n.º 2
0
        public static void MFactory_Autolink()
        {
            string url = LinkUrl();

            MAutolink autolink = MFactory.Autolink(url);

            Assert.Equal(url, autolink.Url);
        }
Exemplo n.º 3
0
 public static void MFactory_HorizontalRule_DefaultValues(HorizontalRuleStyle style)
 {
     for (int i = 3; i <= 5; i++)
     {
         Assert.Equal(style, MFactory.HorizontalRule(style, count: i).Style);
         Assert.Equal(i, MFactory.HorizontalRule(style, count: i).Count);
         Assert.Equal(" ", MFactory.HorizontalRule(style, count: i).Separator);
     }
 }
Exemplo n.º 4
0
        //Агрегация по равномерным сегментам
        //На входе функция с параметрами: текущий результат, список и обрабатываемый номер
        private void Agregate(Action <EditMom, MomList, int, DateTime> fun)
        {
            double seglen = _pars[0].Real, segshift = _pars.Length < 2 ? 0 : _pars[1].Real * seglen;
            var    moms = _initialSignal.OutValue;

            if (moms.Count == 0)
            {
                return;
            }
            var mlist = MFactory.NewList(DataType);
            //Добавляем в список границы сегментов
            var t = Connect.PeriodBegin;
            int i = 0;

            while (t < Connect.PeriodEnd.AddMilliseconds(1))
            {
                while (i < moms.Count && moms.TimeI(i) < t)
                {
                    if (moms.TimeI(i) >= Connect.PeriodBegin && moms.TimeI(i) <= Connect.PeriodEnd)
                    {
                        mlist.AddMom(moms.ToMomI(i));
                    }
                    i++;
                }
                AddUniformMom(moms, mlist, i, t);
                t = t.AddSeconds(seglen);
            }
            if (i < moms.Count && moms.TimeI(i) == Connect.PeriodEnd)
            {
                mlist.AddMom(moms.ToMomI(i));
            }

            t = Connect.PeriodBegin;
            i = 0;
            while (t < Connect.PeriodEnd.AddMilliseconds(-1))
            {
                var me = new EditMom(DataType, t.AddSeconds(segshift));
                if (fun.Method.Name == "AverageScalar")
                {
                    me.Real = 0;
                }
                else
                {
                    me.CopyValueFrom(mlist, i);
                }
                t = t.AddSeconds(seglen);
                while (i < mlist.Count && mlist.TimeI(i) <= t)
                {
                    fun(me, mlist, i++, t);
                }
                if (i > 0 && mlist.TimeI(i - 1) == t)
                {
                    i--;
                }
                MomList.AddMom(me);
            }
        }
Exemplo n.º 5
0
        public static void MFactory_CodeBlock_DefaultValues()
        {
            string text = CodeBlockText();

            MFencedCodeBlock block = MFactory.FencedCodeBlock(text);

            Assert.Equal(text, block.Text);
            Assert.Null(block.Info);
        }
Exemplo n.º 6
0
        public static void MFactory_CodeBlock()
        {
            string text = CodeBlockText();
            string info = CodeBlockInfo();

            MFencedCodeBlock block = MFactory.FencedCodeBlock(text, info);

            Assert.Equal(text, block.Text);
            Assert.Equal(info, block.Info);
        }
Exemplo n.º 7
0
 public static void MFactory_HorizontalRule(HorizontalRuleStyle style)
 {
     for (int i = 3; i <= 5; i++)
     {
         Assert.Equal(style, MFactory.HorizontalRule(style, count: i, separator: " ").Style);
         Assert.Equal(i, MFactory.HorizontalRule(style, count: i, separator: " ").Count);
         Assert.Null(MFactory.HorizontalRule(style, count: i, separator: null).Separator);
         Assert.Equal("", MFactory.HorizontalRule(style, count: i, separator: "").Separator);
         Assert.Equal("  ", MFactory.HorizontalRule(style, count: i, separator: "  ").Separator);
     }
 }
Exemplo n.º 8
0
        public static void MFactory_Link_DefaultValues()
        {
            string text = LinkText();
            string url  = LinkUrl();

            MLink link = MFactory.Link(text, url);

            Assert.Equal(text, link.content);
            Assert.Equal(url, link.Url);
            Assert.Null(link.Title);
        }
Exemplo n.º 9
0
        public static void MFactory_Image_DefaultValues()
        {
            string text = LinkText();
            string url  = LinkUrl();

            MImage image = MFactory.Image(text, url);

            Assert.Equal(text, image.Text);
            Assert.Equal(url, image.Url);
            Assert.Null(image.Title);
        }
Exemplo n.º 10
0
        public static void MFactory_Link()
        {
            string text  = LinkText();
            string url   = LinkUrl();
            string title = LinkTitle();

            MLink link = MFactory.Link(text, url, title);

            Assert.Equal(text, link.content);
            Assert.Equal(url, link.Url);
            Assert.Equal(title, link.Title);
        }
Exemplo n.º 11
0
        public static void MFactory_Image()
        {
            string text  = LinkText();
            string url   = LinkUrl();
            string title = LinkTitle();

            MImage image = MFactory.Image(text, url, title);

            Assert.Equal(text, image.Text);
            Assert.Equal(url, image.Url);
            Assert.Equal(title, image.Title);
        }
Exemplo n.º 12
0
        public static void MFactory_HorizontalRule_Throws(int count)
        {
            MarkdownWriter mb = CreateWriter();

            Assert.Throws <ArgumentOutOfRangeException>(
                () => mb.Write(MFactory.HorizontalRule(style: HorizontalRuleStyle.Asterisk, count: count, separator: " ")));

            Assert.Throws <ArgumentOutOfRangeException>(
                () => mb.Write(MFactory.HorizontalRule(style: HorizontalRuleStyle.Hyphen, count: count, separator: " ")));

            Assert.Throws <ArgumentOutOfRangeException>(
                () => mb.Write(
                    MFactory.HorizontalRule(style: HorizontalRuleStyle.Underscore, count: count, separator: " ")));
        }
Exemplo n.º 13
0
 //Определение типа данных возвращаемых значений
 private void DefineDataType(string funName)
 {
     if (funName.StartsWith("Bit"))
     {
         DataType = DataType.Boolean;
     }
     else if (funName == "Average")
     {
         DataType = DataType.Real;
     }
     else
     {
         DataType = _initialSignal.DataType;
     }
     MomList = MFactory.NewList(DataType);
 }
Exemplo n.º 14
0
        //Разбор формулы, заданной прямой польской записью
        //Формула имеет вид ИмяФункции;КоличествоПараметров;Параметр;Параметр;...
        private void ParseFormula(string formula)
        {
            var lexemes = formula.Split(';');
            var funName = lexemes[0];

            DefineDataType(funName);
            MethodInfo met = typeof(CalcSignal).GetMethod(funName);

            if (met != null)
            {
                Calculate = (Action)Delegate.CreateDelegate(typeof(Action), this, met);
            }
            _pars = new IMean[lexemes[1].ToInt()];
            for (int i = 0; i < _pars.Length; i++)
            {
                _pars[i] = MFactory.NewMean(DataType.Real, lexemes[i + 2]);
            }
        }
Exemplo n.º 15
0
        public static void MFactory_InlineCode()
        {
            string text = MarkdownTextText();

            Assert.Equal(text, MFactory.InlineCode(text).Text);
        }
Exemplo n.º 16
0
 protected override Node MakeConstNode(ITerminalNode terminal, string s)
 {
     return(new ConstCalcNode(MFactory.NewMean(s)));
 }
Exemplo n.º 17
0
        public void MomListTime()
        {
            var pool = MakeErrPool();
            var c    = new ContextTest("Context");

            var list = MFactory.NewList(DataType.Time);

            Assert.AreEqual(0, list.Count);
            Assert.AreEqual(DataType.Time, list.DataType);

            var err1 = pool.MakeError(1, c);
            var err2 = pool.MakeError(2, c);

            list.AddMom(RTime(0), RTime(0));
            list.AddMom(RTime(0, 10), RTime(1), err1);
            list.AddMom(RTime(0, 20), RTime(2), err2);
            Assert.AreEqual(3, list.Count);
            Assert.AreEqual(RTime(0), list.TimeI(0));
            Assert.AreEqual(RTime(0, 10), list.TimeI(1));
            Assert.AreEqual(RTime(0, 20), list.TimeI(2));
            Assert.AreEqual(RTime(0), list.DateI(0));
            Assert.AreEqual(RTime(1), list.DateI(1));
            Assert.AreEqual(RTime(2), list.DateI(2));
            Assert.IsNull(list.ErrorI(0));
            Assert.IsNotNull(list.ErrorI(1));
            Assert.AreEqual(1, list.ErrorI(1).Number);
            Assert.AreEqual("Warning", list.ErrorI(1).Text);
            Assert.IsNotNull(list.ErrorI(2));
            Assert.AreEqual(2, list.ErrorI(2).Number);
            Assert.AreEqual("Error", list.ErrorI(2).Text);

            list.CurNum = 1;
            Assert.AreEqual(RTime(1), list.Date);
            Assert.AreEqual(1, list.Error.Number);
            Assert.AreEqual(RTime(0, 10), list.Time);

            var m = list.ToMom(RTime(1), err2);

            Assert.AreEqual(RTime(1), m.Date);
            Assert.AreEqual(1, m.Error.Number);
            Assert.AreEqual(RTime(1), m.Time);

            var me = new EditMom(DataType.Time);

            me.Time = RTime(0, 5);
            me.Date = RTime(0, 30);
            list.AddMom(me);
            me.Time = RTime(0, 15);
            me.Date = RTime(1, 30);
            list.AddMom(me, err1);
            me.Time = RTime(0, 25);
            me.Date = RTime(2, 30);
            list.AddMom(me, err2);
            Assert.AreEqual(6, list.Count);
            Assert.AreEqual(RTime(0), list.TimeI(0));
            Assert.AreEqual(RTime(0, 5), list.TimeI(1));
            Assert.AreEqual(RTime(0, 10), list.TimeI(2));
            Assert.AreEqual(RTime(0, 15), list.TimeI(3));
            Assert.AreEqual(RTime(0, 20), list.TimeI(4));
            Assert.AreEqual(RTime(0, 25), list.TimeI(5));
            Assert.AreEqual(RTime(0), list.DateI(0));
            Assert.AreEqual(RTime(0, 30), list.DateI(1));
            Assert.AreEqual(RTime(1), list.DateI(2));
            Assert.AreEqual(RTime(1, 30), list.DateI(3));
            Assert.AreEqual(RTime(2), list.DateI(4));
            Assert.AreEqual(RTime(2, 30), list.DateI(5));
            Assert.IsNull(list.ErrorI(0));
            Assert.IsNull(list.ErrorI(1));
            Assert.AreEqual(1, list.ErrorI(2).Number);
            Assert.AreEqual(1, list.ErrorI(3).Number);
            Assert.AreEqual(2, list.ErrorI(4).Number);
            Assert.AreEqual(2, list.ErrorI(5).Number);
        }
Exemplo n.º 18
0
 public ConstNode(ITerminalNode terminal, DataType dtype, string s) : base(terminal)
 {
     Mean = MFactory.NewMean(dtype, s);
 }
Exemplo n.º 19
0
 public MomSignal(SourceConnect connect, string code, DataType dataType, string contextOut, DicS <string> inf)
     : base(connect, code, dataType, contextOut, inf)
 {
     _value = (Mean)MFactory.NewMom(dataType);
 }
Exemplo n.º 20
0
        public void MomString()
        {
            var c    = new ContextTest("Context");
            var pool = MakeErrPool();
            var err  = pool.MakeError(2, c);

            var d = new DateTime(2016, 06, 16, 11, 23, 00);
            var m = MFactory.NewMom(d, "sss");

            Assert.AreEqual(d, m.Time);
            Assert.IsNull(m.Error);
            Assert.IsNull(m.TotalError);
            Assert.AreEqual(true, m.Boolean);
            Assert.AreEqual(0, m.Integer);
            Assert.AreEqual(0.0, m.Real);
            Assert.AreEqual("sss", m.String);
            Assert.AreEqual(1, m.Count);
            Assert.AreEqual(DataType.String, m.DataType);
            var v = m.Value;

            Assert.AreEqual(DataType.String, v.DataType);
            var cv = m.CalcValue;

            Assert.AreEqual(DataType.String, cv.DataType);
            Assert.IsNull(cv.TotalError);
            Assert.IsNotNull(m.LastMom);
            Assert.AreEqual("sss", m.LastMom.String);
            Assert.AreEqual(d, m.TimeI(0));
            Assert.IsNull(m.ErrorI(0));
            Assert.AreEqual(true, m.BooleanI(0));
            Assert.AreEqual(0, m.IntegerI(0));
            Assert.AreEqual(0.0, m.RealI(0));
            Assert.AreEqual("sss", m.StringI(0));

            var d1 = new DateTime(2016, 06, 16, 11, 26, 00);
            var m1 = m.ToMom(d1, err);

            Assert.AreEqual(d1, m1.Time);
            Assert.IsNotNull(m1.Error);
            Assert.IsNotNull(m1.TotalError);
            Assert.AreEqual(2, m1.Error.Number);
            Assert.AreEqual("Error", m1.Error.Text);
            Assert.AreEqual(MomErrType.Source, m1.Error.ErrType);
            Assert.AreEqual(true, m1.Boolean);
            Assert.AreEqual(0, m1.Integer);
            Assert.AreEqual(0, m1.Real);
            Assert.AreEqual("sss", m1.String);
            Assert.AreEqual(1, m1.Count);
            Assert.AreEqual(DataType.String, m1.DataType);
            Assert.IsTrue(m1.ValueEquals(m));
            Assert.IsFalse(m1.ValueAndErrorEquals(m));
            Assert.IsTrue(m.ValueEquals(m1));
            Assert.IsFalse(m.ValueAndErrorEquals(m1));

            var m2 = m.ToMomI(0, d1, err);

            Assert.AreEqual(d1, m2.Time);
            Assert.IsNotNull(m2.Error);
            Assert.IsNotNull(m2.TotalError);
            Assert.AreEqual(2, m2.Error.Number);
            Assert.AreEqual("Error", m2.Error.Text);
            Assert.AreEqual(MomErrType.Source, m2.Error.ErrType);
            Assert.AreEqual(true, m2.Boolean);
            Assert.AreEqual(0, m2.Integer);
            Assert.AreEqual(0, m2.Real);
            Assert.AreEqual("sss", m2.String);
            Assert.AreEqual(1, m2.Count);
            Assert.AreEqual(DataType.String, m2.DataType);
            Assert.IsTrue(m2.ValueEquals(m));
            Assert.IsFalse(m2.ValueAndErrorEquals(m));
            Assert.IsTrue(m.ValueEquals(m2));
            Assert.IsFalse(m.ValueAndErrorEquals(m2));

            m = MFactory.NewMom(d1, "45.67", err);
            Assert.IsNotNull(m.Error);
            Assert.IsNotNull(m.TotalError);
            Assert.AreEqual(2, m.Error.Number);
            Assert.AreEqual("Error", m.Error.Text);
            Assert.AreEqual(MomErrType.Source, m.Error.ErrType);
            Assert.AreEqual(2, m.TotalError.Number);
            Assert.AreEqual("Error", m.TotalError.Text);
            Assert.AreEqual(MomErrType.Source, m.TotalError.ErrType);
            Assert.AreEqual(true, m.Boolean);
            Assert.AreEqual(0, m.Integer);
            Assert.AreEqual(45.67, m.Real);
            Assert.AreEqual("45.67", m.String);
            Assert.AreEqual(1, m.Count);
            Assert.AreEqual(DataType.String, m.DataType);
            Assert.IsFalse(m1.ValueEquals(m));
            Assert.IsFalse(m1.ValueAndErrorEquals(m));
            Assert.IsFalse(m.ValueEquals(m1));
            Assert.IsFalse(m.ValueAndErrorEquals(m1));

            var err1 = pool.MakeError(1, c);

            m = MFactory.NewMom(DataType.String, d, false, err1);
            Assert.AreEqual(d1, m1.Time);
            Assert.IsNotNull(m.Error);
            Assert.IsNotNull(m.TotalError);
            Assert.AreEqual(1, m.Error.Number);
            Assert.AreEqual("Warning", m.Error.Text);
            Assert.AreEqual(MomErrType.Source, m.Error.ErrType);
            Assert.AreEqual(1, m.TotalError.Number);
            Assert.AreEqual("Warning", m.TotalError.Text);
            Assert.AreEqual(MomErrType.Source, m.TotalError.ErrType);
            Assert.AreEqual(false, m.Boolean);
            Assert.AreEqual(0, m.Integer);
            Assert.AreEqual(0.0, m.Real);
            Assert.AreEqual("0", m.String);
            Assert.AreEqual(1, m.Count);
            Assert.AreEqual(DataType.String, m.DataType);
            Assert.IsFalse(m1.ValueEquals(m));
            Assert.IsFalse(m1.ValueAndErrorEquals(m));
            Assert.IsFalse(m.ValueEquals(m1));
            Assert.IsFalse(m.ValueAndErrorEquals(m1));
        }
Exemplo n.º 21
0
        public void MomReal()
        {
            var c    = new ContextTest("Context");
            var pool = MakeErrPool();
            var err  = pool.MakeError(2, c);

            var d = new DateTime(2016, 06, 16, 11, 23, 00);
            var m = MFactory.NewMom(d, 2.1);

            Assert.AreEqual(d, m.Time);
            Assert.IsNull(m.Error);
            Assert.IsNull(m.TotalError);
            Assert.AreEqual(true, m.Boolean);
            Assert.AreEqual(2, m.Integer);
            Assert.AreEqual(2.1, m.Real);
            Assert.AreEqual("2,1", m.String);
            Assert.AreEqual(1, m.Count);
            Assert.AreEqual(DataType.Real, m.DataType);
            var v = m.Value;

            Assert.AreEqual(DataType.Real, v.DataType);
            var cv = m.CalcValue;

            Assert.AreEqual(DataType.Real, cv.DataType);
            Assert.IsNull(cv.TotalError);
            Assert.IsNotNull(m.LastMom);
            Assert.AreEqual(2.1, m.LastMom.Real);
            Assert.AreEqual(d, m.TimeI(0));
            Assert.IsNull(m.ErrorI(0));
            Assert.AreEqual(true, m.BooleanI(0));
            Assert.AreEqual(2, m.IntegerI(0));
            Assert.AreEqual(2.1, m.RealI(0));
            Assert.AreEqual("2,1", m.StringI(0));

            var d1 = new DateTime(2016, 06, 16, 11, 26, 00);
            var m1 = m.ToMom(d1);

            Assert.AreEqual(d1, m1.Time);
            Assert.IsNull(m1.Error);
            Assert.IsNull(m1.TotalError);
            Assert.AreEqual(true, m1.Boolean);
            Assert.AreEqual(2, m1.Integer);
            Assert.AreEqual(2.1, m1.Real);
            Assert.AreEqual("2,1", m1.String);
            Assert.AreEqual(1, m1.Count);
            Assert.AreEqual(DataType.Real, m1.DataType);
            Assert.IsTrue(m1.ValueEquals(m));
            Assert.IsTrue(m1.ValueAndErrorEquals(m));
            Assert.IsTrue(m.ValueEquals(m1));
            Assert.IsTrue(m.ValueAndErrorEquals(m1));
            Assert.IsFalse(m.ValueLess(m1));
            Assert.IsFalse(m1.ValueLess(m));

            var m2 = m1.ToMom();

            Assert.AreEqual(d1, m1.Time);
            Assert.IsNull(m2.Error);
            Assert.IsNull(m2.TotalError);
            Assert.AreEqual(true, m2.Boolean);
            Assert.AreEqual(2, m2.Integer);
            Assert.AreEqual(2.1, m2.Real);
            Assert.AreEqual("2,1", m2.String);
            Assert.AreEqual(1, m2.Count);
            Assert.AreEqual(DataType.Real, m2.DataType);

            m = MFactory.NewMom(d1, -1.3e24, err);
            Assert.IsNotNull(m.Error);
            Assert.IsNotNull(m.TotalError);
            Assert.AreEqual(2, m.Error.Number);
            Assert.AreEqual("Error", m.Error.Text);
            Assert.AreEqual(MomErrType.Source, m.Error.ErrType);
            Assert.AreEqual(true, m.Boolean);
            Assert.AreEqual(0, m.Integer);
            Assert.AreEqual(-1.3e24, m.Real);
            Assert.AreEqual("-1,3E+24", m.String);
            Assert.AreEqual(1, m.Count);
            Assert.AreEqual(DataType.Real, m.DataType);
            Assert.IsFalse(m1.ValueEquals(m));
            Assert.IsFalse(m1.ValueAndErrorEquals(m));
            Assert.IsFalse(m.ValueEquals(m1));
            Assert.IsFalse(m.ValueAndErrorEquals(m1));
            Assert.IsTrue(m.ValueLess(m1));
            Assert.IsFalse(m1.ValueLess(m));

            var err1 = pool.MakeError(1, c);

            m = MFactory.NewMom(DataType.Real, d, "5", err1);
            Assert.AreEqual(d1, m1.Time);
            Assert.IsNotNull(m.Error);
            Assert.IsNotNull(m.TotalError);
            Assert.AreEqual(1, m.Error.Number);
            Assert.AreEqual("Warning", m.Error.Text);
            Assert.AreEqual(MomErrType.Source, m.Error.ErrType);
            Assert.AreEqual(1, m.TotalError.Number);
            Assert.AreEqual("Warning", m.TotalError.Text);
            Assert.AreEqual(MomErrType.Source, m.TotalError.ErrType);
            Assert.AreEqual(true, m.Boolean);
            Assert.AreEqual(5, m.Integer);
            Assert.AreEqual(5, m.Real);
            Assert.AreEqual("5", m.String);
            Assert.AreEqual(1, m.Count);
            Assert.AreEqual(DataType.Real, m.DataType);
            Assert.IsFalse(m1.ValueEquals(m));
            Assert.IsFalse(m1.ValueAndErrorEquals(m));
            Assert.IsFalse(m.ValueEquals(m1));
            Assert.IsFalse(m.ValueAndErrorEquals(m1));
        }
Exemplo n.º 22
0
        public void MomBool()
        {
            var c    = new ContextTest("Context");
            var pool = MakeErrPool();
            var err  = pool.MakeError(2, c);

            var d = new DateTime(2016, 06, 16, 11, 23, 00);
            var m = MFactory.NewMom(d, true);

            Assert.AreEqual(d, m.Time);
            Assert.IsNull(m.Error);
            Assert.IsNull(m.TotalError);
            Assert.AreEqual(true, m.Boolean);
            Assert.AreEqual(1, m.Integer);
            Assert.AreEqual(1.0, m.Real);
            Assert.AreEqual("1", m.String);
            Assert.AreEqual(1, m.Count);
            Assert.AreEqual(DataType.Boolean, m.DataType);
            var v = m.Value;

            Assert.AreEqual(DataType.Boolean, v.DataType);
            var cv = m.CalcValue;

            Assert.AreEqual(DataType.Boolean, cv.DataType);
            Assert.IsNull(cv.TotalError);
            Assert.IsNotNull(m.LastMom);
            Assert.AreEqual(true, m.LastMom.Boolean);
            Assert.AreEqual(d, m.TimeI(0));
            Assert.IsNull(m.ErrorI(0));
            Assert.AreEqual(true, m.BooleanI(0));
            Assert.AreEqual(1, m.IntegerI(0));
            Assert.AreEqual(1.0, m.RealI(0));
            Assert.AreEqual("1", m.StringI(0));

            var mn = m.ToMean();

            Assert.AreEqual(Static.MinDate, mn.Time);
            Assert.IsNull(mn.Error);
            Assert.IsNull(mn.TotalError);
            Assert.AreEqual(true, mn.Boolean);
            Assert.AreEqual(1, mn.Integer);
            Assert.AreEqual(1.0, mn.Real);
            Assert.AreEqual("1", mn.String);
            Assert.AreEqual(1, mn.Count);
            Assert.AreEqual(DataType.Boolean, mn.DataType);
            v = mn.Value;
            Assert.AreEqual(DataType.Boolean, v.DataType);
            cv = mn.CalcValue;
            Assert.AreEqual(DataType.Boolean, cv.DataType);
            Assert.IsNull(cv.TotalError);
            Assert.IsNotNull(mn.LastMom);
            Assert.AreEqual(true, mn.LastMom.Boolean);
            Assert.AreEqual(Static.MinDate, mn.TimeI(0));
            Assert.IsNull(mn.ErrorI(0));
            Assert.AreEqual(true, mn.BooleanI(0));
            Assert.AreEqual(1, mn.IntegerI(0));
            Assert.AreEqual(1.0, mn.RealI(0));
            Assert.AreEqual("1", mn.StringI(0));

            var d1 = new DateTime(2016, 06, 16, 11, 26, 00);
            var m1 = m.ToMom(d1, err);

            Assert.AreEqual(d1, m1.Time);
            Assert.IsNotNull(m1.Error);
            Assert.IsNotNull(m1.TotalError);
            Assert.AreEqual(2, m1.Error.Number);
            Assert.AreEqual("Error", m1.Error.Text);
            Assert.AreEqual(MomErrType.Source, m1.Error.ErrType);
            Assert.AreEqual(true, m1.Boolean);
            Assert.AreEqual(1, m1.Integer);
            Assert.AreEqual(1.0, m1.Real);
            Assert.AreEqual("1", m1.String);
            Assert.AreEqual(1, m1.Count);
            Assert.AreEqual(DataType.Boolean, m1.DataType);
            Assert.IsTrue(m1.ValueEquals(m));
            Assert.IsFalse(m1.ValueAndErrorEquals(m));
            Assert.IsTrue(m.ValueEquals(m1));
            Assert.IsFalse(m.ValueAndErrorEquals(m1));

            m = MFactory.NewMom(d1, true, err);
            Assert.IsNotNull(m.Error);
            Assert.IsNotNull(m.TotalError);
            Assert.AreEqual(2, m.Error.Number);
            Assert.AreEqual("Error", m.Error.Text);
            Assert.AreEqual(MomErrType.Source, m.Error.ErrType);
            Assert.AreEqual(2, m.TotalError.Number);
            Assert.AreEqual("Error", m.TotalError.Text);
            Assert.AreEqual(MomErrType.Source, m.TotalError.ErrType);
            Assert.AreEqual(true, m.Boolean);
            Assert.AreEqual(1, m.Integer);
            Assert.AreEqual(1.0, m.Real);
            Assert.AreEqual("1", m.String);
            Assert.AreEqual(1, m.Count);
            Assert.AreEqual(DataType.Boolean, m.DataType);
            Assert.IsTrue(m1.ValueEquals(m));
            Assert.IsTrue(m1.ValueAndErrorEquals(m));
            Assert.IsTrue(m.ValueEquals(m1));
            Assert.IsTrue(m.ValueAndErrorEquals(m1));

            var err1 = pool.MakeError(1, c);

            m = MFactory.NewMom(DataType.Boolean, d, 1, err1);
            Assert.AreEqual(d1, m1.Time);
            Assert.IsNotNull(m.Error);
            Assert.IsNotNull(m.TotalError);
            Assert.AreEqual(1, m.Error.Number);
            Assert.AreEqual("Warning", m.Error.Text);
            Assert.AreEqual(MomErrType.Source, m.Error.ErrType);
            Assert.AreEqual(1, m.TotalError.Number);
            Assert.AreEqual("Warning", m.TotalError.Text);
            Assert.AreEqual(MomErrType.Source, m.TotalError.ErrType);
            Assert.AreEqual(true, m.Boolean);
            Assert.AreEqual(1, m.Integer);
            Assert.AreEqual(1.0, m.Real);
            Assert.AreEqual("1", m.String);
            Assert.AreEqual(1, m.Count);
            Assert.AreEqual(DataType.Boolean, m.DataType);
            Assert.IsTrue(m1.ValueEquals(m));
            Assert.IsFalse(m1.ValueAndErrorEquals(m));
            Assert.IsTrue(m.ValueEquals(m1));
            Assert.IsFalse(m.ValueAndErrorEquals(m1));
        }
Exemplo n.º 23
0
 public ListSignal(SourceConnect connect, string code, DataType dataType, string contextOut, DicS <string> inf)
     : base(connect, code, dataType, contextOut, inf)
 {
     MomList = MFactory.NewList(dataType);
     _bufMom = (Mean)MFactory.NewMom(dataType);
 }
Exemplo n.º 24
0
 public ProxySignal(string connectCode, IReadSignal signal)
 {
     InSignal    = signal;
     ConnectCode = connectCode;
     OutValue    = MFactory.NewList(DataType);
 }
Exemplo n.º 25
0
 public static void MFactory_Heading_Throws(int level)
 {
     Assert.Throws <ArgumentOutOfRangeException>(() => MFactory.Heading(level, "x"));
 }
Exemplo n.º 26
0
        public static void MFactory_ListItem()
        {
            string text = MarkdownTextText();

            Assert.Equal(text, MFactory.BulletItem(text).content);
        }
Exemplo n.º 27
0
        public void MomListString()
        {
            var pool = MakeErrPool();
            var c    = new ContextTest("Context");

            var list = MFactory.NewList(DataType.String);

            Assert.AreEqual(0, list.Count);
            Assert.AreEqual(DataType.String, list.DataType);

            var err1 = pool.MakeError(1, c);
            var err2 = pool.MakeError(2, c);

            list.AddMom(RTime(0), "s0");
            list.AddMom(RTime(0, 10), "s1", err1);
            list.AddMom(RTime(0, 20), "s2", err2);
            Assert.AreEqual(3, list.Count);
            Assert.AreEqual(RTime(0), list.TimeI(0));
            Assert.AreEqual(RTime(0, 10), list.TimeI(1));
            Assert.AreEqual(RTime(0, 20), list.TimeI(2));
            Assert.AreEqual("s0", list.StringI(0));
            Assert.AreEqual("s1", list.StringI(1));
            Assert.AreEqual("s2", list.StringI(2));
            Assert.IsNull(list.ErrorI(0));
            Assert.AreEqual(1, list.ErrorI(1).Number);
            Assert.AreEqual("Error", list.ErrorI(2).Text);

            list.CurNum = 1;
            Assert.AreEqual("s1", list.String);
            Assert.AreEqual(1, list.Error.Number);
            Assert.AreEqual(RTime(0, 10), list.Time);

            var m = list.ToMom(RTime(1), err2);

            Assert.AreEqual("s1", m.String);
            Assert.AreEqual(1, m.Error.Number);
            Assert.AreEqual(RTime(1), m.Time);

            var me = new EditMom(DataType.Real);

            me.Time = RTime(0, 5);
            me.Real = 2;
            list.AddMom(me);
            me.Time = RTime(0, 15);
            me.Real = 2.1;
            list.AddMom(me, err1);
            me.Time = RTime(0, 25);
            me.Real = 2.2;
            list.AddMom(me, err2);
            Assert.AreEqual(6, list.Count);
            Assert.AreEqual(RTime(0), list.TimeI(0));
            Assert.AreEqual(RTime(0, 5), list.TimeI(1));
            Assert.AreEqual(RTime(0, 10), list.TimeI(2));
            Assert.AreEqual(RTime(0, 15), list.TimeI(3));
            Assert.AreEqual(RTime(0, 20), list.TimeI(4));
            Assert.AreEqual(RTime(0, 25), list.TimeI(5));
            Assert.AreEqual("s0", list.StringI(0));
            Assert.AreEqual("2", list.StringI(1));
            Assert.AreEqual("s1", list.StringI(2));
            Assert.AreEqual("2,1", list.StringI(3));
            Assert.AreEqual("s2", list.StringI(4));
            Assert.AreEqual("2,2", list.StringI(5));
            Assert.IsNull(list.ErrorI(0));
            Assert.IsNull(list.ErrorI(1));
            Assert.AreEqual(1, list.ErrorI(2).Number);
            Assert.AreEqual(1, list.ErrorI(3).Number);
            Assert.AreEqual(2, list.ErrorI(4).Number);
            Assert.AreEqual(2, list.ErrorI(5).Number);
        }
Exemplo n.º 28
0
        public static void MFactory_RawText()
        {
            string text = MarkdownTextText();

            Assert.Equal(text, MFactory.Raw(text).Value);
        }
Exemplo n.º 29
0
        //Вычисление скалярной функции для списков мгновенных значений
        internal IReadMean CalcScalar(DataType dataType,                   //Возвращаемый тип данных
                                      IReadMean[] par,                     //Список аргументов
                                      bool isComplex,                      //При вычислении используются флаги значений аргументов
                                      Action <IReadMean[], bool[]> action) //Действие, выполняющее вычисление для одного момента времени
        {
            SetScalarDataType(dataType);
            var mpar = new IReadMean[par.Length];
            var cpar = new bool[par.Length];

            bool isMom = !isComplex;

            for (int i = 0; i < par.Length; i++)
            {
                var mean = par[i] as Mean;
                if (mean != null)
                {
                    mpar[i] = mean;
                }
                else
                {
                    isMom = false;
                    if (par[i].Count == 0 && !isComplex)
                    {
                        return(MFactory.NewList(dataType));
                    }
                }
            }

            if (isMom) //Одно значение
            {
                DateTime t = Static.MinDate;
                foreach (var mean in mpar)
                {
                    if (mean.Time > t)
                    {
                        t = mean.Time;
                    }
                }
                if (t == Static.MinDate)
                {
                    t = PeriodBegin;
                }
                CalcScalarFun(mpar, () => action(mpar, cpar));
                return(ScalarRes.ToMom(t));
            }

            //Список значений
            var rlist = MFactory.NewList(dataType);

            while (true)
            {
                DateTime ctime = Static.MaxDate;
                foreach (var list in par)
                {
                    if (list.NextTime < ctime)
                    {
                        ctime = list.NextTime;
                    }
                }
                if (ctime == Static.MaxDate)
                {
                    break;
                }

                for (int i = 0; i < par.Length; i++)
                {
                    var list = par[i];
                    cpar[i] = list.NextTime == ctime;
                    if (cpar[i])
                    {
                        list.CurNum++;
                    }
                    mpar[i] = list.ToMean();
                }
                CalcScalarFun(mpar, () => action(mpar, cpar));
                rlist.AddMom(ScalarRes.ToMom(ctime));
            }
            return(rlist);
        }
Exemplo n.º 30
0
 protected override Node MakeConstNode(ITerminalNode terminal, DateTime d)
 {
     return(new ConstCalcNode(MFactory.NewMean(d)));
 }