def testGraphAddMovie(self):
     """
     Tests adding movie vertex
     """
     graph = Graph()
     graph.parseFile(TESTFILE)
     graph.add_movie(
         Movies("BlahBlah", "1980", "$121,890,708", "Robert Redford"))
 def testGraphAddEdge(self):
     """
     Tests adding an edge
     """
     graph = Graph()
     graph.parseFile(TESTFILE)
     tmp_movie = Movies("BlahBlah", "1980", "$121,890,708",
                        "Robert Redford")
     tmp_actor = Actors("Freeman Blah", 80, "BlahBlah")
     graph.add_movie(tmp_movie)
     graph.add_actor(tmp_actor)
     graph.add_edge(Edges(tmp_actor.name, tmp_movie.name, 222759050.0))
 def testMovieActors(self):
     """
     Tests finding actors who acted in a given movie
     """
     graph = Graph()
     graph.parseFile(TESTFILE)
     tmp_movie = Movies("BlahBlah", "1980", "$121,890,708",
                        "Robert Redford")
     tmp_actor = Actors("Freeman Blah", 80, "BlahBlah")
     graph.add_movie(tmp_movie)
     graph.add_actor(tmp_actor)
     graph.add_edge(Edges(tmp_actor.name, tmp_movie.name, 222759050.0))
     graph.get_actors_for_movie("The Arrangement")
 def testMovieGross(self):
     """
     Tests how much a movie grossed at Box Office
     """
     graph = Graph()
     graph.parseFile(TESTFILE)
     tmp_movie = Movies("BlahBlah", "1980", "$121,890,708",
                        "Robert Redford")
     tmp_actor = Actors("Freeman Blah", 80, "BlahBlah")
     graph.add_movie(tmp_movie)
     graph.add_actor(tmp_actor)
     graph.add_edge(Edges(tmp_actor.name, tmp_movie.name, 222759050.0))
     graph.get_movie_gross("The Thomas Crown Affair")
 def testGetMoviesForYear(self):
     """
     Tests getting movies for given year
     """
     graph = Graph()
     graph.parseFile(TESTFILE)
     tmp_movie = Movies("BlahBlah", "1980", "$121,890,708",
                        "Robert Redford")
     tmp_actor = Actors("Freeman Blah", 80, "BlahBlah")
     graph.add_movie(tmp_movie)
     graph.add_actor(tmp_actor)
     graph.add_edge(Edges(tmp_actor.name, tmp_movie.name, 222759050.0))
     graph.get_movies_for_year("1980")
 def testOldestActors(self):
     """
     Tests finding oldest X actors
     """
     graph = Graph()
     graph.parseFile(TESTFILE)
     tmp_movie = Movies("BlahBlah", "1980", "$121,890,708",
                        "Robert Redford")
     tmp_actor = Actors("Freeman Blah", 78, "BlahBlah")
     graph.add_movie(tmp_movie)
     graph.add_actor(tmp_actor)
     graph.add_edge(Edges(tmp_actor.name, tmp_movie.name, 222759050.0))
     graph.find_oldest_actors(2)
 def testHighestGrossing(self):
     """
     Tests finding highest grossing X actors
     """
     graph = Graph()
     graph.parseFile(TESTFILE)
     tmp_movie = Movies("BlahBlah", "1980", "$121,890,708",
                        "Robert Redford")
     tmp_actor = Actors("Freeman Blah", 80, "BlahBlah")
     graph.add_movie(tmp_movie)
     graph.add_actor(tmp_actor)
     graph.add_edge(Edges(tmp_actor.name, tmp_movie.name, 222759050.0))
     graph.find_highest_grossing_actors(5)
