public void Scripting_Nudge() { var client = this.GetScriptingClient(); client.Document.New(); client.Page.New(new VA.Drawing.Size(4, 4), false); var s1 = client.Draw.Rectangle(1, 1, 1.25, 1.5); var s2 = client.Draw.Rectangle(2, 3, 2.5, 3.5); var s3 = client.Draw.Rectangle(4.5, 2.5, 6, 3.5); client.Selection.None(); client.Selection.Select(s1); client.Selection.Select(s2); client.Selection.Select(s3); client.Arrange.Nudge(null, 1, -1); var xforms = client.Arrange.GetXForm(null); AssertVA.AreEqual(2.125, 0.25, xforms[0].GetPinPosResult(), 0.00001); AssertVA.AreEqual(3.25, 2.25, xforms[1].GetPinPosResult(), 0.00001); AssertVA.AreEqual(6.25, 2, xforms[2].GetPinPosResult(), 0.00001); client.Document.Close(true); }
public void Internal_ValidateSnappingGrid() { double delta = 0.000000001; var g1 = new VA.Drawing.SnappingGrid(1.0, 1.0); AssertVA.AssertSnap(0.0, 0.0, g1, 0.0, 0.0, delta); AssertVA.AssertSnap(0.0, 0.0, g1, 0.3, 0.3, delta); AssertVA.AssertSnap(0.0, 0.0, g1, 0.49999, 0.49999, delta); AssertVA.AssertSnap(1.0, 1.0, g1, 0.5, 0.5, delta); AssertVA.AssertSnap(1.0, 1.0, g1, 0.500001, 0.500001, delta); AssertVA.AssertSnap(1.0, 1.0, g1, 1.0, 1.0, delta); AssertVA.AssertSnap(1.0, 1.0, g1, 1.3, 1.3, delta); AssertVA.AssertSnap(1.0, 1.0, g1, 1.49999, 1.49999, delta); AssertVA.AssertSnap(2.0, 2.0, g1, 1.5, 1.5, delta); AssertVA.AssertSnap(2.0, 2.0, g1, 1.500001, 1.500001, delta); var g2 = new VA.Drawing.SnappingGrid(1.0, 0.3); AssertVA.AssertSnap(0.0, 0.0, g2, 0.0, 0.0, delta); AssertVA.AssertSnap(0.0, 0.0, g2, 0.3, 0.1, delta); AssertVA.AssertSnap(0.0, 0.0, g2, 0.49999, 0.149, delta); AssertVA.AssertSnap(1.0, 0.3, g2, 0.5, 0.3, delta); AssertVA.AssertSnap(1.0, 0.3, g2, 0.500001, 0.30001, delta); }
public void Scripting_Distribute() { var client = this.GetScriptingClient(); client.Document.New(); client.Page.New(new VA.Drawing.Size(4, 4), false); var s1 = client.Draw.Rectangle(1, 1, 1.25, 1.5); var s2 = client.Draw.Rectangle(2, 3, 2.5, 3.5); var s3 = client.Draw.Rectangle(4.5, 2.5, 6, 3.5); client.Selection.None(); client.Selection.Select(s1); client.Selection.Select(s2); client.Selection.Select(s3); client.Arrange.Distribute(null, VA.Drawing.AlignmentHorizontal.Center); var xforms = client.Arrange.GetXForm(null); AssertVA.AreEqual(1.125, 1.25, xforms[0].GetPinPosResult(), 0.00001); AssertVA.AreEqual(3.1875, 3.25, xforms[1].GetPinPosResult(), 0.00001); AssertVA.AreEqual(5.25, 3, xforms[2].GetPinPosResult(), 0.00001); client.Document.Close(true); }
private static void TestResize(IVisio.Document doc, VA.Drawing.Size bottomleft_margin, VA.Drawing.Size upperright_margin, VA.Drawing.Size shape_size, VA.Drawing.Size padding_size, double expected_pinx, double expected_piny) { var page = doc.Pages.Add(); var pagecells = new VA.Pages.PageCells(); pagecells.PageTopMargin = upperright_margin.Height; pagecells.PageBottomMargin = bottomleft_margin.Height; pagecells.PageLeftMargin = bottomleft_margin.Width; pagecells.PageRightMargin = upperright_margin.Width; var pageupdate = new VA.ShapeSheet.Update(); pageupdate.SetFormulas(pagecells); pageupdate.Execute(page.PageSheet); var shape = page.DrawRectangle(5, 5, 5 + shape_size.Width, 5 + shape_size.Height); page.ResizeToFitContents(padding_size); var xform = VA.Shapes.XFormCells.GetCells(shape); AssertVA.AreEqual(expected_pinx, expected_piny, xform.GetPinPosResult(), 0.1); page.Delete(0); }
public void CheckHomogenousUpdates_ResultTypes() { var page1 = this.GetNewPage(); var shape1 = page1.DrawRectangle(0, 0, 1, 1); // Setup the modifications to the cell values var update = new VA.ShapeSheet.Update(); update.SetResult(ShapeSheet_Update_Tests.src_linepat, "7", IVisio.VisUnitCodes.visNumber); update.SetResult(VA.ShapeSheet.SRCConstants.PinX, 2, IVisio.VisUnitCodes.visNumber); update.Execute(shape1); // Build the query var query = new VA.ShapeSheet.Query.CellQuery(); var col_linepat = query.AddCell(ShapeSheet_Update_Tests.src_linepat, "LinePattern"); var col_pinx = query.AddCell(VA.ShapeSheet.SRCConstants.PinX, "PinX"); // Retrieve the values var data = query.GetCellData <double>(shape1); // Verify AssertVA.AreEqual("7", 7, data[col_linepat]); AssertVA.AreEqual("2 in", 2, data[col_pinx]); page1.Delete(0); }
public void TestBezierFromArcs() { // 0 width slice - 0 degrees var s1 = VisioAutomation.Drawing.BezierSegment.FromArc(0.0, 0.0); Assert.AreEqual(1, s1.Count()); AssertVA.AreEqual(s1[0].Start, s1[s1.Length - 1].End, this.delta); // 0 width slice - 45 degrees var s1x = VisioAutomation.Drawing.BezierSegment.FromArc(this.piquarter, this.piquarter); Assert.AreEqual(1, s1x.Count()); AssertVA.AreEqual(s1x[0].Start, s1x[s1.Length - 1].End, this.delta); // a circle var s2 = VisioAutomation.Drawing.BezierSegment.FromArc(0.0, this.pi2); Assert.AreEqual(4, s2.Count()); AssertVA.AreEqual(s2[0].Start, s2[s2.Length - 1].End, this.delta); // angles within first quadrant var s3 = VisioAutomation.Drawing.BezierSegment.FromArc(this.piquarter - 0.1, this.piquarter + 0.2); Assert.AreEqual(1, s3.Count()); // angles from first to 2nd quadrant var s4 = VisioAutomation.Drawing.BezierSegment.FromArc(this.piquarter - 0.1, this.pihalf + this.piquarter); Assert.AreEqual(2, s4.Count()); // half circle - top var s5 = VisioAutomation.Drawing.BezierSegment.FromArc(0.0, Math.PI); Assert.AreEqual(2, s5.Count()); // half circle - bottom var s6 = VisioAutomation.Drawing.BezierSegment.FromArc(Math.PI, this.pi2); Assert.AreEqual(2, s6.Count()); // half circle - bottom var s7 = VisioAutomation.Drawing.BezierSegment.FromArc(this.pihalf, Math.PI + this.pihalf); Assert.AreEqual(2, s7.Count()); // partial all quadrants var s8 = VisioAutomation.Drawing.BezierSegment.FromArc(this.piquarter, this.pi2 - this.piquarter); Assert.AreEqual(4, s8.Count()); // full circle var s9 = VisioAutomation.Drawing.BezierSegment.FromArc(this.piquarter, this.pi2 * 10 + this.piquarter); Assert.AreEqual(4, s8.Count()); }
public void ConnectionPoints_AddRemove() { var page1 = this.GetNewPage(); var s1 = page1.DrawRectangle(0, 0, 4, 1); Assert.AreEqual(0, VACONNECT.ConnectionPointHelper.GetCount(s1)); var cp_type = VACONNECT.ConnectionPointType.Inward; var cpd1 = new VACONNECT.ConnectionPointCells(); cpd1.X = "Width*0.25"; cpd1.Y = "Height*0"; cpd1.Type = (int)cp_type; var cpd2 = new VACONNECT.ConnectionPointCells(); cpd2.X = "Width*0.75"; cpd2.Y = "Height*0"; cpd2.Type = (int)cp_type; VACONNECT.ConnectionPointHelper.Add(s1, cpd1); Assert.AreEqual(1, VACONNECT.ConnectionPointHelper.GetCount(s1)); VACONNECT.ConnectionPointHelper.Add(s1, cpd2); Assert.AreEqual(2, VACONNECT.ConnectionPointHelper.GetCount(s1)); var controlpoints = VACONNECT.ConnectionPointCells.GetCells(s1); Assert.AreEqual(2, controlpoints.Count); var cp_0 = controlpoints[0]; AssertVA.AreEqual("0 in", 0, cp_0.DirX); AssertVA.AreEqual("0 in", 0, cp_0.DirY); AssertVA.AreEqual("0", 0, cp_0.Type); AssertVA.AreEqual("Width*0.25", 1, cp_0.X); AssertVA.AreEqual("Height*0", 0, cp_0.Y); var cp_1 = controlpoints[1]; AssertVA.AreEqual("0 in", 0, cp_1.DirX); AssertVA.AreEqual("0 in", 0, cp_1.DirY); AssertVA.AreEqual("0", 0, cp_1.Type); AssertVA.AreEqual("Width*0.75", 3, cp_1.X); AssertVA.AreEqual("Height*0", 0, cp_1.Y); VACONNECT.ConnectionPointHelper.Delete(s1, 1); Assert.AreEqual(1, VACONNECT.ConnectionPointHelper.GetCount(s1)); VACONNECT.ConnectionPointHelper.Delete(s1, 0); Assert.AreEqual(0, VACONNECT.ConnectionPointHelper.GetCount(s1)); page1.Delete(0); }
public void TreeLayout_MultiNode() { // Verify that a tree with multiple nodes can be drawn // Note that the DefaultNodeSize option is being used var t = new TREEMODEL.Drawing(); t.Root = new TREEMODEL.Node("Root"); var na = new TREEMODEL.Node("A"); var nb = new TREEMODEL.Node("B"); var na1 = new TREEMODEL.Node("A1"); var na2 = new TREEMODEL.Node("A2"); var nb1 = new TREEMODEL.Node("B1"); var nb2 = new TREEMODEL.Node("B2"); t.Root.Children.Add(na); t.Root.Children.Add(nb); na.Children.Add(na1); na.Children.Add(na2); nb.Children.Add(nb1); nb1.Children.Add(nb2); t.LayoutOptions.DefaultNodeSize = new VA.Drawing.Size(1, 1); var app = this.GetVisioApplication(); var doc = this.GetNewDoc(); var page = app.ActivePage; t.Render(page); AssertVA.AreEqual(5.25, 8.0, VisioAutomationTest.GetPageSize(page), 0.05); Assert.AreEqual("Root", t.Root.VisioShape.Text); Assert.AreEqual("A", na.VisioShape.Text); Assert.AreEqual("B", nb.VisioShape.Text); Assert.AreEqual("A1", na1.VisioShape.Text); Assert.AreEqual("A2", na2.VisioShape.Text); Assert.AreEqual("B1", nb1.VisioShape.Text); Assert.AreEqual("B2", nb2.VisioShape.Text); doc.Close(true); }
public void TreeLayout_SingleNode() { // Verify that a tree with a single node can be drawn var t = new TREEMODEL.Drawing(); t.Root = new TREEMODEL.Node("Root"); var app = this.GetVisioApplication(); var doc = this.GetNewDoc(); var page = app.ActivePage; t.Render(page); AssertVA.AreEqual(3.0, 1.5, VisioAutomationTest.GetPageSize(page), 0.05); doc.Close(true); }
public void BoxLayout_Test_single_node_padding() { var layout = new BoxL.BoxLayout(); layout.Root = new BoxL.Container(BoxL.Direction.BottomToTop); var root = layout.Root; var n1 = root.AddBox(10, 5); root.PaddingBottom = 1.0; root.PaddingLeft = 1.0; root.PaddingRight = 1.0; root.PaddingTop = 1.0; layout.PerformLayout(); double delta = 0.00000001; AssertVA.AreEqual(1.0, 1.0, 11, 6, n1.Rectangle, delta); }
public void ShapeSheet_Query_SectionRowHandling() { var page1 = this.GetNewPage(); var s1 = page1.DrawRectangle(0, 0, 2, 2); var s2 = page1.DrawRectangle(2, 1, 3, 3); var s3 = page1.DrawRectangle(3, 1, 4, 2); var s4 = page1.DrawRectangle(4, -1, 5, 1); VACUSTPROP.CustomPropertyHelper.Set(s1, "S1P1", "1"); VACUSTPROP.CustomPropertyHelper.Set(s2, "S2P1", "2"); VACUSTPROP.CustomPropertyHelper.Set(s2, "S2P2", "3"); //set nothing for s3 VACUSTPROP.CustomPropertyHelper.Set(s4, "S3P1", "4"); VACUSTPROP.CustomPropertyHelper.Set(s4, "S3P2", "5"); VACUSTPROP.CustomPropertyHelper.Set(s4, "S3P3", "6"); var query = new VA.ShapeSheet.Query.CellQuery(); var prop_sec = query.AddSection(IVisio.VisSectionIndices.visSectionProp); var value_col = prop_sec.AddCell(VA.ShapeSheet.SRCConstants.Prop_Value, "Value"); var shapeids = new[] { s1.ID, s2.ID, s3.ID, s4.ID }; var data = query.GetCellData <double>( page1, shapeids); Assert.AreEqual(4, data.Count); Assert.AreEqual(1, data[0].Sections[prop_sec].Count); Assert.AreEqual(2, data[1].Sections[prop_sec].Count); Assert.AreEqual(0, data[2].Sections[prop_sec].Count); Assert.AreEqual(3, data[3].Sections[prop_sec].Count); AssertVA.AreEqual("\"1\"", 1.0, data[0].Sections[prop_sec][0][0]); AssertVA.AreEqual("\"2\"", 2.0, data[1].Sections[prop_sec][0][0]); AssertVA.AreEqual("\"3\"", 3.0, data[1].Sections[prop_sec][1][0]); AssertVA.AreEqual("\"4\"", 4.0, data[3].Sections[prop_sec][0][0]); AssertVA.AreEqual("\"5\"", 5.0, data[3].Sections[prop_sec][1][0]); AssertVA.AreEqual("\"6\"", 6.0, data[3].Sections[prop_sec][2][0]); page1.Delete(0); }
public void ShapeSheet_Update_Formulas_MultipleShapes() { var page1 = this.GetNewPage(); var shape1 = page1.DrawRectangle(-1, -1, 0, 0); var shape2 = page1.DrawRectangle(-1, -1, 0, 0); var shape3 = page1.DrawRectangle(-1, -1, 0, 0); // Set the formulas var update = new VA.ShapeSheet.Update(); update.SetFormula(shape1.ID16, ShapeSheet_Update_Tests.src_pinx, 0.5); update.SetFormula(shape1.ID16, ShapeSheet_Update_Tests.src_piny, 0.5); update.SetFormula(shape2.ID16, ShapeSheet_Update_Tests.src_pinx, 1.5); update.SetFormula(shape2.ID16, ShapeSheet_Update_Tests.src_piny, 1.5); update.SetFormula(shape3.ID16, ShapeSheet_Update_Tests.src_pinx, 2.5); update.SetFormula(shape3.ID16, ShapeSheet_Update_Tests.src_piny, 2.5); update.Execute(page1); // Verify that the formulas were set var query = new VA.ShapeSheet.Query.CellQuery(); var col_pinx = query.AddCell(ShapeSheet_Update_Tests.src_pinx, "PinX"); var col_piny = query.AddCell(ShapeSheet_Update_Tests.src_piny, "PinY"); var shapeids = new[] { shape1.ID, shape2.ID, shape3.ID }; var rf = query.GetFormulas(page1, shapeids); var rr = query.GetResults <double>(page1, shapeids); AssertVA.AreEqual("0.5 in", 0.5, rf[0][col_pinx], rr[0][col_pinx]); AssertVA.AreEqual("0.5 in", 0.5, rf[0][col_piny], rr[0][col_piny]); AssertVA.AreEqual("1.5 in", 1.5, rf[1][col_pinx], rr[1][col_pinx]); AssertVA.AreEqual("1.5 in", 1.5, rf[1][col_piny], rr[1][col_piny]); AssertVA.AreEqual("2.5 in", 2.5, rf[2][col_pinx], rr[2][col_pinx]); AssertVA.AreEqual("2.5 in", 2.5, rf[2][col_piny], rr[2][col_piny]); page1.Delete(0); }