Exemplo n.º 1
0
    def response(self):
        if self.node_type == "rank":
            node = RankNode(self.query)
        elif self.node_type == "stat":
            node = RankNode(self.query)

        return node.response()
Exemplo n.º 2
0
 def test_node_response(self):
     query = "query"
     node = RankNode()
     node.load_query(query)
     resp = node.response()
     stat = [int(word) for word in resp.split() if word.replace('.','').isdigit()]
     self.assertTrue(isinstance(resp, str))
Exemplo n.º 3
0
 def test_extract_names(self):
     query = "Who is a better shooter Kobe Bryant or Lebron James?"
     node = RankNode()
     node.load_query(query)
     name1, name2 = node.extract_names()
     names = set([name1, name2])
     self.assertTrue("Kobe Bryant" in names)
     self.assertTrue("Lebron James" in names)
Exemplo n.º 4
0
 def test_get_stat(self):
     node = RankNode()
     names = ["Kobe Bryant", "Lebron James", "Klay Thompson"]
     stats = ["true shooting percentage", "total rebound percentage", "defensive box plus/minus"]
     for i in range(5):
         random_name = random.choice(names)
         random_stat = random.choice(stats)
         stat = node.get_stat(random_name, random_stat)
         self.assertTrue(isinstance(stat, float))
Exemplo n.º 5
0
    def test_metric2stat(self):
        node = RankNode("Query")
        test_map = {
            "true shooting percentage": "shooting",
            "defensive plus/minus": "defending",
            "player efficiency rating": "player",
        }

        for stat in test_map:
            metric = test_map[stat]
            predicted_stat = node.metric2stat(metric)
            self.assertEqual(predicted_stat, stat)

        metric = "This is nothing"
        predicted_stat = node.metric2stat(metric)
        self.assertIsNone(predicted_stat)
Exemplo n.º 6
0
    def response(self):
        """
        Function to return the the response bases on the query.

        This function checks the query passed in by the user, and returns the
        response from the appopriate query. The query should have already been
        passed in when creating the "InferenceNetwork" object.
        ----------
        self    : none

        Returns
        -------
        response  : string
            The appropriate response to the user's input query
        """
        if self.node_type == "info":
            node = InfoNode()
        else:
            # Check if query is NBA related
            flag = isNBA(self.query)
            if flag == 0:
                return unsure
            elif flag == -1:
                return non_nba

            # Query is definitely NBA related
            if self.node_type == "rank":
                node = RankNode()

            if self.node_type == "stat":
                node = StatNode()

        node.load_query(self.query)
        return node.response()
Exemplo n.º 7
0
 def response(self):
     if self.node_type == "rank":
         node = RankNode()
     elif self.node_type == "stat":
         node = StatNode()
     elif self.node_type == "info":
         node = InfoNode()
     node.load_query(self.query)
     return node.response()
Exemplo n.º 8
0
    def response(self):
        if self.node_type == "info":
            node = InfoNode()
        else:
            # Check if query is NBA related
            flag = isNBA(self.query)
            if flag == 0:
                return unsure
            elif flag == -1:
                return non_nba

            # Query is definitely NBA related
            if self.node_type == "rank":
                node = RankNode()

            if self.node_type == "stat":
                node = StatNode()

        node.load_query(self.query)
        return node.response()
Exemplo n.º 9
0
 def test_extract_metric(self):
     query = "Who is a better shooter Kobe or Lebron?"
     node = RankNode()
     node.load_query(query)
     metric = node.extract_metric()
     self.assertEqual(metric, "shooter")
Exemplo n.º 10
0
 def test_extract_metric(self):
     node = RankNode("Who is a better shooter Kobe or Lebron?")
     metric = node.extract_metric()
     self.assertEqual(metric, "shooter")
Exemplo n.º 11
0
 def test_response(self):
     query = "Who is a better shooter Kobe Bryant or Lebron James?"
     node = RankNode()
     node.load_query(query)
     resp = node.response()
     self.assertTrue(isinstance(resp, str))