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(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) for k, v in pricey_two.items(): print('{title} costs ${price}'.format(title=k, price=v)) print() print('"Worth" of users') print('Total spend for {email} is {total_spend}'.format( email='*****@*****.**', total_spend=Tome_Rater.get_worth_of_user('*****@*****.**')))
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)) print("Test worth of a user:"******"*****@*****.**")) print(Tome_Rater.get_worth_of_user("*****@*****.**")) print("Test best value book:")
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()) #My testing: Tome_Rater.add_a_review(book1, "Great read!") print(Tome_Rater.get_review(book1)) print("\n") Tome_Rater.get_n_most_read_books(6) print("\n") Tome_Rater.get_n_most_prolific_readers(2) print("\n") print(Tome_Rater.get_n_most_expensive_books(4)) print("\n") print(Tome_Rater.get_worth_of_user("*****@*****.**"))
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()))
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) print("Testing tomerater1 equal to tomerater4: True") tomerater4.add_user("Beatriz Rodriguez", "*****@*****.**", [book1, book5]) tomerater4.add_book_to_user(tomeraterbook1, "*****@*****.**") print(tomerater1 == tomerater4) print("Testing existing user error handling for user3 tomerater3: User Jenny Parque currently exists with email [email protected]. Please use a different email.") tomerater3.add_user("Jenny Parqua", "*****@*****.**") print("Testing existing isbn error handling for all book types tomerater3")
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") print(tomerater.get_worth_of_user("*****@*****.**")) print(tomerater.get_worth_of_user("*****@*****.**")) print(tomerater.get_worth_of_user("*****@*****.**"))