Exemple #1
0
    def test_billbatch_total_calculates_total_amount_of_bills_in_batch(self):
        bills = [Bill(5), Bill(3), Bill(2)]

        test = BillBatch(bills)

        self.assertIsNotNone(test.total())
        self.assertEqual(test.total(), 10)
Exemple #2
0
    def test_total(self):
        values = [10, 20, 50, 100]
        bills = [Bill(value) for value in values]

        batch = BillBatch(bills)
        total = batch.total()

        expexted = 180
        self.assertEqual(total, expexted)
Exemple #3
0
    def test_billbatch_len_dunder_calculates_length_of_batchbill_as_expected(
            self):
        bills1 = [Bill(5), Bill(3), Bill(1)]
        bills2 = []

        test1 = BillBatch(bills1)
        test2 = BillBatch(bills2)

        self.assertEqual(len(test1), 3)
        self.assertEqual(len(test2), 0)
	def test_if_totall_batch_is_working(self):
		ls = [10,20,50,100]
		bills = [Bill(value) for value in ls]
		exp = 180


		batch = BillBatch(bills)
		res = batch.total()

		self.assertEqual(res,exp)
Exemple #5
0
    def test_get_len_of_bill_batch(self):
        values = [10, 20, 50, 100]
        bills = [Bill(value) for value in values]

        batch = BillBatch(bills)

        self.assertEqual(len(batch), 4)
Exemple #6
0
    def test_cashdesk_take_only_batch(self):
        desk = CashDesk()
        batch = BillBatch([Bill(10), Bill(5)])

        desk.take_money(batch)

        self.assertEqual(desk.total(), 15)
	def test_if_batch_is_iterable_in_for_loop(self):
		ls = [10,20,50,100]
		bills = [Bill(value) for value in ls]

		batch = BillBatch(bills)

		self.assertTrue([i for i in batch])
Exemple #8
0
    def test_cashdesk_take_money_works_as_expected_with_empty_desk_and_billbatch(
            self):
        cash_desk = CashDesk()
        bill_batch = BillBatch([Bill(10), Bill(15)])

        cash_desk.take_money(bill_batch)

        self.assertEqual(cash_desk.cash, {Bill(10): 1, Bill(15): 1})
Exemple #9
0
    def test_billbatch_indexation_is_as_expected(self):
        bills = [Bill(5), Bill(3), Bill(1)]

        test = BillBatch(bills)

        self.assertEqual(test[0], Bill(5))
        self.assertEqual(test[1], Bill(3))
        self.assertEqual(test[2], Bill(1))
Exemple #10
0
    def test_take_money_batch(self):
        values = [10, 20, 50, 100, 100, 100]
        bills = [Bill(value) for value in values]

        batch = BillBatch(bills)

        desk = CashDesk()

        desk.take_money(batch)
Exemple #11
0
    def test_can_for_loop_a_billbatch(self):
        bills = [Bill(value) for value in range(1, 10)]
        batch = BillBatch(bills)
        total = 0

        for bill in batch:
            total += int(bill)

        self.assertEqual(total, sum(range(1, 10)))
Exemple #12
0
    def test_inspect_function(self):
        values = [10, 20, 50, 100, 100, 100]
        bills = [Bill(value) for value in values]
        batch = BillBatch(bills)
        desk = CashDesk()

        desk.take_money(batch)
        desk.take_money(Bill(10))

        desk.inspect()
Exemple #13
0
    def test_total_if_cash_desk_is_empty(self):
        values = [10, 20, 50, 100, 100, 100]
        bills = [Bill(value) for value in values]
        batch = BillBatch(bills)
        desk = CashDesk()

        result = desk.total()

        expexted = 0
        self.assertEqual(result, expexted)
	def test_if_inspection_works(self):
		desk = CashDesk()
		ls = [10,20,50,100]
		bills = [Bill(value) for value in ls]

		batch = BillBatch(bills)

		desk.take_money(Bill(10))
		desk.take_money(batch)

		desk.inspect()
Exemple #15
0
    def test_iteration_of_bill_batch(self):
        values = [10, 20, 50, 100]
        bills = [Bill(value) for value in values]
        batch = BillBatch(bills)

        result = ""
        for bill in batch:
            result += f'{bill}\n'

        expexted = "A 10$ bill\nA 20$ bill\nA 50$ bill\nA 100$ bill\n"
        self.assertEqual(result, expexted)
Exemple #16
0
    def test_total_when_cash_desk_is_not_empty(self):
        values = [10, 20, 50, 100, 100, 100]
        bills = [Bill(value) for value in values]
        batch = BillBatch(bills)
        desk = CashDesk()

        desk.take_money(batch)
        desk.take_money(Bill(10))
        result = desk.total()

        expexted = 390
        self.assertEqual(result, expexted)
