public void TestShortName1() { string libraryPath = "FFITarget.dll"; if (!CurrentDynamoModel.LibraryServices.IsLibraryLoaded(libraryPath)) { CurrentDynamoModel.LibraryServices.ImportLibrary(libraryPath); } OpenModel(@"core\node2code\shortName1.dyn"); var nodes = CurrentDynamoModel.CurrentWorkspace.Nodes; var engine = CurrentDynamoModel.EngineController; var result = engine.ConvertNodesToCode(nodes, nodes); result = NodeToCodeUtils.ConstantPropagationForTemp(result, Enumerable.Empty <string>()); NodeToCodeUtils.ReplaceWithShortestQualifiedName(engine.LibraryServices.LibraryManagementCore.ClassTable, result.AstNodes); Assert.IsTrue(result != null && result.AstNodes != null); var expr = result.AstNodes.Last() as BinaryExpressionNode; Assert.IsNotNull(expr); // Since there is a conflict with FFITarget.DesignScript.Point and FFITarget.Dynamo.Point, // node to code generates the shortest unique name, which in this case will be // Autodesk.Point for Autodesk.DesignScript.Geometry.Point Assert.AreEqual("Autodesk.Point.ByCoordinates(t1, 0)", expr.RightNode.ToString()); }
public void TestShortestQualifiedNameReplacerWithDefaultArgument2() { string libraryPath = "FFITarget.dll"; if (!CurrentDynamoModel.LibraryServices.IsLibraryLoaded(libraryPath)) { CurrentDynamoModel.LibraryServices.ImportLibrary(libraryPath); } OpenModel(@"core\node2code\ShortenNodeNameWithDefaultArg.dyn"); var nodes = CurrentDynamoModel.CurrentWorkspace.Nodes; var engine = CurrentDynamoModel.EngineController; var result = engine.ConvertNodesToCode(nodes, nodes); result = NodeToCodeUtils.ConstantPropagationForTemp(result, Enumerable.Empty <string>()); NodeToCodeUtils.ReplaceWithShortestQualifiedName(engine.LibraryServices.LibraryManagementCore.ClassTable, result.AstNodes); Assert.IsNotNull(result); Assert.IsNotNull(result.AstNodes); var expr1 = result.AstNodes.First() as BinaryExpressionNode; Assert.IsNotNull(expr1); // Since there is a conflict with FFITarget.DesignScript.Point and FFITarget.Dynamo.Point, // node to code generates the shortest unique name, which in this case will be // Autodesk.Point for Autodesk.DesignScript.Geometry.Point Assert.AreEqual("ElementResolverTarget.StaticMethod(ElementResolverTarget.Create().StaticProperty)", expr1.RightNode.ToString()); }
public void TestBasicNode2CodeWorkFlow1() { // 1 -> a -> x OpenModel(@"core\node2code\workflow1.dyn"); var nodes = CurrentDynamoModel.CurrentWorkspace.Nodes; var engine = CurrentDynamoModel.EngineController; var result = engine.ConvertNodesToCode(nodes, nodes); result = NodeToCodeUtils.ConstantPropagationForTemp(result, Enumerable.Empty <string>()); Assert.IsNotNull(result); Assert.IsNotNull(result.AstNodes); var expr1 = result.AstNodes.First() as BinaryExpressionNode; var expr2 = result.AstNodes.Last() as BinaryExpressionNode; Assert.IsNotNull(expr1); Assert.IsNotNull(expr2); Assert.IsTrue(expr1.ToString().StartsWith("a = 1;")); Assert.IsTrue(expr2.ToString().StartsWith("x = a;")); var undo = new DynamoModel.UndoRedoCommand(DynamoModel.UndoRedoCommand.Operation.Undo); CurrentDynamoModel.ExecuteCommand(undo); Assert.AreEqual(2, CurrentDynamoModel.CurrentWorkspace.Connectors.Count()); Assert.AreEqual(3, CurrentDynamoModel.CurrentWorkspace.Nodes.Count()); }
public void TestTemporaryVariableRenaming3() { // 1 x // 2 y OpenModel(@"core\node2code\tempVariable3.dyn"); var nodes = ViewModel.CurrentSpaceViewModel.Model.Nodes; var engine = ViewModel.Model.EngineController; var result = engine.ConvertNodesToCode(nodes, nodes); result = NodeToCodeUtils.ConstantPropagationForTemp(result, Enumerable.Empty <string>()); Assert.True(result != null && result.AstNodes != null && result.AstNodes.Count() == 4); Assert.True(result.AstNodes.All(n => n is BinaryExpressionNode)); }
public void TestTemporaryVariableRenaming3() { // 1 x // 2 y OpenModel(@"core\node2code\tempVariable3.dyn"); var nodes = CurrentDynamoModel.CurrentWorkspace.Nodes; var engine = CurrentDynamoModel.EngineController; var result = engine.ConvertNodesToCode(nodes, nodes); result = NodeToCodeUtils.ConstantPropagationForTemp(result, Enumerable.Empty <string>()); Assert.IsNotNull(result); Assert.IsNotNull(result.AstNodes); Assert.AreEqual(4, result.AstNodes.Count()); Assert.True(result.AstNodes.All(n => n is BinaryExpressionNode)); }
public void TestShortName1() { OpenModel(@"core\node2code\shortName1.dyn"); var nodes = CurrentDynamoModel.CurrentWorkspace.Nodes; var engine = CurrentDynamoModel.EngineController; var result = engine.ConvertNodesToCode(nodes, nodes); result = NodeToCodeUtils.ConstantPropagationForTemp(result, Enumerable.Empty <string>()); NodeToCodeUtils.ReplaceWithUnqualifiedName(engine.LibraryServices.LibraryManagementCore, result.AstNodes); Assert.IsTrue(result != null && result.AstNodes != null); var expr = result.AstNodes.Last() as BinaryExpressionNode; Assert.IsNotNull(expr); Assert.AreEqual("Point.ByCoordinates(t1, 0)", expr.RightNode.ToString()); }
public void TestUnqualifiedNameReplacer6() { OpenModel(@"core\node2code\unqualifiedName5.dyn"); var nodes = ViewModel.CurrentSpaceViewModel.Model.Nodes; var engine = ViewModel.Model.EngineController; var result = engine.ConvertNodesToCode(nodes, nodes); result = NodeToCodeUtils.ConstantPropagationForTemp(result, Enumerable.Empty <string>()); NodeToCodeUtils.ReplaceWithUnqualifiedName(engine.LibraryServices.LibraryManagementCore, result.AstNodes); Assert.True(result != null && result.AstNodes != null); var expr = result.AstNodes.Last() as BinaryExpressionNode; Assert.IsNotNull(expr); Assert.IsTrue(expr.RightNode.ToString().Equals("t1.DistanceTo(t2)")); }
public void TestShortestQualifiedNameReplacer6() { OpenModel(@"core\node2code\unqualifiedName5.dyn"); var nodes = CurrentDynamoModel.CurrentWorkspace.Nodes; var engine = CurrentDynamoModel.EngineController; var result = engine.ConvertNodesToCode(nodes, nodes); result = NodeToCodeUtils.ConstantPropagationForTemp(result, Enumerable.Empty <string>()); NodeToCodeUtils.ReplaceWithShortestQualifiedName(engine.LibraryServices.LibraryManagementCore.ClassTable, result.AstNodes); Assert.IsNotNull(result); Assert.IsNotNull(result.AstNodes); var expr = result.AstNodes.Last() as BinaryExpressionNode; Assert.IsNotNull(expr); Assert.AreEqual("t1.DistanceTo(t2)", expr.RightNode.ToString()); }
public void TestUnqualifiedNameReplacer4() { // 1 -> Autodesk.DesignScript.Geometry.Point.ByCoordinates(x, x); OpenModel(@"core\node2code\unqualifiedName3.dyn"); var nodes = CurrentDynamoModel.CurrentWorkspace.Nodes; var engine = CurrentDynamoModel.EngineController; var result = engine.ConvertNodesToCode(nodes, nodes); result = NodeToCodeUtils.ConstantPropagationForTemp(result, Enumerable.Empty <string>()); NodeToCodeUtils.ReplaceWithUnqualifiedName(engine.LibraryServices.LibraryManagementCore, result.AstNodes); Assert.IsNotNull(result); Assert.IsNotNull(result.AstNodes); var expr = result.AstNodes.Last() as BinaryExpressionNode; Assert.IsNotNull(expr); Assert.AreEqual("Point.ByCoordinates(x, x)", expr.RightNode.ToString()); }
public void TestTemporaryVariableRenaming4() { OpenModel(@"core\node2code\tempVariable4.dyn"); var nodes = CurrentDynamoModel.CurrentWorkspace.Nodes; var engine = CurrentDynamoModel.EngineController; var result = engine.ConvertNodesToCode(nodes, nodes); result = NodeToCodeUtils.ConstantPropagationForTemp(result, Enumerable.Empty <string>()); Assert.IsNotNull(result); Assert.IsNotNull(result.AstNodes); NodeToCodeUtils.ReplaceWithShortestQualifiedName(engine.LibraryServices.LibraryManagementCore.ClassTable, result.AstNodes); Assert.AreEqual(2, result.AstNodes.Count()); Assert.True(result.AstNodes.All(n => n is BinaryExpressionNode)); var rhs = result.AstNodes.Cast <BinaryExpressionNode>().Select(n => n.RightNode.ToString()); Assert.AreEqual("Point.ByCoordinates(1, 2)", rhs.First()); Assert.AreEqual("Point.ByCoordinates(1, 3)", rhs.Last()); }
public void TestBasicNode2CodeWorkFlow1() { // 1 -> a -> x OpenModel(@"core\node2code\workflow1.dyn"); var nodes = ViewModel.CurrentSpaceViewModel.Model.Nodes; var engine = ViewModel.Model.EngineController; var result = engine.ConvertNodesToCode(nodes, nodes); result = NodeToCodeUtils.ConstantPropagationForTemp(result, Enumerable.Empty <string>()); Assert.IsTrue(result != null && result.AstNodes != null); var expr1 = result.AstNodes.First() as BinaryExpressionNode; var expr2 = result.AstNodes.Last() as BinaryExpressionNode; Assert.IsNotNull(expr1); Assert.IsNotNull(expr2); Assert.IsTrue(expr1.ToString().StartsWith("a = 1;")); Assert.IsTrue(expr2.ToString().StartsWith("x = a;")); }
public void TestUnqualifiedNameReplacer5() { // 1 -> Autodesk.DesignScript.Geometry.Point.ByCoordinates(x, x); OpenModel(@"core\node2code\unqualifiedName4.dyn"); var nodes = ViewModel.CurrentSpaceViewModel.Model.Nodes; var engine = ViewModel.Model.EngineController; var result = engine.ConvertNodesToCode(nodes, nodes); result = NodeToCodeUtils.ConstantPropagationForTemp(result, Enumerable.Empty <string>()); NodeToCodeUtils.ReplaceWithUnqualifiedName(engine.LibraryServices.LibraryManagementCore, result.AstNodes); Assert.True(result != null && result.AstNodes != null); var expr1 = result.AstNodes.First() as BinaryExpressionNode; var expr2 = result.AstNodes.Last() as BinaryExpressionNode; Assert.IsNotNull(expr1); Assert.IsNotNull(expr2); Assert.IsTrue(expr1.RightNode.ToString().Equals("Point.ByCoordinates(0, 0)")); Assert.IsTrue(expr2.RightNode.ToString().Equals("Point.ByCoordinates(0, 0)")); }