Skip to content

Ajusta o algoritmo de recomendação

Daniel Porto requested to merge 136/erros-no-algoritmo-de-recomendacao into develop

Descrição

O presente mr corrige algumas inconsistências tidas no algoritmo de recomendações bem como ajusta a regra para quando a informação sobre a demanda de ponta medida não está disponível.

Motivação e contexto

  1. Para contas de luz que não possuem o valor de Demanda Medida de Ponta (caso das faturas da Neoenergia que não fornece estas informações para contratos do tipo Verde), este valor está ficando como zero no registro das faturas e, consequentemente, a recomendação está ficando enviesada já que está considerando o gasto zero no período de ponta.
  2. Outro erro é que em alguns cenários, o algoritmo está sugerindo recomendações que aumentam o valor a ser pago.

Issue relacionada

136 - Erros no algoritmo de recomendação

Principais implementações

Lista das principais implementações ou mudanças realizadas neste merge request.

  • Foi incluída uma etapa de cálculo de ultrapassagem na motagem do dataframe refente ao contrato atual, a falta desse passo acarretava uma comparação errada toda vez que uma recomendação era gerada.
  • Foi incluída uma comparação simples para certificar que a diferença absoluta entre o atual e o recomendado é positiva, impedindo assim o retorno de uma recomendação desvantajosa.
  • O retorno da requisição foi ajustado para incluir, mesmo quando não há recomendação vantajosa, um plot dos valores atuais contratados.
  • Agora o cálculo do contrato atual é realizado uma etapa antes para facilitar o retorno para o front.
  • No caso de um contrato atual do tipo verde e não tendo a informação da demanda de ponta medida, é copiada, para esse campo, em tempo de análise, o campo de demanda fora de ponta medida.

Como isso foi testado?

Os mesmos testes unitários para o módulo de recomendação devem continuar passando e cobrem as mudanças realizadas. Deve ser realizado teste de integração com o proposto no mr - 95 da web

Tipos de mudança

Marque com um "x" as caixas correspondentes:

  • Correção de bug (não-interrompção de mudança que corrige um problema)
  • Nova funcionalidade (mudança que adiciona funcionalidade)
  • Mudança de quebra (alteração que interrompe o comportamento anterior)
  • Melhoria de desempenho
  • Mudança de refatoração (alteração que não adiciona nova funcionalidade nem corrige bugs)
  • Outra mudança (descreva abaixo):

Checklist

Marque com um "x" as caixas correspondentes:

  • O código segue as diretrizes de estilo deste projeto
  • Foram adicionados testes para cobrir as novas funcionalidades ou mudanças
  • Todos os testes passam
  • As alterações foram revisadas por pelo menos um colega de equipe
  • A documentação foi atualizada, se necessário
  • As alterações não quebram o fluxo de trabalho de nenhum outro usuário ou sistema
Edited by Daniel Porto

Merge request reports