Tome_Rater.add_user("Alan Turing", "*****@*****.**") Tome_Rater.add_user("David Marr", "*****@*****.**") #Add a user with three books already read: Tome_Rater.add_user("Marvin Minsky", "*****@*****.**", books=[book1, novel1, nonfiction1]) #Add books to a user one by one, with ratings: Tome_Rater.add_book_to_user(book1, "*****@*****.**", 1) Tome_Rater.add_book_to_user(novel1, "*****@*****.**", 3) Tome_Rater.add_book_to_user(nonfiction1, "*****@*****.**", 3) Tome_Rater.add_book_to_user(nonfiction2, "*****@*****.**", 4) Tome_Rater.add_book_to_user(novel3, "*****@*****.**", 1) Tome_Rater.add_book_to_user(novel2, "*****@*****.**", 2) Tome_Rater.add_book_to_user(novel3, "*****@*****.**", 2) Tome_Rater.add_book_to_user(novel3, "*****@*****.**", 4) #Uncomment these to test your functions: Tome_Rater.print_catalog() Tome_Rater.print_users() print("Most positive user:"******"Highest rated book:") print(Tome_Rater.highest_rated_book()) print("Most read book:") print(Tome_Rater.most_read_book()) print(Tome_Rater.get_n_most_read_books(100)) print(Tome_Rater.get_n_most_prolific_readers(3))
print() print("Most positive user:"******"Highest rated book:") print(Tome_Rater.highest_rated_book()) print() print("Most read book:") print(Tome_Rater.get_most_read_book()) print() print( "List of 9 most read books: (truncated if requested list is larger than catalog" ) for book in Tome_Rater.get_n_most_read_books(9): print('{title} has been read {count} times'.format(title=book[0], count=book[1])) print() print( "List of 2 most prolific readers: (truncated if requested list is larger than user base)" ) top_two = Tome_Rater.get_n_most_prolific_readers(2) for user in top_two: print('{user} has read {book_count} books'.format( user=user, book_count=top_two[user])) print() print( "List of 2 most expensive books: (truncated if requested list is larger than catalog" ) pricey_two = Tome_Rater.get_n_most_expensive_books(2)
if Tome_Rater == Tome_Rater2: print("TomeRaters are equals") else: print("TomeRaters are not equal") Tome_Rater3 = TomeRater() Tome_Rater3.add_user("another user", "*****@*****.**") print("Should not equal:") if Tome_Rater == Tome_Rater3: print("TomeRaters are equal") else: print("TomeRaters are not equal") print("Test n most read books:") print(Tome_Rater.get_n_most_read_books(3)) print(Tome_Rater.get_n_most_read_books(1000)) print(Tome_Rater.get_n_most_read_books(1.4)) print(Tome_Rater.get_n_most_read_books(-2)) print("Test n most prolific readers:") print(Tome_Rater.get_n_most_prolific_readers(3)) print(Tome_Rater.get_n_most_prolific_readers(1000)) print(Tome_Rater.get_n_most_prolific_readers(1.4)) print(Tome_Rater.get_n_most_prolific_readers(-2)) print("Test n most expensive books:") print(Tome_Rater.get_n_most_expensive_books(3)) print(Tome_Rater.get_n_most_expensive_books(1000)) print(Tome_Rater.get_n_most_expensive_books(1.4)) print(Tome_Rater.get_n_most_expensive_books(-2))
"*****@*****.**", user_books=[book1, novel1, nonfiction1]) #Add books to a user one by one, with ratings: Tome_Rater.add_book_to_user(book1, "*****@*****.**", 1) Tome_Rater.add_book_to_user(novel1, "*****@*****.**", 3) Tome_Rater.add_book_to_user(nonfiction1, "*****@*****.**", 3) Tome_Rater.add_book_to_user(nonfiction2, "*****@*****.**", 4) Tome_Rater.add_book_to_user(novel3, "*****@*****.**", 1) Tome_Rater.add_book_to_user(novel2, "*****@*****.**", 2) Tome_Rater.add_book_to_user(novel3, "*****@*****.**", 2) Tome_Rater.add_book_to_user(novel3, "*****@*****.**", 4) #Uncomment these to test your functions: Tome_Rater.print_catalog() Tome_Rater.print_users() print("Most positive user:"******"Highest rated book:") print(Tome_Rater.highest_rated_book()) print("Most read book:") print(Tome_Rater.most_read_book()) print("Most read 3 books:") Tome_Rater.get_n_most_read_books(3) print("Most profilic 3 users:") Tome_Rater.get_n_most_prolific_users(3)
Tome_Rater.add_book_to_user(book3, "*****@*****.**", 3) # Create users with some email tests: Tome_Rater.add_user("Alan Turing", "*****@*****.**") Tome_Rater.add_user("David Marr", "*****@*****.**") # Tests for testing erroneous email addresses Tome_Rater.add_user("E: David Marr", "*****@*****.**") # Duplicate Tome_Rater.add_user("E: User email without @", "withoutmiukumaukucomputation.org") # Without @ Tome_Rater.add_user("E: User email without ending", "without@ending") # Without domain Tome_Rater.add_user("E: User email without ending and @", "justtextasemail") # Just a string # Sophisticated analysis print(Tome_Rater.get_n_most_read_books(3)) print(Tome_Rater.get_n_most_prolific_readers(3)) # Price print(Tome_Rater.get_n_most_expensive_books(3)) print(Tome_Rater.get_worth_of_user("*****@*****.**") ) # Prints the sum of the costs of all the books read by this user # Uncomment these to test your functions: Tome_Rater.print_catalog() Tome_Rater.print_users() print("\nMost positive user:"******"\nHighest rated book:") print(Tome_Rater.highest_rated_book())
Tome_Rater.add_book_to_user(novel2, "*****@*****.**", 2) Tome_Rater.add_book_to_user(novel3, "*****@*****.**", 2) Tome_Rater.add_book_to_user(novel3, "*****@*****.**", 4) #Uncomment these to test your functions: Tome_Rater.print_catalog() Tome_Rater.print_users() print("Most positive user:"******"Highest rated book:") print(Tome_Rater.highest_rated_book()) print("Most read book:") print(Tome_Rater.most_read_book()) print('Top 5 Prolific Readers:') most_read_users = Tome_Rater.get_n_most_prolific_readers(5) for user in most_read_users: print('{count}: {name}'.format(count=user.get_read_count(), name=user.get_name())) print('Top 5 Most Read Books:') most_read_books = Tome_Rater.get_n_most_read_books(5) for book in most_read_books: print('{count}: {title}'.format(count=Tome_Rater.get_read_count(book), title=book.get_title())) print('Top 5 Highest Rated Books:') highest_rated_books = Tome_Rater.get_n_highest_rated_books(5) for book in highest_rated_books: print('%.1f: %s' % (book.get_average_rating(), book.get_title()))
tomerater2.add_book_to_user(fiction4, "*****@*****.**", 3) tomerater2.add_book_to_user(tomeraternovel1, "*****@*****.**", 4) print(tomerater2.most_read_book()) print("Testing highest_rated_book tomerater3: Untruth by Jim Crowed") tomerater3.add_user("Beatriz Rodriguez", "*****@*****.**") tomerater3.add_user("Xiomei Li", "*****@*****.**") tomerater3.add_book_to_user(fiction3, "*****@*****.**", 4) tomerater3.add_book_to_user(fiction3, "*****@*****.**", 3) tomerater3.add_book_to_user(tomeraternovel1, "*****@*****.**", 3.7) print(tomerater3.highest_rated_book()) print("Testing most_positive_user tomerater3: Beatriz Rodriguez") print(tomerater3.most_positive_user()) print("Testing get_n_most_read_books tomerater3: That Book & Python for Dummies") tomerater3.add_book_to_user(tomeraterbook1, "*****@*****.**", 4) tomerater3.add_book_to_user(tomeraterbook1, "*****@*****.**", 2) print(tomerater3.get_n_most_read_books(2)) print("Testing get_n_most_prolific_readers tomerater3: Beatriz Rodriguez & Jenny Parque") tomerater3.add_user("Jenny Parque", "*****@*****.**") tomerater3.add_book_to_user(tomeraterbook1, "*****@*****.**", 3.8) tomerater3.add_book_to_user(tomeraterbook1, "*****@*****.**", 2) tomerater3.add_book_to_user(non_fiction1, "*****@*****.**", 1.5) tomerater3.add_book_to_user(tomeraternovel1, "*****@*****.**", 2.3) print(tomerater3.get_n_most_prolific_readers(2)) print("Testing get_n_most_expensive_books tomerater3: Untruth & Look Over There") print(tomerater3.get_n_most_expensive_books(2)) print("Testing get_worth_of_user for Xiomei Li tomerater3: 67") print(tomerater3.get_worth_of_user("*****@*****.**")) print("Testing string representation tomerater2: This TomeRater has 3 book(s) and 2 user(s). \nWith Watch My Hand being read the most, Untruth having the highest average rating,\nand Beatriz Rodriguez giving the most positive reviews.") print(tomerater2) print("Testing tomerater1 equal to tomerater2: False") print(tomerater1 == tomerater2)
tomerater.print_users() print("Most read book: " + str(tomerater.most_read_book())) print("\r\n***** Highest rated bool: " + str(tomerater.highest_rated_book())) print("\r\n***** Testing most positive user") print("Most positive user: "******"\r\n***** Testing TomeRater __repr__ method") print(tomerater) print("\r\n***** Testing TomeRater get_n_most_read_books method") print(tomerater.get_n_most_read_books(1)) print(tomerater.get_n_most_read_books(2)) print(tomerater.get_n_most_read_books(4)) print(tomerater.get_n_most_read_books(10)) print("\r\n***** Testing TomeRater get_n_most_prolific_readers method") print(tomerater.get_n_most_prolific_readers(1)) print(tomerater.get_n_most_prolific_readers(2)) print(tomerater.get_n_most_prolific_readers(3)) print("\r\n***** Testing TomeRater get_n_most_expensive_books method") print(tomerater.get_n_most_expensive_books(1)) print(tomerater.get_n_most_expensive_books(2)) print(tomerater.get_n_most_expensive_books(3)) print("\r\n***** Testing TomeRater get_worth_of_user method")
#Add a user with three books already read: Tome_Rater.add_user("Marvin Minsky", "*****@*****.**", user_books=[book1, novel1, nonfiction1]) #Add books to a user one by one, with ratings: Tome_Rater.add_book_to_user(book1, "*****@*****.**", 1) Tome_Rater.add_book_to_user(novel1, "*****@*****.**", 3) Tome_Rater.add_book_to_user(nonfiction1, "*****@*****.**", 3) Tome_Rater.add_book_to_user(nonfiction2, "*****@*****.**", 4) Tome_Rater.add_book_to_user(novel3, "*****@*****.**", 1) Tome_Rater.add_book_to_user(novel2, "*****@*****.**", 2) Tome_Rater.add_book_to_user(novel3, "*****@*****.**", 2) Tome_Rater.add_book_to_user(novel3, "*****@*****.**", 4) #Uncomment these to test your functions: #Tome_Rater.print_catalog() #Tome_Rater.print_users() print("Most positive user:"******"Highest rated book:") print(Tome_Rater.highest_rated_book()) print("Most read book:") print(Tome_Rater.get_most_read_book()) nth = 4 print("The top {nth} books read.".format(nth=nth)) print(Tome_Rater.get_n_most_read_books(nth))