public void TestCombineDifInitial(IDeclaredParameter loopVarName, IValue ivalSize, IValue initialValue1, IValue initialValue2) { var p1 = new StatementForLoop(loopVarName, ivalSize, initialValue1); var p2 = new StatementForLoop(loopVarName, ivalSize, initialValue2); var r = p1.TryCombineStatement(p2, new dummyOpt()); Assert.IsFalse(r, "Should always be equal"); }
public void TestCombineDifInitial(IDeclaredParameter loopVarName, IValue ivalSize, IValue initialValue1, IValue initialValue2) { var p1 = new StatementForLoop(loopVarName, ivalSize, initialValue1); var p2 = new StatementForLoop(loopVarName, ivalSize, initialValue2); var r = p1.TryCombineStatement(p2, new dummyOpt()); Assert.IsFalse(r, "Should always be equal"); }
public void TestCombineDifferentInitialValues() { IValue initial1 = new ValSimple("0", typeof(int)); IValue initial2 = new ValSimple("1", typeof(int)); IValue size = new ValSimple("10", typeof(int)); var lv1 = DeclarableParameter.CreateDeclarableParameterExpression(typeof(int)); var lv2 = DeclarableParameter.CreateDeclarableParameterExpression(typeof(int)); var p1 = new StatementForLoop(lv1, size, initial1); var p2 = new StatementForLoop(lv2, size, initial2); var r = p1.TryCombineStatement(p2, new dummyOpt()); Assert.IsFalse(r, "different initial conditions, should be null"); }
public void TestCombineDifferentInitialValues() { IValue initial1 = new ValSimple("0", typeof(int)); IValue initial2 = new ValSimple("1", typeof(int)); IValue size = new ValSimple("10", typeof(int)); var lv1 = DeclarableParameter.CreateDeclarableParameterExpression(typeof(int)); var lv2 = DeclarableParameter.CreateDeclarableParameterExpression(typeof(int)); var p1 = new StatementForLoop(lv1, size, initial1); var p2 = new StatementForLoop(lv2, size, initial2); var r = p1.TryCombineStatement(p2, new dummyOpt()); Assert.IsFalse(r, "different initial conditions, should be null"); }
public void TestTryCombine([PexAssumeUnderTest] StatementForLoop target, IStatement s) { /// We should never be able to combine any filter statements currently! var val = new Variables.ValSimple("true", typeof(bool)); var result = target.TryCombineStatement(s, null); if (s.GetType() != typeof(StatementForLoop)) { Assert.IsFalse(result, "Types not right"); } else { var other = s as StatementForLoop; Assert.AreEqual(other.ArrayLength == target.ArrayLength, result, "for loops not conssitent"); } }
public void TestCombineNestedForLoop() { var limit = new LINQToTTreeLib.Variables.ValSimple("5", typeof(int)); var loopP1 = DeclarableParameter.CreateDeclarableParameterExpression(typeof(int)); var loop1 = new StatementForLoop(loopP1, limit); var loopP2 = DeclarableParameter.CreateDeclarableParameterExpression(typeof(int)); var loop2 = new StatementForLoop(loopP2, limit); loop1.Add(loop2); var limit2 = new LINQToTTreeLib.Variables.ValSimple("5", typeof(int)); var loopP12 = DeclarableParameter.CreateDeclarableParameterExpression(typeof(int)); var loop12 = new StatementForLoop(loopP12, limit); var loopP22 = DeclarableParameter.CreateDeclarableParameterExpression(typeof(int)); var loop22 = new StatementForLoop(loopP22, limit); loop12.Add(loop22); var r = loop1.TryCombineStatement(loop12, new dummyOpt()); Assert.IsTrue(r, "combination should work"); Assert.IsNull(loop1.Parent, "loop 1 parent"); Assert.AreEqual(loop1, loop2.Parent, "Loop 2 parent"); }
public void TestCombineNestedForLoop() { var limit = new LINQToTTreeLib.Variables.ValSimple("5", typeof(int)); var loopP1 = DeclarableParameter.CreateDeclarableParameterExpression(typeof(int)); var loop1 = new StatementForLoop(loopP1, limit); var loopP2 = DeclarableParameter.CreateDeclarableParameterExpression(typeof(int)); var loop2 = new StatementForLoop(loopP2, limit); loop1.Add(loop2); var limit2 = new LINQToTTreeLib.Variables.ValSimple("5", typeof(int)); var loopP12 = DeclarableParameter.CreateDeclarableParameterExpression(typeof(int)); var loop12 = new StatementForLoop(loopP12, limit); var loopP22 = DeclarableParameter.CreateDeclarableParameterExpression(typeof(int)); var loop22 = new StatementForLoop(loopP22, limit); loop12.Add(loop22); var r = loop1.TryCombineStatement(loop12, new dummyOpt()); Assert.IsTrue(r, "combination should work"); Assert.IsNull(loop1.Parent, "loop 1 parent"); Assert.AreEqual(loop1, loop2.Parent, "Loop 2 parent"); }