示例#1
0
    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)
示例#2
0
    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)