コード例 #1
0
def test_item_distance_computer(context):
    df_contracts = context.get_contracts_data()
    df_user_profiles = context.get_user_profiles_data()
    df_query = df_user_profiles.rename(columns={'user_id': 'query_id', 'interest_items': 'items'})

    idc = ItemDistanceComputer(df_contracts)
    result = idc.compute_nearest(df_query)

    assert isinstance(result, dict)
    assert len(result) == 4
    assert 13 in result

    query_result = result[13]
    assert isinstance(query_result, dict)
    assert len(query_result) == 1
    assert 'automobily' in query_result

    items_result = query_result['automobily']
    assert isinstance(items_result, list)
    assert len(items_result) == 1

    item_result = items_result[0]
    assert isinstance(item_result, dict)
    assert len(item_result) == 3
    assert 'contract_id' in item_result
    assert 2 == item_result['contract_id']
    assert 'item' in item_result
    assert 'dopravník' == item_result['item']
    assert 'distance' in item_result
    assert numpy.isclose(0.5445505853395554, item_result['distance'])
コード例 #2
0
def test_item_distance_computer_efficiency(context):
    numpy.random.seed(42)
    ncontracts = 1000
    nqueries = 100
    df_contracts = create_random_dataframe(ncontracts).rename(columns={'id': 'contract_id'})
    df_query = create_random_dataframe(nqueries).rename(columns={'id': 'query_id'})

    idc = ItemDistanceComputer(df_contracts)
    result = idc.compute_nearest(df_query, num_results=ncontracts)
    assert numpy.isclose(0.19712971175935512, result[0][''][0]['distance'])