def test_base(self): u = 0 models_to_put = [] for txn in dataset.data2: u += 1 for txn_item in txn: models_to_put.append(PreferenceModel("user%s" % u, txn_item, True)) preference_service.record_preference(models_to_put) min_support = .2 min_confidence = .7 make_default = True # Generate Ruleset ruleset_model = rule_service.create_ruleset(min_support, min_confidence) result = rule_service.generate_association_rules(ruleset_model.id, min_support, min_confidence, make_default) self.assertTrue(result) # Check generated results result, cursor, more = rule_service.query_rules(ruleset_id=ruleset_model.id) self.assertEqual(len(result), 31) # Check aspects of the result... note: this is ordered by confidence so could be "random" # self.assertEqual(result[0].ant, [u'Butter:1', u'Peanut Butter:1']) # self.assertEqual(result[0].con, [u'Bread:1']) self.assertEqual(result[0].confidence, 1.0) self.assertEqual(result[0].ruleset_id, ruleset_model.id)
def setUp(self): super(AssociationRulesCollectionHandlerTests, self).setUp() u = 0 models_to_put = [] for txn in dataset.data2: u += 1 for txn_item in txn: models_to_put.append( PreferenceModel("user%s" % u, txn_item, True)) preference_service.record_preference(models_to_put) # Generate 2 association rule sets on the same data with different confidence url = '/api/rest/v1.0/rulesets?min_confidence=.1&min_support=.1&verbose=true' request = self.get_authenticated_request(url) request.method = 'POST' request.content_type = 'application/json' response = request.get_response(main.app) self.assertEqual(response.status_int, 200) result = json.loads(response.body) self.ruleset_id1 = result['results']['resource_id'] url = '/api/rest/v1.0/rulesets?min_confidence=.70&min_support=.45&verbose=true' request = self.get_authenticated_request(url) request.method = 'POST' request.content_type = 'application/json' response = request.get_response(main.app) self.assertEqual(response.status_int, 200) result = json.loads(response.body) self.ruleset_id2 = result['results']['resource_id']
def put(self): """ Temp debug bit to generate Preference data""" raise Exception('This is disbled') u = 0 models_to_put = [] for txn in dataset.data2: u += 1 for txn_item in txn: models_to_put.append( PreferenceModel("user%s" % u, txn_item, True)) preference_service.record_preference(models_to_put) self.serve_success('now run a POST')
def test_single(self): t1 = None # TODO: Miliseconds p0 = PreferenceModel('u1', 'i1', True, t1) result = preference_service.record_preference(p0) self.assertTrue(isinstance(result, PreferenceModel)) self.assertEqual(result.user_id, 'u1') self.assertEqual(result.item_id, 'i1') self.assertEqual(result.pref, True) self.assertEqual(result.timestamp, t1)
def test_get_success(self): p = PreferenceModel('u1', 'i1', True, None) p = preference_service.record_preference(p) request = self.get_authenticated_request( '/api/rest/v1.0/preferences/%s?verbose=true' % p.id) # Get a response for that request. response = request.get_response(main.app) # Let's check if the response is correct. self.assertEqual(response.status_int, 200) self.assertTrue(p.id in response.body)
def test_multiple(self): t1 = None # TODO: Miliseconds t2 = None # TODO: Miliseconds p0 = PreferenceModel('u1', 'i1', True, t1) p1 = PreferenceModel('u2', 'i2', False, t2) result = preference_service.record_preference([p0, p1]) self.assertTrue(isinstance(result, list)) self.assertTrue(isinstance(result[0], PreferenceModel)) self.assertEqual(result[0].user_id, 'u1') self.assertEqual(result[0].item_id, 'i1') self.assertEqual(result[0].pref, True) self.assertEqual(result[0].timestamp, t1) self.assertTrue(isinstance(result[1], PreferenceModel)) self.assertEqual(result[1].user_id, 'u2') self.assertEqual(result[1].item_id, 'i2') self.assertEqual(result[1].pref, False) self.assertEqual(result[1].timestamp, t1)