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
        }