複利計算器4.0JUnit

44.林集團發表於2016-03-29

#因為是用IDEA首次寫unit test,所以也是麻煩多多,於是就只寫了一個函式的測試....

##需要測試的程式碼如下

public  class Calculator {
//    本金為100萬,利率或者投資回報率為3%,投資年限為30年,那麼,30年後所獲得的利息收入:
    public static  double calculatingAmount(double capital,double rate,int year)
    {
        return capital*(Math.pow((1+rate),(double)year));
    };

//    如果按照單利計算,本息又是多少呢
    public double calculatingAmountForSingle(double capital, double rate, int year)
    {
        return capital*(1+(rate*year));
    };


//    假如30年之後要籌措到300萬元的養老金,平均的年回報率是3%,那麼,現在必須投入的本金是多少呢
    public double calculatingCapital(double amount, double rate, int year)
    {
        return amount/(Math.pow((1+rate),(double)year));
    };

//    利率這麼低,複利計算收益都這麼厲害了,如果拿100萬元去買年報酬率10%的股票,若一切順利,過多長時間,100萬元就變成200萬元呢
    public int calculatingYear(double capital,double rate,double count)
    {
        return (int)(Math.log(1+rate)/Math.log(count/capital));
    };

//    如果我希望在十年內將100萬元變成200萬元,應該找到報酬率在多少的投資工具來幫助我達成目標
    public double calculatingRate(double capital,int year,double acount)
    {
        return Math.pow((acount/capital),(double)(1/year))-1;
    };

//    如果想在5年後本金翻倍,報酬率就應至少為多少才行呢
    public double calculatingRateInDoubleReturn()
    {
        return this.calculatingRate(100,5,200);
    };

//    .如果每年都將積蓄的3萬元進行投資,每年都能獲得3%的回報,然後將這些本利之和連同年金再投入新一輪的投資,那麼,30年後資產總值將變為多少
    public double calculatingAmountInNorm(double normCapital,double rate,int year){
        double acount;
        acount=normCapital;
        for (int i=0;i<year;i++)
        {
            acount+=normCapital+acount*rate;
        }
        return acount;
    };

//    如果向銀行貸款10萬元,年利率6.5%,期限為10年,那麼每月等額本息還款多少
    public double[][] calculatingInterest(double capital,double rate,int year)
    {
        double[][] interest=new double[year][12];
        for (int i=0;i<year;i++)
        {
            for (int j=0;j<12;j++)
            {
                interest[i][j]=capital*Math.pow(rate+1,(double)(i))*rate;
            }
        }
        return interest;
    };




}

然後是測試程式碼

public class CalculatorTest {



    @org.junit.Test
    public void testCalculatingAmount() throws Exception {
        assertEquals(103.0301,Calculator.calculatingAmount(100.0301,0.01,3),0.1);

    }

    @org.junit.Test
    public void testCalculatingAmountForSingle() throws Exception {

    }

    @org.junit.Test
    public void testCalculatingCapital() throws Exception {

    }

    @org.junit.Test
    public void testCalculatingYear() throws Exception {

    }

    @org.junit.Test
    public void testCalculatingRate() throws Exception {

    }

    @org.junit.Test
    public void testCalculatingRateInDoubleReturn() throws Exception {

    }

    @org.junit.Test
    public void testCalculatingAmountInNorm() throws Exception {

    }

    @org.junit.Test
    public void testCalculatingInterest() throws Exception {

    }
}

第一個函式而已,其他的都是自動生成的,先熟悉下IDEA環境下JUnit的使用,以後會新增真正的測試的。

下面是結果

#總結:浪費了很多時間,主要是百度中文搜尋技術文很差,然後用了bing,看英文看了很...在一些小問題卡住很久,以後解決這種小問題還是需要不要沒有思考的百度,很浪費時間,只是原地打轉,百度不會什麼都告訴你!還有就是學好英文。

附github地址https://github.com/LinJiTuan/BankCalculator

相關文章