예제 #1
0
 def setup_class(cls, *args, **kwargs):
     """
     Put elements in db
     """
     for app in ITEMS:
         Item.objects.create(**app)
     for u in USERS:
         user = User.objects.create(external_id=u["external_id"])
         for i in u["items"]:
             Inventory.objects.create(user=user, item=Item.get_item_by_external_id(i))
     TensorCoFi.train_from_db()
     Popularity.train_from_db()
     TensorCoFi.load_to_cache()
     Popularity.load_to_cache()
예제 #2
0
 def test_training(self):
     """
     [recommendation.models.TensorCoFi] Test train from database
     """
     try:
         TensorCoFi.train_from_db()
     except Exception:
         assert False, "Training is not working for jumping ids"
     TensorCoFi.load_to_cache()
     t = TensorCoFi.get_model_from_cache()
     for user in User.objects.all():
         if len(user.owned_items) > 2:
             assert isinstance(t.get_recommendation(user), np.ndarray), "Recommendation is not a numpy array"
         else:
             try:
                 t.get_recommendation(user)
             except KeyError:
                 pass
             else:
                 assert False, "User with less than 3 items give a static recommendation"