Exemplo n.º 1
0
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('*****@*****.**')))
print('Total spend for {email} is {total_spend}'.format(
    email='*****@*****.**',
    total_spend=Tome_Rater.get_worth_of_user('*****@*****.**')))
print('Total spend for {email} is {total_spend}'.format(
    email='*****@*****.**',
    total_spend=Tome_Rater.get_worth_of_user('*****@*****.**')))
print()
print('End of first Tome_Rater tests')
print()

###################################################

Tome_Rater2 = TomeRater()

#Create some books:
Exemplo n.º 2
0
Tome_Rater.add_book_to_user(novel3, "*****@*****.**", 2)
Tome_Rater.add_book_to_user(novel3, "*****@*****.**", 4)
Tome_Rater.add_book_to_user(novel2, "*****@*****.**", 3)


#Uncomment these to test your functions:
Tome_Rater.print_catalog()
print('')
Tome_Rater.print_users()
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("Get 'n' most read books:")
Tome_Rater.get_n_most_read_books(4)
print('')
print("Get 'n' most prolific readers:")
Tome_Rater.get_n_most_prolific_readers(3)
print('')
print("Get 'n' most expensive books.")
Tome_Rater.get_n_most_expensive_books(4)
print('')
print("The sum of the cost of all books read by given user:"******"*****@*****.**"))
Exemplo n.º 3
0
# Adding books with prices.
extra_nonfiction2 = Tome_Rater.create_non_fiction("Clean Code",
                                                  "Software Engineering",
                                                  "advanced", 6789, 43.27)
extra_novel2 = Tome_Rater.create_novel("Ender's Game", "Orson Scott Card",
                                       11121314, 11.05)
extra_book2 = Tome_Rater.create_book("Introduction to High-Frequency Finance",
                                     15161718, 132.00)

# Adding books with prices to users.
Tome_Rater.add_book_to_user(extra_nonfiction2, "*****@*****.**", 4)
Tome_Rater.add_book_to_user(extra_novel2, "*****@*****.**", 3)
Tome_Rater.add_book_to_user(extra_nonfiction2, "*****@*****.**", 2)
Tome_Rater.add_book_to_user(extra_book2, "*****@*****.**", 3)
Tome_Rater.add_book_to_user(extra_novel2, "*****@*****.**", 3)
Tome_Rater.add_book_to_user(extra_book2, "*****@*****.**", 3)

# Getting the most expensive books.
Tome_Rater.print_catalog()
print("The two most expensive books:")
print(Tome_Rater.get_n_most_expensive_books(2))

# Getting the worth of different users.
print("Alan Turing's book worth: " +
      str(Tome_Rater.get_worth_of_user("*****@*****.**")))
print("Marvin Minsky's book worth: " +
      str(Tome_Rater.get_worth_of_user("*****@*****.**")))
print("David Marr's book worth: " +
      str(Tome_Rater.get_worth_of_user("*****@*****.**")))
Exemplo n.º 4
0
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:")
print(Tome_Rater.get_book_with_best_rating_for_price())
Exemplo n.º 5
0
#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(novel4, "*****@*****.**", 4)
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())
print("N most read books:")
print(Tome_Rater.get_n_most_read_books(3))
print("Top readers:")
print(Tome_Rater.get_n_most_prolific_readers(2))
print("Most expensive books:")
print(Tome_Rater.get_n_most_expensive_books(4))
print("[email protected] has " +
      str(Tome_Rater.get_worth_of_user("*****@*****.**")) + " worth of books")
Exemplo n.º 6
0
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("*****@*****.**"))
Exemplo n.º 7
0
#print(Tome_Rater.most_positive_user())
#print("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(2))
#print(Tome_Rater.get_n_most_prolific_readers(3))

Tome_Rater.add_user("Morne", "*****@*****.**")
Tome_Rater.add_user("Nici", "*****@*****.**")

mybook1 = Tome_Rater.create_book("Book1", 10000000, 30)
mybook2 = Tome_Rater.create_book("Book2", 20000000, 20)
mybook3 = Tome_Rater.create_book("Book3", 30000000, 50)
mybook4 = Tome_Rater.create_book("Book4", 40000000, 10)
mybook5 = Tome_Rater.create_book("Book5", 50000000, 40)

mynovel1 = Tome_Rater.create_novel("Novel1", "Dude", 60000000, 80)

Tome_Rater.add_book_to_user(mybook1, "*****@*****.**", 1)
Tome_Rater.add_book_to_user(mybook2, "*****@*****.**", 2)
Tome_Rater.add_book_to_user(mybook3, "*****@*****.**", 3)
Tome_Rater.add_book_to_user(mybook4, "*****@*****.**", 4)
Tome_Rater.add_book_to_user(mybook5, "*****@*****.**", 3)
Tome_Rater.add_book_to_user(mynovel1, "*****@*****.**", 3)

#print(Tome_Rater.get_n_most_expensive_books(2))

print(Tome_Rater.get_worth_of_user("*****@*****.**"))
print(Tome_Rater.get_worth_of_user("*****@*****.**"))
Exemplo n.º 8
0
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)
#Tome_Rater.add_book_to_user(book_same_isbn, "*****@*****.**", 1)

#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())

print("")
print("Tome Rater object:")
print(Tome_Rater)
print("Test equal: {}".format(Tome_Rater == TomeRater()))
print("get_n_most_prolific_readers:")
print(Tome_Rater.get_n_most_prolific_readers(4))
print("get_n_most_expensive_books:")
print(Tome_Rater.get_n_most_expensive_books(5))
email = "*****@*****.**"
print("get_worth_of_user {}:".format(email))
print(Tome_Rater.get_worth_of_user(email))
Exemplo n.º 9
0
                    "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

