-
Notifications
You must be signed in to change notification settings - Fork 58
/
test_topn_utils.py
48 lines (34 loc) · 1.21 KB
/
test_topn_utils.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
from lenskit import topn
from lenskit.algorithms import CandidateSelector
import pandas as pd
import numpy as np
import lenskit.util.test as lktu
def test_unrated():
ratings = lktu.ml_test.ratings
unrate = topn.UnratedCandidates(ratings)
cs = unrate(100)
items = ratings.item.unique()
rated = ratings[ratings.user == 100].item.unique()
assert len(cs) == len(items) - len(rated)
assert len(np.intersect1d(cs, rated)) == 0
def test_cs_rated_items_series():
"rated_items should de-index series"
items = ['a', 'b', 'wombat']
series = pd.Series(np.random.randn(3), index=items)
i2 = CandidateSelector.rated_items(series)
assert isinstance(i2, np.ndarray)
assert all(i2 == items)
def test_cs_rated_items():
"rated_items should return list as array"
items = ['a', 'b', 'wombat']
i2 = CandidateSelector.rated_items(items)
assert isinstance(i2, np.ndarray)
assert all(i2 == items)
def test_cs_rated_items_array():
"rated_items should return array as itself"
items = ['a', 'b', 'wombat']
items = np.array(items)
i2 = CandidateSelector.rated_items(items)
assert isinstance(i2, np.ndarray)
assert all(i2 == items)
assert i2 is items