public void Center_OfASquareFace_ShouldBeCorrect() { // Fixture setup var fakeFace = new Face(new[] { VertexUtilities.NewVertex(1, 1, 1), VertexUtilities.NewVertex(1, -1, 1), VertexUtilities.NewVertex(-1, -1, 1), VertexUtilities.NewVertex(-1, 1, 1) }); var expected = new Vector(new[] { 0, 0, Math.Sqrt(3) }); // Exercise system var actual = fakeFace.SphericalCenter(); // Verify outcome TestUtilities.WriteExpectedAndActual(expected, actual); Assert.Equal(expected, actual); // Teardown }
public void Faces_GivenAClockwiseSetOfVertices_SortsVerticesInEachFaceInAnticlockwiseOrder() { // Fixture setup var clockwiseVertices = new List <Vertex> { VertexUtilities.NewVertex(0, 0), VertexUtilities.NewVertex(Math.PI / 2, Math.PI / 2), VertexUtilities.NewVertex(Math.PI / 2, 0) }; // Exercise system var face = new Face(clockwiseVertices); var vertices = face.Vertices; var center = face.SphericalCenter(); // Verify outcome var vectors = vertices.Select(vertex => vertex.Position).ToList(); var viewDirection = -center; Assert.True(TestUtilities.AreInAntiClockwiseOrder(vectors, center, viewDirection)); // Teardown }