# Add a user with three books already read:
Tome_Rater.add_user(
    "Marvin Minsky",
    "*****@*****.**",
    user_books=[book1, book3, novel1, novel2, nonfiction1, nonfiction3])

print("\nTest case: Book price calculations")
# Add books to a user one by one, with ratings:
Tome_Rater.add_book_to_user(book1, "*****@*****.**", 1)  # +0
print(Tome_Rater.get_worth_of_user("*****@*****.**"), "should be 0")
Tome_Rater.add_book_to_user(book2, "*****@*****.**", 4)  # +2.54
print(Tome_Rater.get_worth_of_user("*****@*****.**"), "should be 2.54")
Tome_Rater.add_book_to_user(book3, "*****@*****.**", 3)  # +64.42
print(Tome_Rater.get_worth_of_user("*****@*****.**"), "should be 66.96")
Tome_Rater.add_book_to_user(novel1, "*****@*****.**", 3)  # +0
print(Tome_Rater.get_worth_of_user("*****@*****.**"), "should be 66.96")
Tome_Rater.add_book_to_user(nonfiction2, "*****@*****.**", 4)  # +0
print(Tome_Rater.get_worth_of_user("*****@*****.**"), "should be 66.96")
Tome_Rater.add_book_to_user(novel3, "*****@*****.**", 1)  # +0
print(Tome_Rater.get_worth_of_user("*****@*****.**"), "should be 66.96")
Tome_Rater.add_book_to_user(novel4, "*****@*****.**", 2)  # +12.45
print(Tome_Rater.get_worth_of_user("*****@*****.**"), "should be 79.41")

Tome_Rater.add_book_to_user(novel2, "*****@*****.**", 2)
Tome_Rater.add_book_to_user(novel3, "*****@*****.**", 4)
Exemplo n.º 10
0
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("Creating TomeRaterBook: The isbn 123908 already exists for another book. Please give a unique isbn.")
tomeraterbook2 = tomerater1.create_book("That is a Book", 123908, 3)
print("Creating TomeRaterNovel: The isbn 122345 already exists for another book. Please give a unique isbn.")
tomerater1.add_book_to_user(tomeraternovel1, "*****@*****.**")
Exemplo n.º 11
0
#Add a user with three books already read:
Tome_Rater.add_user("Marvin Minsky", "*****@*****.**",
                    [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())
print("Enter the amount of most expensive books to look for")
print(Tome_Rater.get_n_most_expensive_books(int(input())))
print("Enter the user's email to search his/her worth")
print(Tome_Rater.get_worth_of_user(input()))
Exemplo n.º 12
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)

# for testing the methods. I chose to use print() as part of these methods' output rather than return.
Tome_Rater.print_catalog()
print()
Tome_Rater.print_users()
print()
print("Most positive user:"******"Highest rated book:")
print()
Tome_Rater.highest_rated_book()
print()
print("Most read book:")
print()
Tome_Rater.most_read_book()
print()

#for testing more additional methods
Tome_Rater.get_n_most_read_books(5)
print()
Tome_Rater.get_n_most_prolific_readers(10)
print()
Tome_Rater.get_n_most_expensive_books(4)
print()
print(str(Tome_Rater.get_worth_of_user("*****@*****.**")) + " " + "USD$")
Exemplo n.º 13
0
# User already exists test:
Tome_Rater.add_user("James Bond", "*****@*****.**")
Tome_Rater.add_user("James Bond", "*****@*****.**")

# Book repr test:
print(book1)

# Ensure books have unique ISBNs
Tome_Rater.create_book(
    "Test", 12345678, 70
)  # Prints warning and does not create it (uses ISBN which is already adder earlier)
Tome_Rater.create_novel(
    "Alice In Wonderland", "Lewis Carroll", 9781536831139, 30
)  # Prints warning and does not create it (uses ISBN which is already adder earlier)
Tome_Rater.create_non_fiction(
    "Computing Machinery and Intelligence 2", "AI", "advanced", 1929452, 25
)  # Prints warning and does not create it (uses ISBN which is already adder earlier)

# Invalid email test
Tome_Rater.add_user("James Bond", "jamesbond.org")
Tome_Rater.add_user("James Bond", "*****@*****.**")

print(Tome_Rater.get_n_most_read_books(5))
print(Tome_Rater.get_n_most_read_books(2))
print(Tome_Rater.get_n_most_prolific_readers(5))
print(Tome_Rater.get_n_most_prolific_readers(2))
print(Tome_Rater.get_n_most_expensive_books(20))
print(Tome_Rater.get_n_most_expensive_books(2))
print(Tome_Rater.get_worth_of_user("*****@*****.**"))
print(Tome_Rater.get_worth_of_user("*****@*****.**"))
Exemplo n.º 14
0
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("*****@*****.**"))


Exemplo n.º 15
0
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 2 books:")
print(Tome_Rater.get_n_most_read_books(2))
print("Most prolific 2 users:")
most_prolific_users = Tome_Rater.get_n_most_prolific_readers(2)
print(most_prolific_users)
print("Most expensive 2 books:")
print(Tome_Rater.get_n_most_expensive_books(2))
print("Worth of most positive user:"******"Worth of prolific user {}".format(user.get_name()))
    print(Tome_Rater.get_worth_of_user(user.get_email()))
Exemplo n.º 16
0
print('Adding 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)

Tome_Rater.add_book_to_user(book2, "*****@*****.**", 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('n most read books')
print(Tome_Rater.get_n_most_read_books(6))
print('n most prolific readers')
print(Tome_Rater.get_n_most_prolific_readers(4))
print("Most worth books:")
print(Tome_Rater.get_worth_of_user('*****@*****.**'))
print("n most expensive book:")
print(Tome_Rater.get_n_most_expensive_books(6))