def test_create_summary():
    order_params = {
        "size": 1000,
        "order_id_range": 70,
        "customer_id_range": 20000,
        "datetime_range": 1095,
        "start_date": "2017-01-01"
    }

    orders = helpers.orders_mock_generator(**order_params)

    order_line_params = {
        "size": 10000,
        "product_id_range": 10000,
        "order_id_range": 70,
        "price_range": [6.0, 5000.0]
    }

    order_lines = helpers.order_lines_mock_generator(**order_line_params)

    output_dataframe = create_summary(orders, order_lines)
    expected_dataframe = pd.DataFrame({
        'ProductId':
        np.array([8652, 3083, 615, 526, 4076]),
        'TotalRevenue':
        np.array([
            21212.549591, 20723.342060, 16072.759135, 8999.519248, 14749.578349
        ]),
        'AverageCheck':
        np.array(
            [7070.849864, 6907.780687, 5357.586378, 4499.759624, 7374.789174]),
    })

    pdt.assert_frame_equal(output_dataframe, expected_dataframe)
def test_unique_orderid():
    order_params = {
        "size": 1000,
        "order_id_range": 70,
        "customer_id_range": 20000,
        "datetime_range": 1095,
        "start_date": "2017-01-01"
    }

    orders = helpers.orders_mock_generator(**order_params)

    order_line_params = {
        "size": 1000,
        "product_id_range": 10000,
        "order_id_range": 70,
        "price_range": [6.0, 5000.0]
    }

    order_lines = helpers.order_lines_mock_generator(**order_line_params)

    full_df = helpers.combine_dataframes(orders, order_lines, 'DateTime', '1M',
                                         'OrderId')

    topn = helpers.most_popular(full_df, 5)

    output_uniques = helpers.unique_orderid(full_df, topn)
    expected_uniques = np.array([2, 2, 1, 1, 1])

    npt.assert_array_equal(output_uniques, expected_uniques)
def test_sum_price():
    order_params = {
        "size": 1000,
        "order_id_range": 70,
        "customer_id_range": 20000,
        "datetime_range": 1095,
        "start_date": "2017-01-01"
    }

    orders = helpers.orders_mock_generator(**order_params)

    order_line_params = {
        "size": 1000,
        "product_id_range": 10000,
        "order_id_range": 70,
        "price_range": [6.0, 5000.0]
    }

    order_lines = helpers.order_lines_mock_generator(**order_line_params)

    full_df = helpers.combine_dataframes(orders, order_lines, 'DateTime', '1M',
                                         'OrderId')

    topn = helpers.most_popular(full_df, 5)

    output_list = [helpers.sum_price(full_df, 'ProductId', x) for x in topn]
    expected_list = [
        9884.248749578293, 11618.180478452077, 5120.931623720911,
        6616.692310380738, 11896.544905964982
    ]

    npt.assert_array_equal(output_list, expected_list)
def test_most_popular():
    order_params = {
        "size": 1000,
        "order_id_range": 70,
        "customer_id_range": 20000,
        "datetime_range": 1095,
        "start_date": "2017-01-01"
    }

    orders = helpers.orders_mock_generator(**order_params)

    order_line_params = {
        "size": 1000,
        "product_id_range": 10000,
        "order_id_range": 70,
        "price_range": [6.0, 5000.0]
    }

    order_lines = helpers.order_lines_mock_generator(**order_line_params)

    full_df = helpers.combine_dataframes(orders, order_lines, 'DateTime', '1M',
                                         'OrderId')

    output_array = helpers.most_popular(full_df, 5)
    expected_array = np.array([9, 7400, 6544, 7830, 7560])

    npt.assert_array_equal(output_array, expected_array)
def order_lines():
    params = {
        "size": 5,
        "product_id_range": 10000,
        "order_id_range": 70,
        "price_range": [6.0, 5000.0]
    }

    return helpers.order_lines_mock_generator(**params)
def test_combine_dataframes():
    order_params = {
        "size": 70,
        "order_id_range": 70,
        "customer_id_range": 20000,
        "datetime_range": 1095,
        "start_date": "2017-01-01"
    }

    orders = helpers.orders_mock_generator(**order_params)

    order_line_params = {
        "size": 70,
        "product_id_range": 10000,
        "order_id_range": 70,
        "price_range": [6.0, 5000.0]
    }

    order_lines = helpers.order_lines_mock_generator(**order_line_params)

    output_dataframe = helpers.combine_dataframes(orders, order_lines,
                                                  'DateTime', '1M', 'OrderId')

    expected_dataframe = pd.DataFrame({
        'OrderId':
        np.array([52, 41, 41]),
        'CustomerId':
        np.array([15707, 15265, 15265]),
        'ProductId':
        np.array([5390, 8433, 3073]),
        'Price':
        np.array([4304.488533, 937.473441, 4623.919930])
    })

    expected_dataframe.index = pd.RangeIndex(start=0, stop=3, step=1)

    pdt.assert_frame_equal(output_dataframe, expected_dataframe)
示例#7
0
import helpers
from create_summary import create_summary

orders_mock_params = {"size": 1000,
                      "order_id_range": 70,
                      "customer_id_range": 20000,
                      "datetime_range": 1095,
                      "start_date": "2017-01-01"}

order_lines_mock_params = {"size": 10000,
                           "product_id_range": 10000,
                           "order_id_range": 70,
                           "price_range": [6.0, 5000.0]}

orders_mock = helpers.orders_mock_generator(**orders_mock_params)
order_lines_mock = helpers.order_lines_mock_generator(**order_lines_mock_params)

def main():
    summary = create_summary(orders_mock, order_lines_mock)
    print(summary)

if __name__ == "__main__":
    main()