Skip to content

Commit

Permalink
bank-account: Formatting
Browse files Browse the repository at this point in the history
  • Loading branch information
thecouchcoder committed Oct 9, 2017
1 parent 8cfd2fd commit dc4c1f5
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 87 deletions.
29 changes: 13 additions & 16 deletions exercises/bank-account/bank_account.py
Original file line number Diff line number Diff line change
@@ -1,24 +1,21 @@
import threading

class BankAccount(object):
def __init__(self):
pass

def getBalance(self):
pass

def open(self):
pass

def deposit(self, amount):
pass
class BankAccount(object):

def __init__(self):
pass

def withdraw(self, amount):
pass
def getBalance(self):
pass

def close(self):
pass
def open(self):
pass

def deposit(self, amount):
pass

def withdraw(self, amount):
pass

def close(self):
pass
28 changes: 7 additions & 21 deletions exercises/bank-account/bank_account_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

from bank_account import BankAccount


class BankAccountTests(unittest.TestCase):

def test_newly_opened_account_has_zero_balance(self):
Expand All @@ -24,19 +25,6 @@ def test_get_balance_with_amount(self):

self.assertEqual(self.account.getBalance(), 100)

def test_get_balance_0(self):
self.account = BankAccount()
self.account.open()

self.assertEqual(self.account.getBalance(), 0)

def test_get_balance_with_amount(self):
self.account = BankAccount()
self.account.open()
self.account.deposit(100)

self.assertEqual(self.account.getBalance(), 100)

def test_deposit_into_account(self):
self.account = BankAccount()
self.account.open()
Expand Down Expand Up @@ -76,8 +64,6 @@ def test_deposit_into_closed_account(self):
with self.assertRaises(Exception):
self.account.deposit(50)



def test_withdraw_from_closed_account(self):
self.account = BankAccount()
self.account.open()
Expand Down Expand Up @@ -109,8 +95,6 @@ def test_cannot_deposit_negative(self):
with self.assertRaises(Exception):
self.account.deposit(-50)



def test_can_handle_concurrent_transactions(self):
def increment_and_decrement(self):
self.account.deposit(10)
Expand All @@ -121,9 +105,10 @@ def increment_and_decrement(self):

threadlist = []
threads = 100
i=0
while (i<threads):
thread = threading.Thread(target=increment_and_decrement, args=(self, ))
i = 0
while (i < threads):
thread = threading.Thread(target=increment_and_decrement,
args=(self, ))
threadlist.append(thread)
i += 1

Expand All @@ -135,5 +120,6 @@ def increment_and_decrement(self):

self.assertEqual(self.account.getBalance(), 900)


if __name__ == '__main__':
unittest.main();
unittest.main()
91 changes: 41 additions & 50 deletions exercises/bank-account/example.py
Original file line number Diff line number Diff line change
@@ -1,53 +1,44 @@
import threading

class BankAccount(object):
def __init__(self):
self.lock = threading.Lock()

def getBalance(self):
self.lock.acquire()
if (self.open == True):
self.lock.release()
return self.balance
else:
self.lock.release()
raise Exception

def getBalance(self):
self.lock.acquire()
if (self.open == True):
self.lock.release()
return self.balance
else:
self.lock.release()
raise Exception

def open(self):
self.lock.acquire()
self.balance = 0
self.open = True
self.lock.release()

def deposit(self, amount):
self.lock.acquire()
if (self.open == True and amount>0):
self.balance += amount
self.lock.release()
else:
self.lock.release()
raise Exception


def withdraw(self, amount):
self.lock.acquire()
if (self.open == True and self.balance >= amount and amount>0):
self.balance -= amount
self.lock.release()
else:
self.lock.release()
raise Exception

def close(self):
self.lock.acquire()
self.open = False
self.lock.release()
class BankAccount(object):
def __init__(self):
self.lock = threading.Lock()

def getBalance(self):
self.lock.acquire()
if (self.open is True):
self.lock.release()
return self.balance
else:
self.lock.release()
raise Exception

def open(self):
self.lock.acquire()
self.balance = 0
self.open = True
self.lock.release()

def deposit(self, amount):
self.lock.acquire()
if (self.open is True and amount > 0):
self.balance += amount
self.lock.release()
else:
self.lock.release()
raise Exception

def withdraw(self, amount):
self.lock.acquire()
if (self.open is True and self.balance >= amount and amount > 0):
self.balance -= amount
self.lock.release()
else:
self.lock.release()
raise Exception

def close(self):
self.lock.acquire()
self.open = False
self.lock.release()

0 comments on commit dc4c1f5

Please sign in to comment.