Spaces:
Running
on
Zero
Running
on
Zero
# Import necessary modules | |
import dataclasses | |
import pytest | |
# Define a dataclass for a simple BankAccount | |
class BankAccount: | |
"""Represents a simple bank account""" | |
account_number: int | |
account_holder: str | |
balance: float = 0.0 | |
def deposit(self, amount: float) -> None: | |
"""Deposit money into the account""" | |
self.balance += amount | |
def withdraw(self, amount: float) -> None: | |
"""Withdraw money from the account""" | |
if amount > self.balance: | |
raise ValueError("Insufficient balance") | |
self.balance -= amount | |
def get_balance(self) -> float: | |
"""Get the current balance of the account""" | |
return self.balance | |
# Define a function to create a new BankAccount | |
def create_account(account_number: int, account_holder: str) -> BankAccount: | |
"""Create a new BankAccount instance""" | |
return BankAccount(account_number, account_holder) | |
# Define a function to perform a transaction | |
def perform_transaction(account: BankAccount, amount: float, is_deposit: bool) -> None: | |
"""Perform a transaction on the account""" | |
if is_deposit: | |
account.deposit(amount) | |
else: | |
account.withdraw(amount) | |
# Define a test function using pytest | |
def test_bank_account(): | |
"""Test the BankAccount class""" | |
account = create_account(12345, "John Doe") | |
assert account.get_balance() == 0.0 | |
perform_transaction(account, 100.0, True) | |
assert account.get_balance() == 100.0 | |
perform_transaction(account, 50.0, False) | |
assert account.get_balance() == 50.0 | |
# Run the test | |
pytest.main([__file__]) | |
# Create a new BankAccount instance | |
account = create_account(12345, "John Doe") | |
# Perform some transactions | |
perform_transaction(account, 100.0, True) | |
perform_transaction(account, 50.0, False) | |
# Print the final balance | |
print("Final balance:", account.get_balance()) |