예제 #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)
	def test_if_str_representataion_is_as_expected(self):
		bill1 = Bill(10)
		bill2 = Bill(5)


		self.assertEqual(str(bill1),'A 10$ bill.')
		self.assertEqual(str(bill2),'A 5$ bill.')
예제 #3
0
    def test_bill_eq_comparison_is_as_expected_one(self):
        test1 = Bill(5)
        test2 = Bill(5)
        test3 = Bill(6)

        self.assertEqual(test1, test2)
        self.assertNotEqual(test2, test3)
예제 #4
0
    def test_if_bills_are_equal(self):
        a = Bill(10)
        b = Bill(9)
        c = Bill(10)

        self.assertTrue(a != b)
        self.assertTrue(a == c)
예제 #5
0
    def test_if___eq___dunder_works_correctly(self):
        b1 = Bill(1)
        b2 = Bill(2)
        b3 = Bill(1)

        self.assertFalse(b1 == b2)
        self.assertTrue(b1 == b3)
예제 #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)
예제 #7
0
    def test_cashdesk_take_only_bills(self):
        desk = CashDesk()

        desk.take_money(Bill(10))
        desk.take_money(Bill(5))

        self.assertEqual(desk.total(), 15)
예제 #8
0
    def test_total_amount_of_all_bills_in_the_batch(self):
        Bill.money_holder = {}
        a = Bill(10)
        b = Bill(20)

        batch = BatchBill([a, b])

        self.assertEqual(batch.total(), 30)
예제 #9
0
    def test_counting_the_numbers_of_bills_in_the_batch(self):
        Bill.money_holder = {}
        a = Bill(10)
        b = Bill(20)

        batch = BatchBill([a, b])

        self.assertEqual(len(batch), 2)
예제 #10
0
    def test_getting_item_from_list_of_bills(self):
        Bill.money_holder = {}
        a = Bill(10)
        b = Bill(20)

        batch = BatchBill([a, b])

        self.assertEqual(batch[0], a)
예제 #11
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})
예제 #12
0
    def test_cashdesk_take_money_works_as_expected_with_one_type_of_bill_in_desk(
            self):
        cash_desk = CashDesk()
        test1 = Bill(10)
        test2 = Bill(10)

        cash_desk.take_money(test1)
        cash_desk.take_money(test2)

        self.assertEqual(cash_desk.cash, {test2: 2})
예제 #13
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)
예제 #14
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()
	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()
예제 #16
0
    def test_hash_function(self):
        money_holder = {}
        a = Bill(10)
        b = Bill(10)

        money_holder[a] = 1
        if b in money_holder:
            money_holder[b] += 1

        expexted = 2
        self.assertEqual(expexted, money_holder[a])
예제 #17
0
    def test_bill_hash_dunder_works_as_expected(self):
        test1 = Bill(5)
        test2 = Bill(5)
        money_holder = {}

        money_holder[test1] = 1

        if test2 in money_holder:
            money_holder[test2] += 1

        self.assertEqual(money_holder[test1], 2)
예제 #18
0
    def test_cashdesk_total_works_as_expected_when_bill_appears_only_once(
            self):
        cash_desk = CashDesk()
        bill1 = Bill(5)
        bill2 = Bill(10)
        bill3 = Bill(20)

        cash_desk.take_money(bill1)
        cash_desk.take_money(bill2)
        cash_desk.take_money(bill3)

        self.assertEqual(cash_desk.total(), 35)
예제 #19
0
    def test_if___stringify_works_correctly(self):
        bills = [Bill(i) for i in range(5)]
        batch = BatchBill(bills)
        cd = CashDesk()
        cd.take_money(batch)
        cd.take_money(Bill(1))
        s = cd.stringify()

        self.assertEqual(
            s,
            "A 0$ bill - 1\nA 1$ bill - 2\nA 2$ bill - 1\nA 3$ bill - 1\nA 4$ bill - 1"
        )
예제 #20
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)
	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.')
예제 #22
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_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)
예제 #24
0
    def test_inspect_with_full_desk(self):
        desk = CashDesk()

        desk.take_money(Bill(1))
        desk.take_money(Bill(2))
        desk.take_money(Bill(10))

        expected = ["We have 13$ in the desk."]
        expected.append("Bills are:")
        expected.append("$1 - 1")
        expected.append("$2 - 1")
        expected.append("$10 - 1")

        self.assertEqual("\n".join(expected), desk.inspect())
예제 #25
0
    def test_if_take_money_works_with_bill(self):
        bill = Bill(10)
        cd = CashDesk()
        cd.take_money(bill)
        res = 10

        self.assertEqual(res, cd.total())
예제 #26
0
    def test_total_amount_of_money_in_the_desk_with_bills(self):
        Bill.money_holder = {}

        a = Bill(10)
        b = Bill(20)
        c = Bill(30)

        desk = CashDesk()

        desk.take_money(a)
        desk.take_money(b)
        desk.take_money(c)

        total = desk.total()

        self.assertEqual(total, 60)
	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])
예제 #28
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)
예제 #29
0
    def test_int_function(self):
        a = Bill(10)

        result = int(a)

        expexted = 10
        self.assertEqual(result, expexted)
예제 #30
0
    def test_can_put_bill_in_dictionary(self):
        money_holder = {}
        bill = Bill(10)

        money_holder[bill] = 1

        self.assertTrue(bill in money_holder)