コード例 #1
0
        public void RectangularCuboid_ContainsPoint_IsCorrect(
            double x, double y, double z,
            double sizeX = 8, double sizeY = 4, double sizeZ = 6)
        {
            var cuboid = new RectangularCuboid(new Vector3(x, y, z), sizeX, sizeY, sizeZ);

            ContainsPoint_ComplexTest(cuboid, true, sizeX / 2, sizeY / 2, sizeZ / 2);
            ContainsPoint_ComplexTest(cuboid, false, sizeX / 2 + 1, sizeY / 2 + 1, sizeZ / 2 + 1);
        }
コード例 #2
0
        public void RectangularCuboid_BoundingBox_IsCorrect(
            double x, double y, double z,
            double sizeX = 4, double sizeY = 7, double sizeZ = 5)
        {
            var cuboid = new RectangularCuboid(new Vector3(x, y, z), sizeX, sizeY, sizeZ);
            var box    = cuboid.GetBoundingBox();

            AssertCuboidsEqual(cuboid, box);
        }
コード例 #3
0
        public void Ball_BoundingBox_IsCorrect(double x, double y, double z, double radius)
        {
            var ball        = new Ball(new Vector3(x, y, z), radius);
            var box         = ball.GetBoundingBox();
            var length      = radius * 2;
            var expectedBox = new RectangularCuboid(new Vector3(x, y, z), length, length, length);

            AssertCuboidsEqual(expectedBox, box);
        }
コード例 #4
0
        private void AssertCuboidsEqual(RectangularCuboid expected, RectangularCuboid actual)
        {
            var message = " is not equal!";

            Assert.IsTrue(expected.Position.Equals(actual.Position, Constants.Inaccuracy), $"{expected.Position} != {actual.Position}");
            //Assert.IsTrue$"{expected.Position} != {actual.Position}");
            Assert.AreEqual(expected.SizeX, actual.SizeX, Constants.Inaccuracy, "Length" + message);
            Assert.AreEqual(expected.SizeY, actual.SizeY, Constants.Inaccuracy, "Width" + message);
            Assert.AreEqual(expected.SizeZ, actual.SizeZ, Constants.Inaccuracy, "Height" + message);
        }
コード例 #5
0
        public void CompoundBody_BoundingBox_IsCorrect(double x, double y, double z, double radius)
        {
            const int    figuresCount = 6;
            const double indent       = 2.2;
            var          sizeZ        = radius * 20 + indent * (figuresCount - 1);
            var          expectedBox  = new RectangularCuboid(new Vector3(x, y, sizeZ / 2 + z), radius * 2, radius * 2, sizeZ);

            foreach (var compoundBody in GetCompoundBodies(new Vector3(x, y, z), radius, indent))
            {
                AssertCuboidsEqual(expectedBox, compoundBody.GetBoundingBox());
            }
        }
コード例 #6
0
        public void Cylinder_BoundingBox_IsCorrect(double x, double y, double z, double radius = 4, double sizeZ = 5)
        {
            var cylinder = new Cylinder(new Vector3(x, y, z), sizeZ, radius);
            var box      = cylinder.GetBoundingBox();
            var cuboid   = new RectangularCuboid
                           (
                cylinder.Position,
                cylinder.Radius * 2,
                cylinder.Radius * 2,
                cylinder.SizeZ
                           );

            AssertCuboidsEqual(cuboid, box);
        }
コード例 #7
0
 public void Visit(RectangularCuboid cuboid)
 {
     SurfaceArea = 2.0 * (cuboid.SizeZ * cuboid.SizeY + cuboid.SizeX * cuboid.SizeY + cuboid.SizeX * cuboid.SizeZ);
 }