Exemple #17
0
    def test_billbatch_init_raises_exception_if_bills_is_not_of_type_list(
            self):
        exc = None
        bills = (Bill(5), Bill(3), Bill(1))

        try:
            test = BillBatch(bills)
        except Exception as err:
            exc = err

        self.assertIsNotNone(exc)
        self.assertEqual(type(exc), TypeError)
        self.assertEqual(str(exc), 'Amount must be of type "list".')
	def test_if_bills_are_taken_from_desk(self):
		desk = CashDesk()

		ls = [10,20,50,100]
		bills = [Bill(value) for value in ls]

		batch = BillBatch(bills)

		desk.take_money(Bill(10))
		desk.take_money(batch)

		self.assertEqual(str(desk[0]),'A 10$ bill.')
		self.assertEqual(str(desk[3]),'A 50$ bill.')
	def test_if_totall_sum_is_right(self):
		desk = CashDesk()
		exp = 190
		ls = [10,20,50,100]
		bills = [Bill(value) for value in ls]

		batch = BillBatch(bills)

		desk.take_money(Bill(10))
		desk.take_money(batch)
		res = desk.total()


		self.assertEqual(res, exp)
from cashdesk import Bill, BillBatch

values = [10, 20, 50, 100]
bills = [Bill(value) for value in values]

batch = BillBatch(bills)

for bill in batch:
    print(bill)

print(batch.total())
# A 10$ bill
# A 20$ bill
# A 50$ bill
# A 100$ bill
Exemple #21
0
 def test_can_create_billbatch(self):
     batch = BillBatch([])
     self.assertTrue(isinstance(batch, BillBatch))
Exemple #22
0
from cashdesk import Bill, BillBatch, CashDesk

values = [10, 20, 50, 100, 100, 100]
bills = [Bill(value) for value in values]

batch = BillBatch(bills)

desk = CashDesk()
desk.take_money(Bill(10))
desk.take_money(batch)

print(desk.total())  # 390
desk.inspect()

# We have a total of 390$ in the desk
# We have the following count of bills, sorted in ascending order:
# 10$ bills - 2
# 20$ bills - 1
# 50$ bills - 1
# 100$ bills - 3
Exemple #23
0
 def test_when_one_of_items_in_list_is_not_bill_then_return_type_error(
         self):
     with self.assertRaises(TypeError):
         BillBatch('10')
Exemple #24
0
    def test_can_create_billbatch_with_bills(self):
        bills = [Bill(value) for value in range(1, 10)]
        batch = BillBatch(bills)

        self.assertEqual(len(batch), len(range(1, 10)))
        self.assertEqual(batch.total(), sum(range(10)))
Exemple #25
0
 def test_when_total_then_return_sum_of_amounts_of_all_bills_in_billbatch(
         self):
     test_billbatch = BillBatch([Bill(10), Bill(20)])
     expected_result = 30
     self.assertEqual(test_billbatch.total(), expected_result)
Exemple #26
0
 def test_len_dunder(self):
     test_billbatch = BillBatch([Bill(10), Bill(20)])
     expected_result = 2
     self.assertEqual(len(test_billbatch), expected_result)
Exemple #27
0
 def test_take_money_when_a_billbatch_is_added(self):
     test_cashdesk = CashDesk()
     test_cashdesk.take_money(BillBatch([Bill(10), Bill(10), Bill(20)]))
     expected_result = 3
     self.assertEqual(test_cashdesk.number_of_bills(), expected_result)
Exemple #28
0
 def test_when_total_then_return_sum_of_amounts_of_all_bills_in_cashdesk(
         self):
     test_cashdesk = CashDesk()
     test_cashdesk.take_money(BillBatch([Bill(10), Bill(10), Bill(20)]))
     expected_result = 40
     self.assertEqual(test_cashdesk.total(), expected_result)
    def test_can_create_billbatch_with_bills(self):
        bills = [Bill(value) for value in range(1, 10)]
        batch = BillBatch(bills)

        self.assertEqual(len(batch), len(range(1, 10)))
        self.assertEqual(batch.total(), sum(range(10)))
 def test_create_billbatch(self):
     with self.assertRaises(TypeError):
         BillBatch('asd')
Exemple #31
0
 def test_when_inspect_then_print_table_repr_of_cash_desk(self):
     test_cashdesk = CashDesk()
     test_cashdesk.take_money(BillBatch([Bill(10), Bill(10), Bill(20)]))
     expected_result = '$10 bills - 2\n$20 bills - 1\n'
     self.assertEqual(test_cashdesk.inspect(), expected_result)