using System; using System.Collections.Generic; using System.Linq; using System.Text; using UnitTestSharp; using Lodestone; using Lodestone.Shapes; using Microsoft.Xna.Framework; namespace Lodestone.UnitTests { class TrapezoidTests : TestFixture { Trapezoid trapezoid; public override void TestSetup() { trapezoid = new Trapezoid(1, 1, 2); } public void TestArea() { CheckEqual((Scalar)1.5, trapezoid.Area); } public void TestPerimeter() { CheckEqual((Scalar)(3 + 2*Math.Sqrt(1 + (.5 * .5))), trapezoid.Perimeter); } public void TestProjectToNormal() { Vector2 vector = new Vector2(1, 0); CheckEqual(new Interval(-1,1), trapezoid.ProjectToNormal(vector)); } public void TestCenterOfMass() { CheckEqual(new Vector2(0, 0), trapezoid.CenterOfMass); } public void TestClone() { Trapezoid clone = (Trapezoid)trapezoid.Clone(); CheckEqual(trapezoid.Area, clone.Area); CheckEqual(trapezoid.BoundingCircle.Radius, clone.BoundingCircle.Radius); } public void TestBoundingCircle() { CheckEqual((Scalar)Math.Sqrt(1 + (trapezoid.OffsetFromMass * trapezoid.OffsetFromMass)), trapezoid.BoundingCircle.Radius); trapezoid = new Trapezoid(1, 2, 1); CheckEqual((Scalar)Math.Sqrt(1 + (trapezoid.OffsetFromMass * trapezoid.OffsetFromMass)), trapezoid.BoundingCircle.Radius); } public void TestOffsetFromMass() { CheckEqual((Scalar)2/3,trapezoid.OffsetFromMass); } } }