def test_showing_total_amount_in_batch(self): values = [1, 2, 5, 10] bills = [Bill(value) for value in values] batch = BatchBill(bills) result = batch.total() expected = 18 self.assertEqual(result, expected)
class TestBatchBill(unittest.TestCase): def setUp(self): self.list_values = [10, 20, 30] self.bill = [Bill(value) for value in self.list_values] self.Bbill = BatchBill(self.bill) def test_len(self): self.assertEqual(self.Bbill.__len__(), 3) def test_total(self): self.assertEqual(self.Bbill.total(), 60)
def test_total(self): e = None try: billList = [Bill(value) for value in range(1, 5)] batch = BatchBill(billList) res = batch.total() except Exception as exc: e = exc print(res) self.assertIsNone(e) self.assertEqual(10, res)
def test_init_dunder(self): e = None bill5 = Bill(5) bill10 = Bill(10) try: batch1 = BatchBill([bill5, bill10]) batch2 = BatchBill([bill5]) except Exception as exc: e = exc self.assertIsNone(e) self.assertEqual(bill5, batch1.__dict__["bills"][0]) self.assertEqual(bill10, batch1.__dict__["bills"][1]) self.assertEqual(bill5, batch2.__dict__["bills"][0])
def test_eq_dunder(self): e = None val1 = [1, 2, 3] val2 = [3, 2, 1] val3 = [1, 3, 5] bills1 = [Bill(val) for val in val1] bills2 = [Bill(val) for val in val2] bills3 = [Bill(val) for val in val3] batch1 = BatchBill(bills1) batch2 = BatchBill(bills2) batch3 = BatchBill(bills3) self.assertTrue(batch1 == batch2, "Unexpectedly, Batch1 != Batch2") self.assertFalse(batch2 == batch3, "Unexpectedly, Batch2 == Batch3") self.assertFalse(batch1 == batch3, "Unexpectedly, Batch1 == Batch3")
def setUp(self): values = [10, 20, 50, 100, 100, 100] bills = [Bill(value) for value in values] batch = BatchBill(bills) self.desk = CashDesk() self.desk.take_money(batch) self.desk.take_money(Bill(10))
def test_inspect(self): d = CashDesk() d.take_money(BatchBill([Bill(30),Bill(10),Bill(10),Bill(23),Bill(10),Bill(15)])) d.take_money(Bill(30)) res = d.inspect() s = res.split('\n') self.assertEqual(s,['A 10$ bill 3','A 15$ bill 1','A 23$ bill 1','A 30$ bill 2', ''])
def test_take_money(self): e = None values = [10, 20, 50, 100, 100, 100] bills = [Bill(value) for value in values] batch = BatchBill(bills) extraBill = Bill(10) desk = CashDesk() expected = [BatchBill(bills), Bill(10)] try: desk.take_money(batch) desk.take_money(extraBill) except Exception as exc: e = exc self.assertIsNone(e) self.assertEqual(expected, desk.__dict__["money"])
def test_getitem(self): values = [1, 2, 5, 10] bills = [Bill(value) for value in values] batch = BatchBill(bills) result = str(batch[3]) expected = 'A $10 bill' self.assertEqual(result, expected)
def test_showing_batch_lenght(self): values = [1, 2, 5, 10] bills = [Bill(value) for value in values] batch = BatchBill(bills) result = len(batch) expected = 4 self.assertEqual(result, expected)
class TestBatchBill(unittest.TestCase): def setUp(self): self.batch = BatchBill([Bill(50), Bill(10), Bill(30), Bill(20)]) def test_getitem(self): self.assertEqual(self.batch[0], Bill(50)) self.assertRaises(IndexError, self.batch.__getitem__, 5) def test_total(self): self.assertEqual(self.batch.total(), 110)
def test_init_dunder_with_non_list(self): e = None try: BatchBill({}) except TypeError as exc: e = exc self.assertIsNotNone(e) self.assertEqual(str(e), "Type is not list.")
def test_init_dunder_with_list_of_non_bills(self): e = None try: BatchBill([Bill(5), Bill(10), "stringiboi", Bill(15)]) except TypeError as exc: e = exc self.assertIsNotNone(e) self.assertEqual(str(e), "Non-bill bill.")
def test_checking_total(self): values = [10, 20, 50, 100, 100, 100] bills = [Bill(value) for value in values] batch = BatchBill(bills) desk = CashDesk() desk.take_money(batch) desk.take_money(Bill(10)) result = desk.total() expected = 390
def test_len_dunder(self): e = None try: billList = [Bill(value) for value in range(1, 5)] batch = BatchBill(billList) res = len(batch) except Exception as exc: e = exc self.assertIsNone(e) self.assertEqual(4, res)
class TestBatchBill(unittest.TestCase): def setUp(self): self.bill5 = Bill(5) self.bill10 = Bill(10) self.batch = BatchBill([self.bill5, self.bill10]) def test_batchbill_init(self): self.assertIn(self.bill5, self.batch) self.assertIn(self.bill10, self.batch) def test_batchbill_total(self): self.assertEqual(self.batch.total(), 15)
def test_take_money_with_a_batch_bill(self): values = [10, 20, 50, 100, 100, 100] bills = [Bill(value) for value in values] batch = BatchBill(bills) desk = CashDesk() desk.take_money(batch) result = desk.cash_desk expected = {bills[0]: 1, bills[1]: 1, bills[2]: 1, bills[3]: 3} self.assertEqual(result, expected)
def test_raises_type_error_if_bills_is_not_a_list_of_bill_instances(self): bills = [Bill(1), 10, 'a'] exc = None try: BatchBill(bills) except TypeError as err: exc = err self.assertEqual( str(exc), 'All list elements must be an instance of the Bill class.')
def test_getitem_dunder(self): e = None billList = [Bill(i) for i in range(1, 5)] batch = BatchBill(billList) res = [] expected = [Bill(1), Bill(2), Bill(3), Bill(4)] try: for item in batch: res.append(item) except Exception as exc: e = exc self.assertIsNone(e) self.assertEqual(expected, res)
def test_total(self): e = None values = [10, 20, 50, 100, 100, 100] bills = [Bill(value) for value in values] batch = BatchBill(bills) desk = CashDesk() desk.take_money(batch) try: res = desk.total() except Exception as exc: e = exc self.assertIsNone(e) self.assertEqual(380, res)
def test_str_inspect(self): e = None values = [10, 20, 50, 100, 100, 100] bills = [Bill(value) for value in values] batch = BatchBill(bills) extraBill1 = Bill(10) extraBill2 = Bill(500) desk = CashDesk() desk.take_money(batch) desk.take_money(extraBill1) desk.take_money(extraBill2) expected = "We have a total of 890$ in the desk\nWe have the following count of bills, sorted in ascending order:\n10$ bills: 2\n20$ bills: 1\n50$ bills: 1\n100$ bills: 3\n500$ bills: 1" try: res = desk.str_inspect() except Exception as exc: e = exc self.assertIsNone(e) self.assertEqual(expected, res)
class CashDeskTest(unittest.TestCase): def setUp(self): self.bill = Bill(10) self.batch = BatchBill([Bill(5), Bill(10), Bill(15)]) self.desk = CashDesk() def test_type_of_amount(self): with self.assertRaises(TypeError): Bill("10") def test_value_of_amount(self): with self.assertRaises(ValueError): Bill(-5) def test_batchbill_total(self): self.assertEqual(self.batch.total(), 30) def test_take_money_from_bill(self): self.desk.take_money(self.bill) self.assertEqual(self.desk.gold, 10) def test_take_money_from_batch(self): self.desk.take_money(self.batch) self.assertEqual(self.desk.gold, 30) def test_cashdesk_total(self): self.desk.take_money(self.bill) self.desk.take_money(self.batch) self.assertEqual( self.desk.total(), 'We have a total of 40$ in the bank') def test_cashdesk_inspect_value(self): self.desk.take_money(self.bill) self.desk.take_money(self.batch) self.desk.inspect()
def setUp(self): self.list_values = [10, 20, 30] self.bill = [Bill(value) for value in self.list_values] self.Bbill = BatchBill(self.bill)
def setUp(self): self.bill = Bill(10) self.batch = BatchBill([Bill(5), Bill(10), Bill(15)]) self.desk = CashDesk()
def test_total(self): d = CashDesk() d.take_money(BatchBill([Bill(30),Bill(10),Bill(10)])) d.take_money(Bill(29)) self.assertEqual(d.total(), 79)
def test_adding_batch(self): d = CashDesk() d.take_money(BatchBill([Bill(30),Bill(10),Bill(10)])) self.assertEqual(str(d), 'A 30$ bill A 10$ bill A 10$ bill ')
def test_total_more_elements(self): b = BatchBill([Bill(30),Bill(10),Bill(10),Bill(23),Bill(110),Bill(15)]) res = b.total() self.assertEqual(res, 198)
def test_total_three_elements(self): b = BatchBill([Bill(30),Bill(10),Bill(10)]) res = b.total() self.assertEqual(res, 50)
def test_total_one_element(self): b = BatchBill([Bill(30)]) res = b.total() self.assertEqual(res, 30)
def test_len_even_elements(self): b = BatchBill([Bill(30),Bill(10),Bill(10),Bill(20)]) res = len(b) self.assertEqual(res, 4)
def test_len_one_element(self): b = BatchBill([Bill(10)]) res = len(b) self.assertEqual(res, 1)