Example #8
0
    def parseFile(self, filename):
        """
        Parses through the .json file to create the graph
        :param filename: the name of the JSON format file
        :return: A graph structure with with vertices and edges
        """
        with open(filename, 'r') as json_data:
            data = json.load(json_data)
        for d in data:
            for either in d:
                if d[either]['json_class']=='Movie':
                    # print("==================================Movies=======================================")
                    i = d[either]['name']
                    release_yr = d[either]['year']
                    gross = d[either]['box_office']
                    actors = d[either]['actors']
                    self.add_movie(Movies(i, release_yr, gross, actors))

                else:
                    # print("==================================Actors=======================================")
                    i = d[either]['name']
                    age = d[either]['age']
                    movies = d[either]['movies']
                    self.add_actor(Actors(i, age, movies))
        # print("==================================Edges=======================================")
        for each_actor in self.actors:
            movies = self.actors[each_actor].info()['Movies']
            for m in movies:
                for each_movie in self.movies:
                    if each_movie == m:
                        self.movies[each_movie].info()['Release Year']
                        gross_m = self.movies[each_movie].info()['Box office']
                        if(gross_m < 9999):
                            gross_m *= 1000000
                        number_actors_m = len(self.movies[each_movie].info()['Actors'])
                        rank = 0;
                        for a in range(number_actors_m):
                            if self.movies[each_movie].info()['Actors'][a] == i:
                                rank = a;
                        if number_actors_m != 0:
                            weight = gross_m * (number_actors_m - rank) / number_actors_m
                        else:
                            weight = gross_m
                        self.add_edge(Edges(each_actor, each_movie, weight))
Example #9
0

class GraphTest(unittest.TestCase):
    def testGraphExtract(self):
        """
        Tests extraction from Json file and structure of Graph
        """
        graph = Graph2()
        graph.parseFile(TESTFILE)


if __name__ == "__main__":
    #unittest.main()
    graph = Graph2()
    graph.parseFile(TESTFILE)
    tmp_movie = Movies("BlahBlah", 2010, 121890708,
                       ["Robert Redford", "Freeman Blah"])
    tmp_actor = Actors("Freeman Blah", 7, ["BlahBlah"])
    graph.add_movie(tmp_movie)
    graph.add_actor(tmp_actor)
    graph.add_edge(Edges(tmp_actor.name, tmp_movie.name, 222759050.0))
    graph.get_movies_for_actor("Faye Dunaway")
    graph.get_movies_for_year(2002)
    graph.get_movie_actors_for_year(2002)
    graph.get_actors_for_movie("Message in a Bottle")
    graph.get_movie_gross("The Thomas Crown Affair")
    graph.find_highest_grossing_actors(5)
    graph.find_oldest_actors(2)
    graph.find_actor_hub(5)
    graph.send_actors_to_json()
    graph.send_edges_to_json()
    graph.send_movies_to_json()
Example #10
0
        """
        Tests finding oldest X actors
        """
        graph = Graph()
        graph.parseFile(TESTFILE)
        tmp_movie = Movies("BlahBlah", "1980", "$121,890,708",
                           "Robert Redford")
        tmp_actor = Actors("Freeman Blah", 78, "BlahBlah")
        graph.add_movie(tmp_movie)
        graph.add_actor(tmp_actor)
        graph.add_edge(Edges(tmp_actor.name, tmp_movie.name, 222759050.0))
        graph.find_oldest_actors(2)


if __name__ == "__main__":
    #unittest.main()
    graph = Graph()
    graph.parseFile(TESTFILE)
    tmp_movie = Movies("BlahBlah", "1980", "$121,890,708", "Robert Redford")
    tmp_actor = Actors("Freeman Blah", 78, "BlahBlah")
    graph.add_movie(tmp_movie)
    graph.add_actor(tmp_actor)
    graph.add_edge(Edges(tmp_actor.name, tmp_movie.name, 222759050.0))
    graph.get_movies_for_actor("Faye Dunaway")
    graph.get_movies_for_year("1980")
    graph.get_movie_actors_for_year("1980")
    graph.get_actors_for_movie("The Thomas Crown Affair")
    graph.get_movie_gross("The Thomas Crown Affair")
    graph.find_highest_grossing_actors(5)
    graph.find_oldest_actors(2)