예제 #1
0
    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)
예제 #3
0
    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)
예제 #4
0
    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])
예제 #5
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))
예제 #7
0
 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', ''])
예제 #8
0
    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"])
예제 #9
0
    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)
예제 #10
0
    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)
예제 #12
0
    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.")
예제 #13
0
    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.")
예제 #14
0
    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
예제 #15
0
    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)
예제 #17
0
    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)
예제 #18
0
    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.')
예제 #19
0
    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)
예제 #20
0
    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)
예제 #21
0
    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)
예제 #22
0
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)
예제 #24
0
 def setUp(self):
     self.bill = Bill(10)
     self.batch = BatchBill([Bill(5), Bill(10), Bill(15)])
     self.desk = CashDesk()
예제 #25
0
 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)
예제 #26
0
 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 ')
예제 #27
0
 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)
예제 #28
0
 def test_total_three_elements(self):
     b = BatchBill([Bill(30),Bill(10),Bill(10)])
     res = b.total()
     self.assertEqual(res, 50)
예제 #29
0
 def test_total_one_element(self):
     b = BatchBill([Bill(30)])
     res = b.total()
     self.assertEqual(res, 30)
예제 #30
0
 def test_len_even_elements(self):
     b = BatchBill([Bill(30),Bill(10),Bill(10),Bill(20)])
     res = len(b)
     self.assertEqual(res, 4)
예제 #31
0
 def test_len_one_element(self):
     b = BatchBill([Bill(10)])
     res = len(b)
     self.assertEqual(res, 1)
 def setUp(self):
     self.bill = Bill(10)
     self.batch = BatchBill([Bill(5), Bill(10), Bill(15)])
     self.desk = CashDesk()