public void TestAddedNodes01() { List<string> codes = new List<string>() { "a = 1;" }; Guid guid = System.Guid.NewGuid(); List<Subtree> added = new List<Subtree>(); added.Add(CreateSubTreeFromCode(guid, codes[0])); var syncData = new GraphSyncData(null, added, null); // Get astlist from ChangeSetComputer ChangeSetComputer changeSetState = new ProtoScript.Runners.ChangeSetComputer(core); List<AssociativeNode> astList = changeSetState.GetDeltaASTList(syncData); // Get expected ASTList // The list must be in the order that it is expected List<string> expectedCode = new List<string>() { "a = 1;" }; List<AssociativeNode> expectedAstList = ProtoCore.Utils.CoreUtils.BuildASTList(core, expectedCode); // Compare ASTs to be equal for (int n = 0; n < astList.Count; ++n) { AssociativeNode node1 = astList[n]; AssociativeNode node2 = expectedAstList[n]; bool isEqual = node1.Equals(node2); Assert.IsTrue(isEqual); } }
public void TestAddedNodes01() { List <string> codes = new List <string>() { "a = 1;" }; Guid guid = System.Guid.NewGuid(); List <Subtree> added = new List <Subtree>(); added.Add(CreateSubTreeFromCode(guid, codes[0])); var syncData = new GraphSyncData(null, added, null); // Get astlist from ChangeSetComputer ChangeSetComputer changeSetState = new ProtoScript.Runners.ChangeSetComputer(core); List <AssociativeNode> astList = changeSetState.GetDeltaASTList(syncData); // Get expected ASTList // The list must be in the order that it is expected List <string> expectedCode = new List <string>() { "a = 1;" }; List <AssociativeNode> expectedAstList = ProtoCore.Utils.CoreUtils.BuildASTList(core, expectedCode); // Compare ASTs to be equal for (int n = 0; n < astList.Count; ++n) { AssociativeNode node1 = astList[n]; AssociativeNode node2 = expectedAstList[n]; bool isEqual = node1.Equals(node2); Assert.IsTrue(isEqual); } }
public void TestPreviewModify1Node02() { List <string> codes = new List <string>() { // guid1 @" a = 1; ", // guid2 @" x = a; y = x; ", // guid3 @" z = a; ", // guid1 @" a = 10; ", }; Guid guid1 = System.Guid.NewGuid(); Guid guid2 = System.Guid.NewGuid(); Guid guid3 = System.Guid.NewGuid(); // Create and run the graph ProtoScript.Runners.LiveRunner liveRunner = new ProtoScript.Runners.LiveRunner(); List <Subtree> added = new List <Subtree>(); added.Add(CreateSubTreeFromCode(guid1, codes[0])); added.Add(CreateSubTreeFromCode(guid2, codes[1])); added.Add(CreateSubTreeFromCode(guid3, codes[2])); var syncData = new GraphSyncData(null, added, null); liveRunner.UpdateGraph(syncData); // Modify [a = 1;] to [a = 10;] List <Subtree> modified = new List <Subtree>(); modified.Add(CreateSubTreeFromCode(guid1, codes[3])); syncData = new GraphSyncData(null, null, modified); // Get astlist from ChangeSetComputer ChangeSetComputer changeSetState = new ProtoScript.Runners.ChangeSetComputer(liveRunner.Core); List <AssociativeNode> astList = changeSetState.GetDeltaASTList(syncData); // Get the preview guids (affected graphs) List <Guid> reachableGuidList = changeSetState.EstimateNodesAffectedByASTList(astList); // Check if the the affected guids are in the list List <Guid> expectedGuid = new List <Guid> { guid2, guid3 }; AssertPreview(reachableGuidList, expectedGuid, 2); }
public void TestModified02() { List <string> codes = new List <string>() { "a = 1; b = 1;", "c = 1;" }; // Add nodes a = 1, b = 1 Guid guid = System.Guid.NewGuid(); List <Subtree> added = new List <Subtree>(); added.Add(ProtoTestFx.TD.TestFrameWork.CreateSubTreeFromCode(guid, codes[0])); var syncData = new GraphSyncData(null, added, null); // Get astlist from ChangeSetComputer ChangeSetComputer changeSetState = new ProtoScript.Runners.ChangeSetComputer(core, runtimeCore); List <AssociativeNode> astList = changeSetState.GetDeltaASTList(syncData); // Modify contents to c = 1 List <Subtree> modified = new List <Subtree>(); modified.Add(ProtoTestFx.TD.TestFrameWork.CreateSubTreeFromCode(guid, codes[1])); syncData = new GraphSyncData(null, null, modified); // Get astlist from ChangeSetComputer astList = changeSetState.GetDeltaASTList(syncData); // Get expected ASTList // The list must be in the order that it is expected List <string> expectedCode = new List <string>() { "b = null; a = null; c = 1;" }; List <AssociativeNode> expectedAstList = ProtoCore.Utils.CoreUtils.BuildASTList(core, expectedCode); // Compare ASTs to be equal for (int n = 0; n < astList.Count; ++n) { AssociativeNode node1 = astList[n]; AssociativeNode node2 = expectedAstList[n]; bool isEqual = node1.Equals(node2); Assert.IsTrue(isEqual); } }
public void TestPreviewModify1Node01() { List<string> codes = new List<string>() { @" a = 1; ", @" x = a; y = x; ", @" a = 10; ", }; Guid guid1 = System.Guid.NewGuid(); Guid guid2 = System.Guid.NewGuid(); // Create and run the graph [a = 1;] and [x = a; y = x;] ProtoScript.Runners.LiveRunner liveRunner = new ProtoScript.Runners.LiveRunner(); List<Subtree> added = new List<Subtree>(); added.Add(CreateSubTreeFromCode(guid1, codes[0])); added.Add(CreateSubTreeFromCode(guid2, codes[1])); var syncData = new GraphSyncData(null, added, null); liveRunner.UpdateGraph(syncData); // Modify [a = 1;] to [a = 10;] List<Subtree> modified = new List<Subtree>(); modified.Add(CreateSubTreeFromCode(guid1, codes[2])); syncData = new GraphSyncData(null, null, modified); // Get astlist from ChangeSetComputer ChangeSetComputer changeSetState = new ProtoScript.Runners.ChangeSetComputer(liveRunner.Core); List<AssociativeNode> astList = changeSetState.GetDeltaASTList(syncData); // Get the the preview guids (affected graphs) List<Guid> reachableGuidList = changeSetState.EstimateNodesAffectedByASTList(astList); // Check if the the affected guids are in the list List<Guid> expectedGuid = new List<Guid>{guid2}; AssertPreview(reachableGuidList, expectedGuid, 1); }
public void TestPreviewModify2Nodes02() { List <string> codes = new List <string>() { @" a = 1; ", @" b = 2; ", @" x = a; ", @" y = b; ", @" z = b; ", @" a = 10; ", @" b = 20; ", }; Guid guid1 = System.Guid.NewGuid(); Guid guid2 = System.Guid.NewGuid(); Guid guid3 = System.Guid.NewGuid(); Guid guid4 = System.Guid.NewGuid(); Guid guid5 = System.Guid.NewGuid(); // Create and run the graph List <Subtree> added = new List <Subtree>(); added.Add(ProtoTestFx.TD.TestFrameWork.CreateSubTreeFromCode(guid1, codes[0])); added.Add(ProtoTestFx.TD.TestFrameWork.CreateSubTreeFromCode(guid2, codes[1])); added.Add(ProtoTestFx.TD.TestFrameWork.CreateSubTreeFromCode(guid3, codes[2])); added.Add(ProtoTestFx.TD.TestFrameWork.CreateSubTreeFromCode(guid4, codes[3])); added.Add(ProtoTestFx.TD.TestFrameWork.CreateSubTreeFromCode(guid5, codes[4])); var syncData = new GraphSyncData(null, added, null); liveRunner.UpdateGraph(syncData); // Modify [a = 1;] to [a = 10;] // Modify [b = 2;] to [b = 20;] List <Subtree> modified = new List <Subtree>(); modified.Add(ProtoTestFx.TD.TestFrameWork.CreateSubTreeFromCode(guid1, codes[5])); modified.Add(ProtoTestFx.TD.TestFrameWork.CreateSubTreeFromCode(guid2, codes[6])); syncData = new GraphSyncData(null, null, modified); // Get astlist from ChangeSetComputer ChangeSetComputer changeSetState = new ProtoScript.Runners.ChangeSetComputer(liveRunner.Core, liveRunner.RuntimeCore); List <AssociativeNode> astList = changeSetState.GetDeltaASTList(syncData); // Get the the preview guids (affected graphs) List <Guid> reachableGuidList = changeSetState.EstimateNodesAffectedByASTList(astList); // Check if the the affected guids are in the list List <Guid> expectedGuid = new List <Guid> { guid1, guid2, guid3, guid4, guid5 }; AssertPreview(reachableGuidList, expectedGuid); }
public void TestModified02() { List<string> codes = new List<string>() { "a = 1; b = 1;", "c = 1;" }; // Add nodes a = 1, b = 1 Guid guid = System.Guid.NewGuid(); List<Subtree> added = new List<Subtree>(); added.Add(ProtoTestFx.TD.TestFrameWork.CreateSubTreeFromCode(guid, codes[0])); var syncData = new GraphSyncData(null, added, null); // Get astlist from ChangeSetComputer ChangeSetComputer changeSetState = new ProtoScript.Runners.ChangeSetComputer(core, runtimeCore); List<AssociativeNode> astList = changeSetState.GetDeltaASTList(syncData); // Modify contents to c = 1 List<Subtree> modified = new List<Subtree>(); modified.Add(ProtoTestFx.TD.TestFrameWork.CreateSubTreeFromCode(guid, codes[1])); syncData = new GraphSyncData(null, null, modified); // Get astlist from ChangeSetComputer astList = changeSetState.GetDeltaASTList(syncData); // Get expected ASTList // The list must be in the order that it is expected List<string> expectedCode = new List<string>() { "b = null; a = null; c = 1;" }; List<AssociativeNode> expectedAstList = ProtoCore.Utils.CoreUtils.BuildASTList(core, expectedCode); // Compare ASTs to be equal for (int n = 0; n < astList.Count; ++n) { AssociativeNode node1 = astList[n]; AssociativeNode node2 = expectedAstList[n]; bool isEqual = node1.Equals(node2); Assert.IsTrue(isEqual); } }
public void TestPreviewModify2Nodes02() { List<string> codes = new List<string>() { @" a = 1; ", @" b = 2; ", @" x = a; ", @" y = b; ", @" z = b; ", @" a = 10; ", @" b = 20; ", }; Guid guid1 = System.Guid.NewGuid(); Guid guid2 = System.Guid.NewGuid(); Guid guid3 = System.Guid.NewGuid(); Guid guid4 = System.Guid.NewGuid(); Guid guid5 = System.Guid.NewGuid(); // Create and run the graph List<Subtree> added = new List<Subtree>(); added.Add(ProtoTestFx.TD.TestFrameWork.CreateSubTreeFromCode(guid1, codes[0])); added.Add(ProtoTestFx.TD.TestFrameWork.CreateSubTreeFromCode(guid2, codes[1])); added.Add(ProtoTestFx.TD.TestFrameWork.CreateSubTreeFromCode(guid3, codes[2])); added.Add(ProtoTestFx.TD.TestFrameWork.CreateSubTreeFromCode(guid4, codes[3])); added.Add(ProtoTestFx.TD.TestFrameWork.CreateSubTreeFromCode(guid5, codes[4])); var syncData = new GraphSyncData(null, added, null); liveRunner.UpdateGraph(syncData); // Modify [a = 1;] to [a = 10;] // Modify [b = 2;] to [b = 20;] List<Subtree> modified = new List<Subtree>(); modified.Add(ProtoTestFx.TD.TestFrameWork.CreateSubTreeFromCode(guid1, codes[5])); modified.Add(ProtoTestFx.TD.TestFrameWork.CreateSubTreeFromCode(guid2, codes[6])); syncData = new GraphSyncData(null, null, modified); // Get astlist from ChangeSetComputer ChangeSetComputer changeSetState = new ProtoScript.Runners.ChangeSetComputer(liveRunner.Core, liveRunner.RuntimeCore); List<AssociativeNode> astList = changeSetState.GetDeltaASTList(syncData); // Get the the preview guids (affected graphs) List<Guid> reachableGuidList = changeSetState.EstimateNodesAffectedByASTList(astList); // Check if the the affected guids are in the list List<Guid> expectedGuid = new List<Guid> { guid1, guid2, guid3, guid4, guid5 }; AssertPreview(reachableGuidList, expectedGuid); }