Пример #1
0
    def test_calcular_contraction_expansion_e_resurrected_mrr(self):
        erro = "calcular_contraction_expansion_e_resurrected_mrr não calculou corretamente"    

        df = self.cria_data_frame_test()
        calculo = CalculoDadosPagamento()
        df = calculo.calcular_mrr(df)
        df = calculo.desagrupar_registros_em_pagamentos_mensais(df)

        df = formata.ordenar_df_data(df)
        df = formata.criar_chave_concatenada(df)
        df = calculo.calcular_new_mrr(df)

        df = formata.ordenar_df_data(df)
        df = calculo.calcular_cancelled_mrr(df)
        
        df = formata.ordenar_df_data(df)
        df = calculo.calcular_contraction_expansion_e_resurrected_mrr(df)
        
        valida_contraction  = df.loc[(df['chave'] == '1-2017-02-01 00:00:00-1'), 'ContractionMRR'].iloc[0]
        valida_expansion    = df.loc[(df['chave'] == '3-2017-06-05 00:00:00-1'), 'ExpansionMRR'].iloc[0]
        valida_resurrected  = df.loc[(df['chave'] == '2-2019-02-01 00:00:00-1'), 'ResurrectedMRR'].iloc[0]

        assert valida_contraction   == 299, erro
        assert valida_expansion     == 150, erro
        assert valida_resurrected   == 250, erro
Пример #2
0
    def test_ordenar_df_data_verifica_se_ordenado(self):
        df = self.cria_data_frame_test()
        df = FormatadorDadosPagamentos.ordenar_df_data(df)
        result = df["ClienteID"].iloc[0] == 1 and df["ClienteID"].iloc[
            1] == 3 and df["ClienteID"].iloc[2] == 2

        assert result, "ordenar_df_data não ordenou corretamente"
Пример #3
0
    def calcular_dados_pagamentos(self):
        calculo = CalculoDadosPagamento()

        self.df_pagamentos = calculo.calcular_mrr(self.df_pagamentos)
        self.df_pagamentos = calculo.desagrupar_registros_em_pagamentos_mensais(
            self.df_pagamentos)

        self.df_pagamentos = formata.ordenar_df_data(self.df_pagamentos)
        self.df_pagamentos = formata.criar_chave_concatenada(
            self.df_pagamentos)
        self.df_pagamentos = calculo.calcular_new_mrr(self.df_pagamentos)

        self.df_pagamentos = formata.ordenar_df_data(self.df_pagamentos)
        self.df_pagamentos = calculo.calcular_cancelled_mrr(self.df_pagamentos)

        self.df_pagamentos = formata.ordenar_df_data(self.df_pagamentos)
        self.df_pagamentos = calculo.calcular_contraction_expansion_e_resurrected_mrr(
            self.df_pagamentos)
Пример #4
0
 def preparar_dados_pagamentos(self):
     self.df_pagamentos = formata.formatar_valor_para_float(
         self.df_pagamentos)
     self.df_pagamentos = formata.formatar_data_do_df_string_para_date(
         self.df_pagamentos)
     self.df_pagamentos = formata.ordenar_df_data(self.df_pagamentos)
     self.df_pagamentos = formata.separa_plano_meses_contrato(
         self.df_pagamentos)
     self.df_pagamentos = formata.criar_chave_concatenada(
         self.df_pagamentos)
Пример #5
0
    def test_desagrupar_registros_em_pagamentos_mensais(self):
        erro = "desagrupar_registros_em_pagamentos_mensais não calculou corretamente"

        df = self.cria_data_frame_test()
        calculo = CalculoDadosPagamento()
        df = calculo.desagrupar_registros_em_pagamentos_mensais(df)
        df = formata.ordenar_df_data(df)
        
        mes_validacao1 = df.loc[(df['ClienteID'] == 3) & (df['Plano'] == 'Bronze/3'), 'DataPagamento'].iloc[0]
        mes_validacao2 = df.loc[(df['ClienteID'] == 3) & (df['Plano'] == 'Bronze/3'), 'DataPagamento'].iloc[1]
        mes_validacao3 = df.loc[(df['ClienteID'] == 3) & (df['Plano'] == 'Bronze/3'), 'DataPagamento'].iloc[2]

        assert mes_validacao1 == pd.to_datetime('05/03/2017', format="%d/%m/%Y"), erro
        assert mes_validacao2 == pd.to_datetime('05/04/2017', format="%d/%m/%Y"), erro
        assert mes_validacao3 == pd.to_datetime('05/05/2017', format="%d/%m/%Y"), erro 
Пример #6
0
    def test_calcular_cancelled_mrr(self):
        erro = "calcular_cancelled_mrr não calculou corretamente"    

        df = self.cria_data_frame_test()
        calculo = CalculoDadosPagamento()
        df = calculo.calcular_mrr(df)
        df = calculo.calcular_new_mrr(df)
        df = calculo.calcular_cancelled_mrr(df)
        df = formata.ordenar_df_data(df)
        print(df)

        mes_validacao1 = df.loc[(df['ClienteID'] == 1) & (df['MRR'] == 0), 'CancelledMRR'].iloc[0]
        mes_validacao2 = df.loc[(df['ClienteID'] == 2) & (df['MRR'] == 0), 'CancelledMRR'].iloc[0]
        mes_validacao3 = df.loc[(df['ClienteID'] == 3) & (df['MRR'] == 0), 'CancelledMRR'].iloc[0]

        assert mes_validacao1 == 100, erro
        assert mes_validacao2 == 250, erro
        assert mes_validacao3 == 250, erro