public void Duration_is_calulcated_accordingly_for_a_given_IWordChain_collection(
            List <IWordChain> wordChains, TimeSpan expectedDuration)
        {
            var sut = WordChainSolverResult.New(wordChains);

            Assert.Equal(expectedDuration, sut.Duration);
        }
        public void IWordChain_collections_are_equivalent_as_those_that_where_passed(
            List <IWordChain> wordChains, int expectedAmountOfWordChains)
        {
            var sut = WordChainSolverResult.New(wordChains);

            Assert.Equal(expectedAmountOfWordChains, sut.AmountOfWordChains);
            Assert.Equal(wordChains, sut.WordChains);
        }
 public void New_produces_an_object_that_is_of_type_IWordChainSolverResult()
 => Xssert
 .TheActualType(actualTypeSelector: () =>
                WordChainSolverResult.New(
                    wordChains: null
                    )
                )
 .IsDerivedFromTheExpectedType <IWordChainSolverResult>()
 ;
 public void Duration_is_TimeSpan_Zero_when_null_or_empty_IWordChain_collection_is_passed(
     IEnumerable <IWordChain> wordChains
     ) => Assert.Equal(TimeSpan.Zero, WordChainSolverResult.New(wordChains).Duration);
 public void Does_not_throw_an_exception_when_null_or_empty_IWordChain_collection_is_passed(
     IEnumerable <IWordChain> wordChains
     ) => Assert.NotNull(WordChainSolverResult.New(wordChains));