public Property TesteDivisaoPorZeroRetornaListaVazia(decimal valor)
        {
            Dinheiro dinheiro = valor;
            var      divisao  = dinheiro.DividirEntre(0);

            return((!divisao.Any()).ToProperty());
        }
        public Property TesteDivisaoNaoPerdeDinheiro2(decimal valor, uint divisor)
        {
            Dinheiro    dinheiro = valor;
            var         divisao  = dinheiro.DividirEntre(divisor);
            Func <bool> property = () => dinheiro.Equals(divisao.Aggregate((Dinheiro)0, (acc, novo) => acc + novo));

            return(property.When(valor > 0 && divisor > 0));
        }
        public void TesteDivisaoNaoPerdeDinheiro()
        {
            Dinheiro dinheiro = 1.00M;
            var      divisao  = dinheiro.DividirEntre(3);

            Assert.Collection(divisao
                              , item => Assert.Equal(0.34M, item)
                              , item => Assert.Equal(0.33M, item)
                              , item => Assert.Equal(0.33M, item));
        }