Exemple #1
0
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))
Exemple #2
0
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)
Exemple #3
0
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))
Exemple #4
0
                    "*****@*****.**",
                    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)
Exemple #5
0
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())
Exemple #6
0
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()))
Exemple #7
0
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)
Exemple #8
0
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")
Exemple #9
0
#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))