2016-03-18 00:08:38 -07:00

69 lines
2.1 KiB
C#

using Microsoft.VisualStudio.TestTools.UnitTesting;
using OSCADSharp.DataBinding;
using OSCADSharp.Solids;
using OSCADSharp.Spatial;
using OSCADSharp.Utility;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OSCADSharp.UnitTests.Transforms
{
[TestClass]
public class TranslateTests
{
[TestMethod]
public void Translate_BoundsMoveWhenObjectIsTranslated()
{
var cube = new Cube();
var boundsBefore = cube.Bounds();
var boundsAfter = cube.Translate(5, 2, 3).Bounds();
Assert.AreEqual(boundsAfter.TopRight, boundsBefore.TopRight + new Vector3(5, 2, 3));
Assert.AreEqual(boundsAfter.BottomLeft, boundsBefore.BottomLeft + new Vector3(5, 2, 3));
}
[TestMethod]
public void Translate_CanBindVector()
{
var cube = new Cube().Translate(10, 0, 0);
var vec = new Variable("vec", new Vector3(0, 20, 30));
cube.Bind("vector", vec);
string script = cube.ToString();
Assert.IsTrue(script.Contains("v = vec"));
}
[TestMethod]
public void Translate_CanBindVectorsByParameters()
{
var y = new Variable("yAmt", -35);
var z = new Variable("zAmt", 40);
var cube = new Cube().Translate(-5, y, z);
string script = cube.ToString();
Assert.IsTrue(script.Contains("v = [-5, yAmt, zAmt]"));
}
[TestMethod]
public void Translate_AddingTwoVariablesYieldsInlineOperation()
{
var cylinDiameter = new Variable("cylinDiam", Inches.One);
var wallThickness = new Variable("wallThickness", Inches.Eigth);
var cylin = new Cylinder(cylinDiameter, cylinDiameter);
cylin.Height = 15;
var obj = cylin.Translate(cylinDiameter + wallThickness, 0, 0);
string script = obj.ToString();
Assert.IsTrue(script.Contains("v = [cylinDiam + wallThickness, 0, 0]"));
}
}
}