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)
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)
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)
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)
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])
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})
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))
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)
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)))
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()
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()
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)
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)
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
def test_can_create_billbatch(self): batch = BillBatch([]) self.assertTrue(isinstance(batch, BillBatch))
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
def test_when_one_of_items_in_list_is_not_bill_then_return_type_error( self): with self.assertRaises(TypeError): BillBatch('10')
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_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)
def test_len_dunder(self): test_billbatch = BillBatch([Bill(10), Bill(20)]) expected_result = 2 self.assertEqual(len(test_billbatch), expected_result)
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)
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_create_billbatch(self): with self.assertRaises(TypeError): BillBatch('asd')
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)