import java.util.logging.Logger;

public class BankAccountTester
{
    public static void main(String[] args)
    {        
        try
        {
            assert false;
            Logger.global.severe("Run again with assertions enabled (-ea)");
            return;
        }
        catch (AssertionError error)
        {
            // ok--assertions are enabled
        }
        testDepositAndWithdraw();
        testNegativeInitialBalance();
        testNegativeDeposit();
        testOverdraw();
    }
    
    public static void testDepositAndWithdraw()
    {
        BankAccount account = new BankAccount(1729, 100);
        account.deposit(200);
        account.withdraw(50);
        if (account.getBalance() == 250) 
            Logger.global.info("pass");
        else
            Logger.global.info("fail");        
    }
    
    public static void testNegativeInitialBalance()
    {
        try
        {
            BankAccount account = new BankAccount(1729, -100);
            Logger.global.info("fail.");
        }
        catch (AssertionError error)
        {
            Logger.global.info("pass");
        }
    }
    
    public static void testNegativeDeposit()
    {
        BankAccount account = new BankAccount(1729, 100);
        try
        {
            account.deposit(-50);
            Logger.global.info("fail");
        }
        catch (AssertionError error)
        {
            Logger.global.info("pass");
        }        
    }
    
    public static void testOverdraw()
    {
        BankAccount account = new BankAccount(1729, 100);
        try
        {
            account.withdraw(150);
            Logger.global.info("fail");
        }
        catch (AssertionError error)
        {
            Logger.global.info("pass");
        }                
    }
 }
