public void FlattenDepthFirstCalculations_GivenHeirarchyOfObjects_ReturnsFalttenedList()
        {
            // Arrange
            IEnumerable <Calculation> nodes = GetCalculationNodes();

            // Act
            IEnumerable <Calculation> flattened = nodes.FlattenDepthFirst();

            // Assert
            flattened
            .Should()
            .HaveCount(6);

            IEnumerable <string> nameOrder = flattened.Select(c => c.Name);

            nameOrder
            .Should()
            .ContainInOrder(new[]
            {
                "Name1",
                "Name2",
                "Name3",
                "Name6",
                "Name4",
                "Name5",
            });
        }