public void Constants() { var TestTable = new LadderDataTable(); Node PowerRail = new Node(); PowerRail.LogicLevel = true; Trace.WriteLine("Math", "Unit Test"); Trace.Indent(); Trace.WriteLine("StartUP", "ADD"); Trace.Indent(); ADD add = new ADD(); add.DataTable = TestTable; add.LeftLide = PowerRail; add.Destination = "Dest"; add.VarA = "1"; add.ValueA = 3; add.VarB = "2"; add.ValueB = 1; add.Execute(); Trace.Unindent(); Trace.WriteLine("StartUP", "MOV"); Trace.Indent(); MOV mov = new MOV(); mov.DataTable = TestTable; mov.LeftLide = PowerRail; mov.Destination = "Dest"; mov.VarA = "0"; mov.ValueA = 1; mov.Execute(); Trace.Unindent(); Trace.Unindent(); Trace.WriteLine("Counter", "Unit Test"); Trace.Indent(); Trace.WriteLine("StartUP", "CTC"); Trace.Indent(); CTC ctc = new CTC(); ctc.DataTable = TestTable; ctc.Name = "1"; ctc.Limit = "2"; ctc.LimitValue = 3; ctc.LeftLide = PowerRail; ctc.Execute(); Trace.Unindent(); Trace.WriteLine("StartUP", "CTU"); Trace.Indent(); CTU ctu = new CTU(); ctu.DataTable = TestTable; ctu.Name = "1"; ctu.Limit = "3"; ctu.LimitValue = 4; ctu.LeftLide = PowerRail; ctu.Execute(); Trace.Unindent(); Trace.Unindent(); Trace.WriteLine("Compare", "Unit Test"); Trace.Indent(); EQU equ = new EQU(); equ.DataTable = TestTable; equ.LeftLide = PowerRail; equ.VarA = "3"; equ.ValueA = 4; equ.VarB = "4"; equ.ValueB = 5; equ.Execute(); Trace.Unindent(); Assert.AreEqual(2, TestTable.Count); }
public void Compare() { #region Startup var TestTable = new LadderDataTable(); Node PowerRail = new Node(); EQU equ = new EQU(); equ.LeftLide = PowerRail; equ.VarA = "VarA"; equ.VarB = "VarB"; equ.DataTable = TestTable; GEQ geq = new GEQ(); geq.LeftLide = PowerRail; geq.VarA = "VarA"; geq.VarB = "VarB"; geq.DataTable = TestTable; GRT grt = new GRT(); grt.LeftLide = PowerRail; grt.VarA = "VarA"; grt.VarB = "VarB"; grt.DataTable = TestTable; LEG leg = new LEG(); leg.LeftLide = PowerRail; leg.VarA = "VarA"; leg.VarB = "VarB"; leg.DataTable = TestTable; LES les = new LES(); les.LeftLide = PowerRail; les.VarA = "VarA"; les.VarB = "VarB"; les.DataTable = TestTable; NEQ neq = new NEQ(); neq.LeftLide = PowerRail; neq.VarA = "VarA"; neq.VarB = "VarB"; neq.DataTable = TestTable; #endregion Startup #region EQU Trace.WriteLine("EQU", "Unit Test"); Trace.Indent(); Trace.WriteLine("Input False", "EQU"); Trace.Indent(); PowerRail.LogicLevel = false; TestTable.SetValue(0, (short)1); TestTable.SetValue(1, (short)1); Assert.IsFalse(equ.Execute()); TestTable.SetValue(0, (short)0); TestTable.SetValue(1, (short)1); Assert.IsFalse(equ.Execute()); TestTable.SetValue(0, (short)1); TestTable.SetValue(1, (short)0); Assert.IsFalse(equ.Execute()); Trace.Unindent(); Trace.WriteLine("Input True", "EQU"); Trace.Indent(); PowerRail.LogicLevel = true; TestTable.SetValue(0, (short)1); TestTable.SetValue(1, (short)1); Assert.IsTrue(equ.Execute()); TestTable.SetValue(0, (short)0); TestTable.SetValue(1, (short)1); Assert.IsFalse(equ.Execute()); TestTable.SetValue(0, (short)1); TestTable.SetValue(1, (short)0); Assert.IsFalse(equ.Execute()); Trace.Unindent(); Trace.Unindent(); #endregion EQU #region GEQ Trace.WriteLine("GEQ", "Unit Test"); Trace.Indent(); Trace.WriteLine("Input False", "GEQ"); Trace.Indent(); PowerRail.LogicLevel = false; TestTable.SetValue(0, (short)1); TestTable.SetValue(1, (short)1); Assert.IsFalse(geq.Execute()); TestTable.SetValue(0, (short)0); TestTable.SetValue(1, (short)1); Assert.IsFalse(geq.Execute()); TestTable.SetValue(0, (short)1); TestTable.SetValue(1, (short)0); Assert.IsFalse(geq.Execute()); Trace.Unindent(); Trace.WriteLine("Input True", "GEQ"); Trace.Indent(); PowerRail.LogicLevel = true; TestTable.SetValue(0, (short)1); TestTable.SetValue(1, (short)1); Assert.IsTrue(geq.Execute()); TestTable.SetValue(0, (short)0); TestTable.SetValue(1, (short)1); Assert.IsFalse(geq.Execute()); TestTable.SetValue(0, (short)1); TestTable.SetValue(1, (short)0); Assert.IsTrue(geq.Execute()); Trace.Unindent(); Trace.Unindent(); #endregion GEQ #region GRT Trace.WriteLine("GRT", "Unit Test"); Trace.Indent(); Trace.WriteLine("Input False", "GRT"); Trace.Indent(); PowerRail.LogicLevel = false; TestTable.SetValue(0, (short)1); TestTable.SetValue(1, (short)1); grt.Execute(); Assert.IsFalse(grt.InternalState); TestTable.SetValue(0, (short)0); TestTable.SetValue(1, (short)1); grt.Execute(); Assert.IsFalse(grt.InternalState); TestTable.SetValue(0, (short)1); TestTable.SetValue(1, (short)0); grt.Execute(); Assert.IsFalse(grt.InternalState); Trace.Unindent(); Trace.WriteLine("Input True", "GRT"); Trace.Indent(); PowerRail.LogicLevel = true; TestTable.SetValue(0, (short)1); TestTable.SetValue(1, (short)1); grt.Execute(); Assert.IsFalse(grt.InternalState); TestTable.SetValue(0, (short)0); TestTable.SetValue(1, (short)1); grt.Execute(); Assert.IsFalse(grt.InternalState); TestTable.SetValue(0, (short)1); TestTable.SetValue(1, (short)0); grt.Execute(); Assert.IsTrue(grt.InternalState); Trace.Unindent(); Trace.Unindent(); #endregion GRT #region LEG Trace.WriteLine("LEG", "Unit Test"); Trace.Indent(); Trace.WriteLine("Input False", "LEG"); Trace.Indent(); PowerRail.LogicLevel = false; TestTable.SetValue(0, (short)1); TestTable.SetValue(1, (short)1); leg.Execute(); Assert.IsFalse(leg.InternalState); TestTable.SetValue(0, (short)0); TestTable.SetValue(1, (short)1); leg.Execute(); Assert.IsFalse(leg.InternalState); TestTable.SetValue(0, (short)1); TestTable.SetValue(1, (short)0); leg.Execute(); Assert.IsFalse(leg.InternalState); Trace.Unindent(); Trace.WriteLine("Input True", "LEG"); Trace.Indent(); PowerRail.LogicLevel = true; TestTable.SetValue(0, (short)1); TestTable.SetValue(1, (short)1); leg.Execute(); Assert.IsTrue(leg.InternalState); TestTable.SetValue(0, (short)0); TestTable.SetValue(1, (short)1); leg.Execute(); Assert.IsTrue(leg.InternalState); TestTable.SetValue(0, (short)1); TestTable.SetValue(1, (short)0); leg.Execute(); Assert.IsFalse(leg.InternalState); Trace.Unindent(); Trace.Unindent(); #endregion LEG #region LES Trace.WriteLine("LES", "Unit Test"); Trace.Indent(); Trace.WriteLine("Input False", "LES"); Trace.Indent(); PowerRail.LogicLevel = false; TestTable.SetValue(0, (short)1); TestTable.SetValue(1, (short)1); Assert.IsFalse(les.Execute()); TestTable.SetValue(0, (short)0); TestTable.SetValue(1, (short)1); Assert.IsFalse(les.Execute()); TestTable.SetValue(0, (short)1); TestTable.SetValue(1, (short)0); Assert.IsFalse(les.Execute()); Trace.Unindent(); Trace.WriteLine("Input True", "LES"); Trace.Indent(); PowerRail.LogicLevel = true; TestTable.SetValue(0, (short)1); TestTable.SetValue(1, (short)1); Assert.IsFalse(les.Execute()); TestTable.SetValue(0, (short)0); TestTable.SetValue(1, (short)1); Assert.IsTrue(les.Execute()); TestTable.SetValue(0, (short)1); TestTable.SetValue(1, (short)0); Assert.IsFalse(les.Execute()); Trace.Unindent(); Trace.Unindent(); #endregion LES #region NEQ Trace.WriteLine("NEQ", "Unit Test"); Trace.Indent(); Trace.WriteLine("Input False", "NEQ"); Trace.Indent(); PowerRail.LogicLevel = false; TestTable.SetValue(0, (short)1); TestTable.SetValue(1, (short)1); Assert.IsFalse(neq.Execute()); TestTable.SetValue(0, (short)0); TestTable.SetValue(1, (short)1); Assert.IsFalse(neq.Execute()); TestTable.SetValue(0, (short)1); TestTable.SetValue(1, (short)0); Assert.IsFalse(neq.Execute()); Trace.Unindent(); Trace.WriteLine("Input True", "NEQ"); Trace.Indent(); PowerRail.LogicLevel = true; TestTable.SetValue(0, (short)1); TestTable.SetValue(1, (short)1); Assert.IsFalse(neq.Execute()); TestTable.SetValue(0, (short)0); TestTable.SetValue(1, (short)1); Assert.IsTrue(neq.Execute()); TestTable.SetValue(0, (short)1); TestTable.SetValue(1, (short)0); Assert.IsTrue(neq.Execute()); Trace.Unindent(); Trace.Unindent(); #endregion NEQ }