public void Test_RandomSequence_ShouldAlternate_WhenOnlyTwoObjects() { object[] objects = new object[2] { new object(), new object() }; VariableSequence <object> sequence = new VariableSequence <object>(objects); this.sequence.Order = VariableSequence <object> .OrderType.Random; sequence.initialise(); object firstObject = sequence.Current; object secondObject = sequence.Next; for (int i = 0; i < num_of_cycles; i++) { object current = sequence.Current; object next = sequence.Next; if (i % 2 == 0) { if (current != firstObject || next != secondObject) { FailWithShouldAlternateMessage(); } } else { if (current == firstObject || next == secondObject) { FailWithShouldAlternateMessage(); } } sequence.advance(); } }
public void Test_OrderTypeSwitch_ShouldYield_InitialisedSequence_WherePossible() { VariableSequence <object> .OrderType previousOrder = this.sequence.Order; this.sequence.Order = previousOrder == VariableSequence <object> .OrderType.Random ? VariableSequence <object> .OrderType.Regular : VariableSequence <object> .OrderType.Random; Assert.AreNotEqual(this.sequence.Order, previousOrder, "VariableSequence order did not switch during test."); Assert.GreaterOrEqual(this.sequence.CurrentIndex, 0, "VariableSequence did not yield initialised sequence when OrderType was switched."); }
public void SequenceVar_TestSequence() { //Arrange int[] numArr = new int[10]; int minNum = 0; int maxNum = 10; int itrCount = 10; VariableSequence variableSequence = new VariableSequence(); variableSequence.Min = minNum; variableSequence.Max = maxNum; variableSequence.Interval = 1; //Act for (int i = 0; i < itrCount; i++) { variableSequence.GenerateAutoValue(); numArr[i] = Convert.ToInt32(variableSequence.Value); } //Assert for (int i = 0; i < itrCount; i++) { Assert.AreEqual(i + 1, numArr[i], "Sequence Issue"); Assert.IsTrue(numArr[i] >= minNum && numArr[i] <= maxNum, "num1 >= " + minNum + " && num1 <= " + maxNum); } }
public Procedure(string name, VariableSequence valArgs, Variable resultArg, StatementSequence statements) { AddChild(valArgs); AddChild(resultArg); AddChild(statements); _name = name; }
void Proc(ProcedureSequence procs) { StatementSequence statements; string name; VariableSequence valArgs = new VariableSequence(); Variable resultArg = null; Expect(5); Token ptok = t; Expect(1); name = t.val; Expect(6); if (la.kind == 7 || la.kind == 8) { if (la.kind == 7) { Get(); Expect(1); Variable v = new Variable(t.val); v.IsValueArg = true; valArgs.AddVariable(v); SymbolTable.DefineArgument(t.val); if (la.kind == 12) { Args(valArgs, out resultArg); } } else { Get(); Expect(1); resultArg = new Variable(t.val); resultArg.IsResultArg = true; SymbolTable.DefineResultArgument(t.val); } } Expect(9); SequencePoint seq1 = new SequencePoint(ptok.line, ptok.col, t.line, t.col + t.val.Length); Expect(10); StmtSeq(out statements); Expect(4); SequencePoint seq2 = new SequencePoint(t.line, t.col, t.line, t.col + t.val.Length); Expect(11); if (procs.ContainsProcedure(name)) { errors.SemErr(ptok.line, ptok.col, "Procedure '" + name + "' is already declared"); } else { Procedure proc = new Procedure(name, valArgs, resultArg, statements); proc.AddSequencePoint(seq1); proc.AddSequencePoint(seq2); procs.AddProcedure(proc); } SymbolTable.Clear(); }
public void Test_ContentsPersist_WhenOrderType_IsSwitched() { object[] previousContents = this.sequence.Contents; VariableSequence <object> .OrderType previousOrder = this.sequence.Order; this.sequence.Order = previousOrder == VariableSequence <object> .OrderType.Random ? VariableSequence <object> .OrderType.Regular : VariableSequence <object> .OrderType.Random; Assert.AreNotEqual(this.sequence.Order, previousOrder, "VariableSequence order did not switch during test."); Assert.AreEqual(previousContents, this.sequence.Contents, "VariableSequence contents changed when switching random."); }
public VariableSequencePage(VariableSequence var) { InitializeComponent(); GingerCore.GeneralLib.BindingHandler.ObjFieldBinding(txtMinValue, TextBox.TextProperty, var, nameof(VariableSequence.Min)); GingerCore.GeneralLib.BindingHandler.ObjFieldBinding(txtMaxValue, TextBox.TextProperty, var, nameof(VariableSequence.Max)); GingerCore.GeneralLib.BindingHandler.ObjFieldBinding(txtInterval, TextBox.TextProperty, var, nameof(VariableSequence.Interval)); GingerCore.GeneralLib.BindingHandler.ObjFieldBinding(cbInteger, CheckBox.IsCheckedProperty, var, nameof(VariableSequence.IsInteger)); }
public VariableSequencePage(VariableSequence var) { InitializeComponent(); App.ObjFieldBinding(txtMinValue, TextBox.TextProperty, var, VariableSequence.Fields.Min); App.ObjFieldBinding(txtMaxValue, TextBox.TextProperty, var, VariableSequence.Fields.Max); App.ObjFieldBinding(txtInterval, TextBox.TextProperty, var, VariableSequence.Fields.Interval); App.ObjFieldBinding(cbInteger, CheckBox.IsCheckedProperty, var, VariableSequence.Fields.IsInteger); }
public void SetUp() { this.objects = new object[num_of_objects]; for (int i = 0; i < num_of_objects; i++) { this.objects[i] = new object(); } this.sequence = new VariableSequence <object>(); this.sequence.Contents = this.objects; }
public void SequenceVar_TestVariableType() { //Arrange VariableSequence variableSequence = new VariableSequence(); //Act string varType = variableSequence.VariableType(); //Assert Assert.AreEqual("Sequence", varType, "Sequence Variable Type"); }
public void SequenceVar_TestVariableUIType() { //Arrange VariableSequence variableSequence = new VariableSequence(); //Act string varType = variableSequence.VariableUIType; //Assert Assert.IsTrue(varType.Contains("Sequence"), "Sequence Variable UI Type"); }
public void Test_ThrowsException_WhenInitialisingWithNoObjects() { VariableSequence <object> sequence = new VariableSequence <object>(); try { sequence.initialise(); } catch (System.InvalidOperationException) { return; } Assert.Fail("InvalidOperationException expected but not thrown."); }
public void SequenceVar_TestImageType() { //Arrange VariableSequence variableSequence = new VariableSequence(); //Act eImageType eImageType = variableSequence.Image; //Assert Assert.AreEqual(eImageType.Sequence, eImageType, "Image Type"); }
public void SequenceVar_TestDefaultAutoValue() { //Arrange VariableSequence variableSequence = new VariableSequence(); //Act variableSequence.GenerateAutoValue(); int curSeqVal = Convert.ToInt32(variableSequence.Value); //Assert Assert.IsTrue(curSeqVal >= 1 && curSeqVal <= 999, "num1 >= 0 && num1 <= 999"); }
void Args(VariableSequence valArgs, out Variable resultArg) { resultArg = null; if (IsStartOfResultArg()) { Expect(12); Expect(8); Expect(1); resultArg = new Variable(t.val); resultArg.IsResultArg = true; if (SymbolTable.IsDeclaredInCurrentScope(t.val)) { errors.SemErr(t.line, t.col, string.Format("Argument '{0}' is already declared in this scope", t.val)); } else { SymbolTable.DefineResultArgument(t.val); } } else if (la.kind == 12) { Get(); Expect(1); Variable v = new Variable(t.val); v.IsValueArg = true; valArgs.AddVariable(v); if (SymbolTable.IsDeclaredInCurrentScope(t.val)) { errors.SemErr(t.line, t.col, string.Format("Argument '{0}' is already declared in this scope", t.val)); } else { SymbolTable.DefineArgument(t.val); } if (la.kind == 12) { Args(valArgs, out resultArg); } } else { SynErr(51); } }
public void SequenceVar_Min5_Max10_Interval_2() { //Arrange VariableSequence variableSequence = new VariableSequence(); variableSequence.Min = 5; variableSequence.Max = 10; variableSequence.Interval = 2; //Act variableSequence.GenerateAutoValue(); decimal num1 = decimal.Parse(variableSequence.Value); variableSequence.GenerateAutoValue(); decimal num2 = decimal.Parse(variableSequence.Value); //Assert Assert.IsTrue(num1 >= 5, "vs.Value>=5"); Assert.IsTrue(num2 <= 10, "vs.Value<=10"); }
public void SequenceVar_TestFormula() { //Arrange int minNum = 0; int maxNum = 10; int interval = 1; string expectedFormulaStr = minNum + "-" + maxNum + " Interval " + interval; VariableSequence variableSequence = new VariableSequence(); variableSequence.Min = minNum; variableSequence.Max = maxNum; variableSequence.Interval = interval; //Act string formulaVal = variableSequence.GetFormula(); //Assert Assert.AreEqual(expectedFormulaStr, formulaVal, "Sequence Formula"); }
public void SequenceVar_Digit_13() { // same number as minimum and maximum and it should return the same number when we autogenerate //Arrange int sameNum = 13; VariableSequence variableSequence = new VariableSequence(); variableSequence.Min = sameNum; variableSequence.Max = sameNum; for (int i = 0; i < 10; i++) { //Act variableSequence.GenerateAutoValue(); decimal decNum = decimal.Parse(variableSequence.Value); //Assert Assert.AreEqual(decNum, sameNum, "variableRandomString.Value=" + sameNum); Assert.IsTrue(decNum >= sameNum && decNum <= sameNum, "num1 >= " + sameNum + " && num1 <= " + sameNum); } }
public void SequenceVar_Range_99_999_interval_9() { //Arrange int minNum = 99; int maxNum = 999; VariableSequence variableSequence = new VariableSequence(); variableSequence.Min = minNum; variableSequence.Max = maxNum; variableSequence.Interval = 9; for (int i = 0; i < 100; i++) { //Act variableSequence.GenerateAutoValue(); decimal num1 = decimal.Parse(variableSequence.Value); //Assert Assert.IsTrue(num1 >= minNum && num1 <= maxNum, "num1 >= " + minNum + " && num1 <= " + maxNum); } }
public virtual void Visit(VariableSequence node) { }