public void WhenTheTwoCubesDoesNotOverlap_ThenReturnNull(double center1X, double center1Y, double center1Z, double size1X, double size1Y, double size1Z, double center2X, double center2Y, double center2Z, double size2X, double size2Y, double size2Z) { // Arrange Cube cubeA = new Cube(new Point3D(center1X, center1Y, center1Z), size1X, size1Y, size1Z); Cube cubeB = new Cube(new Point3D(center2X, center2Y, center2Z), size2X, size2Y, size2Z); var sut = new CubesIntersector(); // Act var result = sut.GetIntersection(cubeA, cubeB); // Assert result.Should().BeNull(); }
public void WhenTheTwoCubesAreTouchingOnAnEdge_ThenReturnNull( double center1X, double center1Y, double center1Z, double size1X, double size1Y, double size1Z, double center2X, double center2Y, double center2Z, double size2X, double size2Y, double size2Z) { // Arrange Cube cubeA = new Cube(new Point3D(center1X, center1Y, center1Z), size1X, size1Y, size1Z); Cube cubeB = new Cube(new Point3D(center2X, center2Y, center2Z), size2X, size2Y, size2Z); var sut = new CubesIntersector(); // Act var result = sut.GetIntersection(cubeA, cubeB); // Assert ((Cube)result).Should().BeNull(); }
public void WhenTheTwoCubesOverlapWithDifferentCentre_ThenIntersectionIsProperlyCalculated( double center1X, double center1Y, double center1Z, double size1X, double size1Y, double size1Z, double center2X, double center2Y, double center2Z, double size2X, double size2Y, double size2Z, double centerRX, double centerRY, double centerRZ, double sizeRX, double sizeRY, double sizeRZ) { // Arrange Cube cubeA = new Cube(new Point3D(center1X, center1Y, center1Z), size1X, size1Y, size1Z); Cube cubeB = new Cube(new Point3D(center2X, center2Y, center2Z), size2X, size2Y, size2Z); var sut = new CubesIntersector(); // Act var result = sut.GetIntersection(cubeA, cubeB); // Assert ((Cube)result).Center.X.Should().BeApproximately(centerRX, 0.01); ((Cube)result).Center.Y.Should().BeApproximately(centerRY, 0.01); ((Cube)result).Center.Z.Should().BeApproximately(centerRZ, 0.01); ((Cube)result).SizeX.Should().BeApproximately(sizeRX, 0.01); ((Cube)result).SizeY.Should().BeApproximately(sizeRY, 0.01); ((Cube)result).SizeZ.Should().BeApproximately(sizeRZ, 0.01); }