public void EdgeLengths_OnACube_ShouldCreateSixListsOfFourElements (IPolyhedron polyhedron) { // Fixture setup var expected = Enumerable.Repeat(4, 6).ToList(); // Exercise system var edgeLengths = FaceIndexedTableFactory.EdgeLengths(polyhedron); var actual = edgeLengths.Select(list => list.Count()).ToList(); // Verify outcome TestUtilities.WriteExpectedAndActual(expected, actual); Assert.True(TestUtilities.UnorderedEquals(expected, actual)); // Teardown }
public void EdgeLengths_OnACube_ShouldCalculateTheCorrectLengths (IPolyhedron polyhedron) { // Fixture setup var correctLength = Math.Sqrt(3) * Trig.InverseCosine(1.0 / 3.0); var expected = Enumerable.Repeat(correctLength, 24).ToList(); // Exercise system var edgeLengths = FaceIndexedTableFactory.EdgeLengths(polyhedron); var actual = edgeLengths.SelectMany(list => list).ToList(); // Verify outcome TestUtilities.WriteExpectedAndActual(expected, actual); Assert.True(TestUtilities.UnorderedEquals(expected, actual, TestUtilities.RelativeAccuracy)); // Teardown }