def test_more_keys(self): old = {1: ['APPLE', 'ARTICHOKE'], 2: ['BOAT', 'BALLERINA']} expected = { 'apple': 1, 'artichoke': 1, 'boat': 2, 'ballerina': 2 } self.assertEqual(expected, etl.transform(old))
def test_multiple_scores_with_differing_numbers_of_letters(self): legacy_data = { 1: ["A", "E", "I", "O", "U", "L", "N", "R", "S", "T"], 2: ["D", "G"], 3: ["B", "C", "M", "P"], 4: ["F", "H", "V", "W", "Y"], 5: ["K"], 8: ["J", "X"], 10: ["Q", "Z"] } data = { "a": 1, "b": 3, "c": 3, "d": 2, "e": 1, "f": 4, "g": 2, "h": 4, "i": 1, "j": 8, "k": 5, "l": 1, "m": 3, "n": 1, "o": 1, "p": 3, "q": 10, "r": 1, "s": 1, "t": 1, "u": 1, "v": 4, "w": 4, "x": 8, "y": 4, "z": 10 } self.assertEqual(transform(legacy_data), data)
def test_full_dataset(self): old = { 1: "AEIOULNRST", 2: "DG", 3: "BCMP", 4: "FHVWY", 5: "K", 8: "JX", 10: "QZ", } expected = { "a": 1, "b": 3, "c": 3, "d": 2, "e": 1, "f": 4, "g": 2, "h": 4, "i": 1, "j": 8, "k": 5, "l": 1, "m": 3, "n": 1, "o": 1, "p": 3, "q": 10, "r": 1, "s": 1, "t": 1, "u": 1, "v": 4, "w": 4, "x": 8, "y": 4, "z": 10 } self.assertEqual(expected, etl.transform(old))
def test_single_letter(self): legacy_data = {1: ["A"]} data = {"a": 1} self.assertEqual(transform(legacy_data), data)
def test_multiple_scores_with_multiple_letters(self): legacy_data = {1: ["A", "E"], 2: ["D", "G"]} data = {"a": 1, "d": 2, "e": 1, "g": 2} self.assertEqual(transform(legacy_data), data)
def test_single_score_with_multiple_letters(self): legacy_data = {1: ["A", "E", "I", "O", "U"]} data = {"a": 1, "e": 1, "i": 1, "o": 1, "u": 1} self.assertEqual(transform(legacy_data), data)
def test_transform_pivot_legacy_score(): legacy_score = {1: ['A', 'B'], 2: ['C']} expected_score = {'a': 1, 'b': 1, 'c': 2} assert_that(transform(legacy_score), equal_to(expected_score))
import etl import metricas import constants import pandas as pd # df, clients = etl.extract() payments_df, clientes_df = etl.extract() # df, clients = etl.extract() payments_df, clientes_df, metricsPerClient = etl.transform(payments_df, clientes_df) metricas, metricsPerClient = metricas.metricsCalculator(clientes_df, metricsPerClient) payments_df.to_csv('D:\ETL-TechnicalEvaluation\ETL-TechnicalEvaluation\docs\pagamentos.csv',index=True) clientes_df.to_csv('D:\ETL-TechnicalEvaluation\ETL-TechnicalEvaluation\docs\clients.csv', index=True) metricsPerClient.to_csv('D:\ETL-TechnicalEvaluation\ETL-TechnicalEvaluation\docs\metricasCliente.csv',index=True) metricas.to_csv('D:\ETL-TechnicalEvaluation\ETL-TechnicalEvaluation\docs\metricas.csv',index=True)
def etl(cfg): return transform(pseudo_data_generation(), cfg)
def test_a_single_letter(self): self.assertEqual(transform({1: ['A']}), {'a': 1})
def test_transform_one_value(self): old = {1: ['WORLD']} expected = {'world': 1} self.assertEqual(expected, etl.transform(old))
def test_more_keys(self): old = {1: ['APPLE', 'ARTICHOKE'], 2: ['BOAT', 'BALLERINA']} expected = {'apple': 1, 'artichoke': 1, 'boat': 2, 'ballerina': 2} self.assertEqual(expected, etl.transform(old))
def test_transform_more_values(self): old = {1: ['WORLD', 'GSCHOOLERS']} expected = {'world': 1, 'gschoolers': 1} self.assertEqual(expected, etl.transform(old))
def test_transform(self): opec_orb_transform_data = transform(extract_data) assert (transform_data == opec_orb_transform_data)
from etl import transform SCORE_CHAR = { 1: ['A', 'E', 'I', 'O', 'U', 'L', 'N', 'R', 'S', 'T'], 2: ['D', 'G'], 3: ['B', 'C', 'M', 'P'], 4: ['F', 'H', 'V', 'W', 'Y'], 5: ['K'], 8: ['J', 'X'], 10: ['Q', 'Z'] } CHAR_SCORE = transform(SCORE_CHAR) def score(input): def to_score(char): return CHAR_SCORE[char.lower()] if char.lower() in CHAR_SCORE else 0 return sum(map(to_score, input))