Desenvolver uma função que receberá uma lista de compras e uma lista de e-mails. Aqui, cada e-mail representa uma pessoa.
A função deve:
- Validar que não exista algum e-mail duplicado.
- Validar que nenhuma das listas esteja vazia.
- Calcular a soma dos valores, ou seja, multiplicar o preço de cada item por sua quantidade e somar todos os itens.
- Validar que a quantidade e valor de um item não sejam negativos.
- Dividir o valor de forma igual entre a quantidade de e-mails.
- Retornar um mapa/dicionário onde a chave será o e-mail e o valor será quanto ele deve pagar nessa conta.
- Ter testes unitários.
Para executar o programa, é necessário ter o Elixir instalado, para Linux e Mac você pode instalar via adsf. A instalação padrão pode ser feita de acordo com o site oficial.
Ao final de tudo, você pode conferir a versão através do comando:
elixir -v
Uma vez instalado o elixir, você pode clonar o projeto e se certificar de que baixou as dependências necessárias antes da execução dos testes.
# Clonando o repositório
git clone https://github.com/Wendller/shopping_list_challenge.git
# Mova para o repositório
cd shopping_list_challenge
# Instale as dependências
mix deps.get
Execute os testes através do comando:
mix test --cover
# | Percentage | Module |
# | ----------- | -------------------------- |
# | 100.00% | Items |
# | 100.00% | ShoppingListChallenge |
# | ----------- | -------------------------- |
# | 100.00% | Total |