93 lines
2.7 KiB
C#

using Microsoft.VisualStudio.TestTools.UnitTesting;
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
{
[TestClass]
public class CylinderTests
{
[TestMethod]
public void Cylinder_ConstructorParametersAffectScriptOutput()
{
var cylinder = new Cylinder(5.5, 12.1, true);
string script = cylinder.ToString();
Assert.IsTrue(script.Contains("r1 = 2.75"));
Assert.IsTrue(script.Contains("r2 = 2.75"));
Assert.IsTrue(script.Contains("h = 12.1"));
Assert.IsTrue(script.Contains("center = true"));
}
[TestMethod]
public void Cylinder_UncenteredPositionZValueIsHalfTheHeight()
{
var cylinder = new Cylinder(3, 40);
Assert.AreEqual(new Vector3(0, 0, 20), cylinder.Position());
}
[TestMethod]
public void Cylinder_CenteredCylinderPositionIsZero()
{
var cylinder = new Cylinder(5, 20, true);
Assert.AreEqual(new Vector3(), cylinder.Position());
}
[TestMethod]
public void Cylinder_BoundsAreInExpectedPositionNotCentered()
{
var obj = new Cylinder(5, 20);
Assert.AreEqual(new Vector3(2.5, 2.5, 20), obj.Bounds().TopRight);
Assert.AreEqual(new Vector3(-2.5, -2.5, 0), obj.Bounds().BottomLeft);
}
[TestMethod]
public void Cylinder_BoundsAreInExpectedPositionCentered()
{
var obj = new Cylinder(5, 20, true);
Assert.AreEqual(new Vector3(2.5, 2.5, 10), obj.Bounds().TopRight);
Assert.AreEqual(new Vector3(-2.5, -2.5, -10), obj.Bounds().BottomLeft);
}
[TestMethod]
public void Cylinder_ScriptOutputDoesNotContainResolutionValuesIfNotSpecified()
{
var cylinder = new Cylinder();
string script = cylinder.ToString();
Assert.IsTrue(!script.Contains("$fn"));
Assert.IsTrue(!script.Contains("$fa"));
Assert.IsTrue(!script.Contains("$fs"));
}
[TestMethod]
public void Cylinder_ScriptOutpuHasResolutionValuesIfSpecified()
{
var cylinder = new Cylinder()
{
Resolution = 40,
MinimumAngle = 5,
MinimumCircumferentialLength = 2
};
string script = cylinder.ToString();
Assert.IsTrue(script.Contains("$fn"));
Assert.IsTrue(script.Contains("$fa"));
Assert.IsTrue(script.Contains("$fs"));
}
}
}