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)); }
public static void MFactory_Autolink() { string url = LinkUrl(); MAutolink autolink = MFactory.Autolink(url); Assert.Equal(url, autolink.Url); }
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); } }
//Агрегация по равномерным сегментам //На входе функция с параметрами: текущий результат, список и обрабатываемый номер 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); } }
public static void MFactory_CodeBlock_DefaultValues() { string text = CodeBlockText(); MFencedCodeBlock block = MFactory.FencedCodeBlock(text); Assert.Equal(text, block.Text); Assert.Null(block.Info); }
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); }
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); } }
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); }
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); }
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); }
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); }
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: " "))); }
//Определение типа данных возвращаемых значений 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); }
//Разбор формулы, заданной прямой польской записью //Формула имеет вид ИмяФункции;КоличествоПараметров;Параметр;Параметр;... 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]); } }
public static void MFactory_InlineCode() { string text = MarkdownTextText(); Assert.Equal(text, MFactory.InlineCode(text).Text); }
protected override Node MakeConstNode(ITerminalNode terminal, string s) { return(new ConstCalcNode(MFactory.NewMean(s))); }
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); }
public ConstNode(ITerminalNode terminal, DataType dtype, string s) : base(terminal) { Mean = MFactory.NewMean(dtype, s); }
public MomSignal(SourceConnect connect, string code, DataType dataType, string contextOut, DicS <string> inf) : base(connect, code, dataType, contextOut, inf) { _value = (Mean)MFactory.NewMom(dataType); }
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)); }
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)); }
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)); }
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); }
public ProxySignal(string connectCode, IReadSignal signal) { InSignal = signal; ConnectCode = connectCode; OutValue = MFactory.NewList(DataType); }
public static void MFactory_Heading_Throws(int level) { Assert.Throws <ArgumentOutOfRangeException>(() => MFactory.Heading(level, "x")); }
public static void MFactory_ListItem() { string text = MarkdownTextText(); Assert.Equal(text, MFactory.BulletItem(text).content); }
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); }
public static void MFactory_RawText() { string text = MarkdownTextText(); Assert.Equal(text, MFactory.Raw(text).Value); }
//Вычисление скалярной функции для списков мгновенных значений 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); }
protected override Node MakeConstNode(ITerminalNode terminal, DateTime d) { return(new ConstCalcNode(MFactory.NewMean(d))); }