def test_predict( similarity_type, timedecay_formula, train_test_dummy_timestamp, header ): model = SARSingleNode( similarity_type=similarity_type, timedecay_formula=timedecay_formula, **header ) trainset, testset = train_test_dummy_timestamp model.fit(trainset) preds = model.predict(testset) assert len(preds) == 2 assert isinstance(preds, pd.DataFrame) assert preds[header["col_user"]].dtype == trainset[header["col_user"]].dtype assert preds[header["col_item"]].dtype == trainset[header["col_item"]].dtype assert preds[DEFAULT_PREDICTION_COL].dtype == trainset[header["col_rating"]].dtype
def test_predict_all_items(train_test_dummy_timestamp, header): model = SARSingleNode(**header) trainset, _ = train_test_dummy_timestamp model.fit(trainset) user_items = itertools.product( trainset[header["col_user"]].unique(), trainset[header["col_item"]].unique() ) testset = pd.DataFrame(user_items, columns=[header["col_user"], header["col_item"]]) preds = model.predict(testset) assert len(preds) == len(testset) assert isinstance(preds, pd.DataFrame) assert preds[header["col_user"]].dtype == trainset[header["col_user"]].dtype assert preds[header["col_item"]].dtype == trainset[header["col_item"]].dtype assert preds[DEFAULT_PREDICTION_COL].dtype == trainset[header["col_rating"]].dtype
def test_predict(similarity_type, timedecay_formula, train_test_dummy_timestamp, header): model = SARSingleNode(remove_seen=True, similarity_type=similarity_type, timedecay_formula=timedecay_formula, **header) trainset, testset = train_test_dummy_timestamp _apply_sar_hash_index(model, trainset, testset, header) model.fit(trainset) preds = model.predict(testset) assert len(preds) == 2 assert isinstance(preds, pd.DataFrame) assert preds[header["col_user"]].dtype == object assert preds[header["col_item"]].dtype == object assert preds[PREDICTION_COL].dtype == float