def test_similar_items(self): calculate_similar_items(RatedItem.objects.all(), 10) top_for_food_a = self.food_a.ratings.similar_items()[0] self.assertEqual(top_for_food_a.similar_object, self.food_b) top_for_food_b = self.food_b.ratings.similar_items()[0] self.assertEqual(top_for_food_b.similar_object, self.food_a) self.assertEqual(top_for_food_a.score, top_for_food_b.score) Food.ratings.update_similar_items() other_for_food_a = self.food_a.ratings.similar_items()[0] self.assertEqual(top_for_food_a, other_for_food_a)
def test_recommended_items(self): calculate_similar_items(RatedItem.objects.all()) # failure result = recommended_items(RatedItem.objects.all(), self.user_g) r1, r2, r3 = result self.assertEqual(str(r1[0])[:5], '3.610') self.assertEqual(r1[1], self.food_a) self.assertEqual(str(r2[0])[:5], '3.531') self.assertEqual(r2[1], self.food_f) self.assertEqual(str(r3[0])[:5], '2.960') self.assertEqual(r3[1], self.food_c) result = recommended_items(RatedItem.objects.all(), self.user_c) r1, r2 = result self.assertEqual(str(r1[0])[:5], '2.287') self.assertEqual(r1[1], self.food_c) self.assertEqual(str(r2[0])[:5], '2.084') self.assertEqual(r2[1], self.food_e)
def update_similar_items(self): from ratings.utils import calculate_similar_items calculate_similar_items(self.all())
def test_similar_item_model_unicode(self): self.food_b.name = u'яблоко' self.food_b.save() calculate_similar_items(RatedItem.objects.all(), 10) top_for_food_a = self.food_a.ratings.similar_items()[0] top_for_food_a_unicode_string = unicode(top_for_food_a)